With a timer, you can regularly trigger a defined method invoked by the client. For example, you can use a timer to regularly update information to be displayed inside your page.
The timer tag is accessible as a valid subnode inside the page tag.
Specify either the interval
or the
intervalprop
property in order to set the
interval. In case of using a property for dynamically setting the interval,
note the following:
You can change the interval time at any time.
You can stop the timer by setting the interval time to 0.
The following topics are covered below:
The following screen displays a time stamp of the server. It is refreshed depending on the interval field. Increase/decrease the interval time by choosing the corresponding buttons.
The XML layout definition is:
<page model="DemoTimerAdapter"> <titlebar name="Demo Timer"> </titlebar> <header withdistance="false"> <button name="~~Increment" method="incrementTimer"> </button> <button name="~~Decrement" method="decrementTimer"> </button> <button name="~~Stop" method="stopTimer"> </button> </header> <pagebody> <rowarea name="Time"> <itr> <label name="Interval (ms)" width="100" asplaintext="true"> </label> <field valueprop="interval" length="5" displayonly="true" datatype="int"> </field> </itr> <itr> <label name="Server time" width="100" asplaintext="true"> </label> <field valueprop="serverTime" length="50" displayonly="true"> </field> </itr> </rowarea> </pagebody> <statusbar withdistance="false"> </statusbar> <timer intervalprop="interval"> </timer> </page>
In this example, the timer tag does not call a
defined method but
refreshes the screen. The timer interval is retrieved by the property
interval
of the adapter object.
The Java code of the adapter is:
// This class is a generated one. import java.util.Date; import com.softwareag.cis.server.Adapter; public class DemoTimerAdapter extends Adapter { // property >interval< int m_interval=1000; public int getInterval() { return m_interval; } public void setInterval(int value) { m_interval = value; } // property >serverTime< String m_serverTime; public String getServerTime() { Date d = new Date(); return d.toString(); } public void decrementTimer() { m_interval -= 500; } public void incrementTimer() { m_interval += 500; } public void stopTimer() { m_interval = 0; } }
It just contains the property serverTime
,
returning the current time and the property
interval
to provide the interval duration,
controlling the timer. The stopTimer
method sets the
interval duration to "0".
Tip:
Do not update the page too frequently. Every update means a roundtrip
to the server.
Basic | |||
interval |
Duration in milliseconds the timer waits between calling the adapter method defined in the METHOD property. Use this property to "hard code" the duration - or use INTERVALPROP to define the duration by an adapter property. |
Sometimes obligatory | |
intervalprop |
Name of adapter property that defines the timer interval's duration. The adapter property must be of type "int" or "Integer" ("long"/ "Long"/ "String"). If "0" is passed then the timer is stopped. |
Sometimes obligatory | |
method |
Name of adapter method that is called by the timer. |
Obligatory | |
comment |
Comment without any effect on rendering and behaviour. The comment is shown in the layout editor's tree view. |
Optional |