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]