no. each of your BlinkingCorner should have a updateGui() where it calcualates its own state etc.
and then you have a timer which calls this updateGui each xxx seconds. your special timer object holds an array/list/map of listeners and on the tick it goes through each listener and call the updateGui(). On 17 Mrz., 14:51, denis56 <[email protected]> wrote: > thanks, I would not have come to that idea. > > would that, from the implementation point of view, mean that i will > again have elements extending component with appropriate fields, > something like > - isChangable : boolean [if timeNow > timeStarted + timeToBlink] > - timeStarted : long > - timeToBlink : int [10 sec] > - isVisible : boolean > - leaveInVisibiliyState : boolean [to show/not to show the component > after it has gone through timeToBlink] > > that the timer should access to determine if the visibility of the > component should be changed? > > I know that js is single-threaded. Aren't though timers executed in a > separate threads? Are there implications of having 2 or more timers > running on a single page (since my application uses another timer to > get new/updated table rows from the server)? > > thanks > > On 17 Mrz., 13:56, Ben Tilford <[email protected]> wrote: > > > You could do it with a single timer then have your blinking components > > listen for a tick event that the timer would fire. > > > On Tue, Mar 17, 2009 at 8:52 AM, denis56 <[email protected]> wrote: > > > > His, > > > > if anyone could share experience with achieving blinking behavior for > > > several items on a page? > > > > in my case there is a table being shown whose rows should have > > > multiple blinking elements (labels and images). Each of the blinking > > > elements has -its own- timeout value defined to stop blinking. > > > > The way I have achieved it now, is by creating a composite (see sample > > > code below) that takes an image/label and adds a timer to it. > > > > I am afraid that that is not a right approach as the table is > > > constantly being updated to add/delete rows with new blinking > > > components. That would lead to multiple timers being instantiated and > > > started with .scheduleRepeating(XXX); method again and again without > > > page being reloaded (the page should stay open for a day and display > > > changing information). > > > > Could anyone comment on my approach: is it memory-leak and performance > > > degradation prone? What would be a feasible alternative? maybe using > > > external library like prototype? > > > > Many thanks, > > > denis > > > > public class BlinkingCorner extends Composite { > > > > private boolean visible; > > > private int blinkingTime = 5000; > > > private long timeBlinkingStarted; > > > > public BlinkingCorner(final Image img) { > > > timeBlinkingStarted = System.currentTimeMillis(); > > > new Timer() { > > > �...@override > > > public void run() { > > > if (System.currentTimeMillis() <= timeBlinkingStarted > > > + blinkingTime) { > > > img.setVisible(visible); > > > GWT.log("visible=" + visible, null); > > > visible = !visible; > > > } else { > > > GWT.log("cancel", null); > > > img.setVisible(false); > > > cancel(); > > > } > > > } > > > }.scheduleRepeating(500); > > > > initWidget(img); > > > } > > > > } --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/Google-Web-Toolkit?hl=en -~----------~----~----~----~------~----~------~--~---
