Grish wrote:
So I ended up with the following code:

var myDiv = dojo.widget.byId("myDivId");
myDiv.timer.interval = newInterval;

Great!
Also you need to restart the timer by stopping it and starting again for the
new interval to take effect. Would there be some kind of function I can use
to change the interval or this is the only way?

Not sure, you know more about it than I do now. If the div is using the standard dojo timer (dojo.lang.timing.Timer) you should have access to the setInterval(interval) method that looks like it will work while the timer's running.
myDiv.timer.setInterval(newInterval);

As with members, public methods should be browsable in Firebug.

If it is/extends a dojo timer, take a quick look at the implementation in: struts2-core-xxx.jar!/org/apache/struts2/static/dojo/src/lang/timing/Timer.js


Jeromy Evans - Blue Sky Minds wrote:
Your code references "quoteDetails" but the div you provided is "myDivId". Other than that I don't see anything wrong with it. updateFreq should be writeable using your approach although I haven't tried it.

Try a simple script:

 var myWidget = dojo.widget.byId("myDivId");
  myWidget.updateFreq = 10;

Use a breakpoint in FireBug to ensure the widget is found and that the updateFreq member is public.

Hope that helps,
Jeromy Evans

Grish wrote:
Ok I've made some progress but now i'm stuck. What I did was have a a div
tag

<s:div id="myDivId" theme="ajax" href="%{url}" formId="frmMyForm" showLoadingText="false" updateFreq="5000" autoStart="false" startTimerListenTopics="/startTimer"
stopTimerListenTopics="/stopTimer" />

then I have select box
<s:select id="refreshEvery" onchange="updateFreq(this)" list="myList" />

then on my updateFreq function i have the following:

function updateFreq(obj) {
if (obj.selectedIndex == 0) {
        dojo.event.topic.publish("/stopTimer");
} else {
        // get Div and update frequency
        var quoteDiv = dojo.byId("quoteDetails");
        quoteDiv.updateFreq = obj.options[obj.selectedIndex].value;
        dojo.event.topic.publish("/startTimer");
      }
}

Right now everything is working except the change to the updateFreq. When
the timer starts it still keeps with the 5 second interval Is it possible
to
access this property and change it?



Grish wrote:
Hi,

I'm having a hard time trying to implement this - I want to have a
select
box containing options for the user to select the update frequency of my
div tag. So my select box has "no refresh", "30 seconds", "60 seconds",
"120 seconds" and depending on what the user selects the frequency will
change.
I was thinking i could make a topic to change the updateFreq parameter
then with the onchange event with the select tag i'll make a call for
that
topic:

dojo.event.topic.subscribe("/changeRefresh", function(data, type,
request)
{
  // code to change the updateFreq of the div tag
}

<s:select
onchange="onchange="dojo.event.topic.publish('/changeRefresh')"
......

I just don't know how to access the div tag and change the updateFreq
parameter. I tried using the dojo.byId("myDivId") function but it didn't
work. Suggestion on how to do this?

Also just curious as to why there's no type variable when i call my
topic
from an event like onchange, it's always undefined.
---------------------------------------------------------------------
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]

Reply via email to