Hi guys, I've go ahead and added a jira issue for struts2 dojo migration, Its at http://issues.apache.org/struts/browse/WW-1484
rgds Musachy Barroso <[EMAIL PROTECTED]> wrote: I'm using defineWidget, and it is cool. I will be looking into hostedqa given that it is being used in struts already, as per Don's comment somewhere on this thread. musachy tm jee wrote: > 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 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 > --------------------------------------------------------------------- === message truncated === Send instant messages to your online friends http://uk.messenger.yahoo.com