struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Don Brown <mr...@twdata.org>
Subject Re: ajax tags
Date Sat, 28 Oct 2006 05:07:58 GMT
Yes, let's start with bumping up Dojo to 0.4, then apply patches to 
update the tags.  How much work do you think it'll be to upgrade Dojo?

Don

Musachy Barroso wrote:
> 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
>
>


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


Mime
View raw message