Hi guys, sorry for jumping into this late. I think we should do the followings for struts2 dojo widgets.
- use dojo.widget.defineWidget instead of the old-way of using dojo.provide, dojo.extends etc. Dojo got most of its widget rewritten using this way. - have struts2 widgets/utils as a separate module and add them in using dojo.setModulePrefix(...) (0.3) I think the method is renamed in 0.4 and the concept of module is namespace in 0.4 - have javadoc comments in our widget, hopefully it would be easier to follow and maybe if possible able to generate docs like http://dojotoolkit.org/api But I am not sure about how to do this yet. Definitely interested in finding out more. - have a test folder, like dojo's where we could have pages that test the widget, we could use Pat's product to do test the pages (something like HostedQA or Selenium) What you guys think? :-) Rainer Hermanns <[EMAIL PROTECTED]> wrote: I'll wait for your patch against 0.4 then. As soon as I get it, I'll update Dojo first and commit your patches for the tags separately. just let me know, when you are done :) tia, Rainer > :) I know. What I meant is that it shouldn't be applied yet 'cause I > made it using 0.3 and I haven't tried it on 0.4 yet. > > musachy > > Martin Cooper wrote: >> On 10/30/06, Musachy Barroso wrote: >>> >>> Oh, ok. Then just don't apply the patch. >> >> >> No, no - I'm not saying that it shouldn't be applied, only that it >> should be >> a separate commit. >> >> By the way, do we have a Jira >>> issue for the dojo upgrade? >> >> >> Not that I can see. Feel free to add one, and one with your patch, if >> there >> isn't one already. >> >> -- >> Martin. >> >> >> musachy >>> >>> Martin Cooper wrote: >>> > On 10/30/06, Musachy Barroso wrote: >>> >> >>> >> Hi Rainer >>> >> >>> >> Give me a couple of days so I can test it against 0.4 (I made the >>> patch >>> >> using 0.3) and finish some changes(for BindButton) that I have for a >>> new >>> >> patch. I will give you a new patch soon with the changes for Bind, >>> >> BindDiv, BindAnchor, BindButton and TabbedPanel tested on dojo >>> 0.4. If >>> >> you want to go ahead and upgrade to 0.4 and apply the patch later, >>> >> that's fine. (I will just be bothering with another patch soon :) ) >>> > >>> > >>> > Well, the upgrade and the patch should certainly be separate >>> commits, so >>> > that we can track the changes separately, and so that we can revert >>> > one or >>> > the other if that ever becomes necessary. Beyond that, it's up to the >>> > prospective committer to determine timing. ;-) >>> > >>> > -- >>> > Martin Cooper >>> > >>> > >>> > musachy >>> >> >>> >> Rainer Hermanns wrote: >>> >> > Musachy, >>> >> > >>> >> > I could upgrade the embedded Dojo files to the 0.4 release >>> during the >>> >> week. >>> >> > If your patches for the s2 ajax tags already are against the >>> >> 0.4release, >>> >> > I could apply those as well. >>> >> > >>> >> > What do you (and others of course) think? >>> >> > >>> >> > regards, >>> >> > Rainer >>> >> > >>> >> > >>> >> >> Any idea on when is Dojo going to be bumped up to 0.4? >>> >> >> >>> >> >> musachy >>> >> >> >>> >> >> Don Brown wrote: >>> >> >> >>> >> >>> 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: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>>>>> For additional commands, e-mail: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> To unsubscribe, e-mail: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>>>> For additional commands, e-mail: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>>> >>> >> >>>>>>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>>>>> For additional commands, e-mail: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> >>> >> >>>>>>>>>> >>> >> >>>>>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>>>>> >>> >> >>>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>>>> For additional commands, e-mail: >>> [EMAIL PROTECTED] >>> >> >>>>>>>>> >>> >> >>>>>>>>> >>> >> >>>>>>>>> >>> >> >>>>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>>>> >>> >> >>>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>>> >>> >> >>>>>>>> >>> >> >>>>>>>> >>> >> >>>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>>> >>> >> >>>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>>> >>> >> >>>>> >>> >> --------------------------------------------------------------------- >>> >> >>>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>>>> >>> >> >>>>> >>> >> >>>>> >>> >> >>>> >>> >> --------------------------------------------------------------------- >>> >> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> >> >>> >>> >> --------------------------------------------------------------------- >>> >> >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>> >>> >> >>> >>> >> >>> >>> >> >> >>> --------------------------------------------------------------------- >>> >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> >> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >> >>> >> >> >>> >> >> >>> >> > >>> >> > >>> >> > >>> --------------------------------------------------------------------- >>> >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> > For additional commands, e-mail: [EMAIL PROTECTED] >>> >> > >>> >> > >>> >> > >>> >> >>> >> --------------------------------------------------------------------- >>> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> >> For additional commands, e-mail: [EMAIL PROTECTED] >>> >> >>> >> >>> > >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >>> For additional commands, e-mail: [EMAIL PROTECTED] >>> >>> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Send instant messages to your online friends http://uk.messenger.yahoo.com