struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Musachy Barroso <mbarr...@wfscorp.com>
Subject Re: ajax tags
Date Wed, 25 Oct 2006 22:23:36 GMT
I attached a new patch to WW-205, this one includes the new TabbedPanel, 
BindDiv  and BindAnchor. It needs Dojo 0.3.1.Do you want me to create a 
patch to update to Dojo 0.3.1?(We just need to replace dojo distribution 
under static/dojo.)

I modified the examples in showcase and the test cases. Let me know if 
something is missing or wrong (bear with me on my first patch :) ).

musachy

Don Brown wrote:
> Ok, then put those two under one ticket.  You know best :)
>
> Don
>
> Musachy Barroso wrote:
>> That's ok, the only problem is that this one by itself would break 
>> anchor and tabbed panel.
>>
>> musachy
>>
>> Don Brown wrote:
>>> I'd prefer separate issues, with attached patches.  As for testing, 
>>> we started to use Patrick's hostedqa stuff, but we need to use it more.
>>>
>>> Don
>>>
>>> Musachy Barroso wrote:
>>>> I have everything (I think :)) for the ajax Div Tag, do you want me 
>>>> to create a patch for it, or wait and create a big one when I'm 
>>>> done with the other widgets (anchor, tree...dojo 0.2 -> 0.3)?
>>>>
>>>> musachy
>>>>
>>>> //Have you guys consider anything to test this ajax stuff? 
>>>> (Selenium maybe?)
>>>>
>>>> Musachy Barroso wrote:
>>>>> This was with 0.3.1 which is the current release. I posted a 
>>>>> message on their mailing list.
>>>>>
>>>>> musachy
>>>>>
>>>>> Don Brown wrote:
>>>>>> Have you tried this with the Dojo 0.4 release?  Any reason we 
>>>>>> shouldn't upgrade to it?
>>>>>>
>>>>>> Don
>>>>>>
>>>>>> Musachy Barroso wrote:
>>>>>>> Would something like this include all the current functionality

>>>>>>> in BindDiv? (events for stop/start timer, refresh, start after
a 
>>>>>>> delay, advisor via dojo's "handler" property). This way BindDiv

>>>>>>> will be easier to maintain (dojo's ContentPane + timer) and the

>>>>>>> Tab widget can be deleted (doesn't add anything to this one).
By 
>>>>>>> the way this doesn't work on AMD 64/firefox/linux due to a 
>>>>>>> dojo's bug.
>>>>>>>
>>>>>>> dojo.provide("struts.widgets.BindDiv");
>>>>>>>
>>>>>>> dojo.require("dojo.widget.*");
>>>>>>> dojo.require("dojo.io.*");
>>>>>>> dojo.require("dojo.widget.Container");
>>>>>>> dojo.require("dojo.widget.ContentPane");
>>>>>>> dojo.require("dojo.animation.Timer");
>>>>>>>
>>>>>>> struts.widgets.BindDiv = function() {
>>>>>>>  dojo.widget.html.ContentPane.call(this);
>>>>>>>  var self = this;
>>>>>>>
>>>>>>>  this.widgetType = "BindDiv";
>>>>>>>
>>>>>>>  this.href = "";
>>>>>>>  this.extractContent = false;
>>>>>>>  this.parseContent = false;
>>>>>>>  this.cacheContent = false;
>>>>>>>
>>>>>>>  this.frequency = 0;
>>>>>>>  this.delay = 0;
>>>>>>>  this.startTimer = false;
>>>>>>>  this.timer = null;
>>>>>>>
>>>>>>>  //pub/sub events
>>>>>>>  this.refreshListenTopics = "";
>>>>>>>  this.stopTimerListenTopics = "";
>>>>>>>  this.startTimerListenTopics = "";
>>>>>>>
>>>>>>>  this.postCreate = function() {
>>>>>>>    if(self.frequency > 0) {
>>>>>>>      self.timer = new dojo.animation.Timer(self.frequency);
>>>>>>>      self.timer.onTick = self.reloadContents;
>>>>>>>
>>>>>>>      //start the timer
>>>>>>>      if(self.startTimer) {
>>>>>>>        //start after delay
>>>>>>>        dojo.debug("starting timer after " + self.delay);
>>>>>>>        dojo.lang.setTimeout(self.delay, self.startTimer);
>>>>>>>      }
>>>>>>>    }
>>>>>>>
>>>>>>>    //attach listeners
>>>>>>>    if(!dojo.string.isBlank(self.refreshListenTopics)) {
>>>>>>>      dojo.debug("Listening to " + self.refreshListenTopics);
>>>>>>>      dojo.event.topic.subscribe(self.refreshListenTopics, self,

>>>>>>> "reloadContents");
>>>>>>>    }
>>>>>>>    if(!dojo.string.isBlank(self.stopTimerListenTopics)) {
>>>>>>>      dojo.debug("Listening to " + self.stopTimerListenTopics);
>>>>>>>      dojo.event.topic.subscribe(self.stopTimerListenTopics, 
>>>>>>> self, "stopTimer");
>>>>>>>    }
>>>>>>>    if(!dojo.string.isBlank(self.startTimerListenTopics)) {
>>>>>>>      dojo.debug("Listening to " + self.startTimerListenTopics);
>>>>>>>      dojo.event.topic.subscribe(self.startTimerListenTopics,

>>>>>>> self, "startTimer");
>>>>>>>    }
>>>>>>>  };
>>>>>>>
>>>>>>>  this.reloadContents = function() {
>>>>>>>    //refresh is not visible in ContentPane
>>>>>>>    self.isLoaded = false;
>>>>>>>    self.loadContents();
>>>>>>>  };
>>>>>>>
>>>>>>>  this.stopTimer = function() {
>>>>>>>    dojo.debug("stopping timer");
>>>>>>>    self.timer.stop();
>>>>>>>  };
>>>>>>>
>>>>>>>  this.startTimer = function() {
>>>>>>>    dojo.debug("starting timer with frequency " + self.frequency);
>>>>>>>    self.timer.start();
>>>>>>>  };
>>>>>>> };
>>>>>>>
>>>>>>> dojo.inherits(struts.widgets.BindDiv, 
>>>>>>> dojo.widget.html.ContentPane);
>>>>>>>
>>>>>>> dojo.widget.tags.addParseTreeHandler("dojo:BindDiv");
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Musachy Barroso wrote:
>>>>>>>> I was looking at the Div/Panel classes and I think we need
to 
>>>>>>>> do some changes, right now Panel extends Div and PanelTag

>>>>>>>> exteds DivTag. The problem is that the new PanelTag wraps

>>>>>>>> dojo's ContentPane, while DivTag wraps HTMLBindDiv(from 
>>>>>>>> struts), and they are quite different. I think we should

>>>>>>>> replace HTMLBindDiv with an implementation that extends dojo's

>>>>>>>> ContentPane and add a timer to it for the auto refresh.
>>>>>>>>
>>>>>>>> what do you guys think?
>>>>>>>>
>>>>>>>> musachy
>>>>>>>>
>>>>>>>> Ian Roughley wrote:
>>>>>>>>> Yes - this was the direction that we wanted to go in.
 Try to 
>>>>>>>>> do as much as possible in dojo and provide light wrappers
in 
>>>>>>>>> Struts.  When we first implemented the tabs, there was
no such 
>>>>>>>>> dojo implementation.  The one feature that we had that
you 
>>>>>>>>> should check that has been implemented in dojo is the
pub/sub 
>>>>>>>>> events - so there should be events that each tabs listens
to 
>>>>>>>>> to refresh itself.
>>>>>>>>>
>>>>>>>>> I think as Don pointed out, we want to keep a very lightweight

>>>>>>>>> wrapper in struts and have all the work being done in
dojo.
>>>>>>>>>
>>>>>>>>> The other big thing that would be a great help is converting

>>>>>>>>> the code from dojo 0.2 to 0.3 :)
>>>>>>>>>
>>>>>>>>> Ian
>>>>>>>>>
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------

>>>>>>>>
>>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>>>>>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------

>>>>>>>
>>>>>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>>>>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------

>>>>>>
>>>>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>>>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>>>
>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: dev-help@struts.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
>> For additional commands, e-mail: dev-help@struts.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Mime
View raw message