This class keeps the oscilloscope animation running and is used to set various attributes of the scope.
You need to provide an {@link Oscilloscope} widget by overriding the {@link #getOscilloscope()} method. The {@link Oscilloscope#redraw()} methodwill be called every {@link #getDelayLoop()} milliseconds. The higher the value, the slower the animation will run. Just before the redraw and just after the redraw the
hook..Draw
methods are called. Don't do any expensive calculations there because this will slow down the animation.
Then a counter is incremented and if the counter reaches the {@link #getPulse()} value, then the {@link #hookSetValues(int)} method is called. Thisis you opportunity to provide a value to the scope by calling its setValue or setValues method. The hookSetValues method is only called if the {@link #getPulse()} value is greater than {@link #NO_PULSE}
You can also be called back by the widget if it runs out of values by setting a listener in the {@link Oscilloscope#addStackListener(OscilloscopeStackAdapter)} method.
If you want to speed up the scope, try overriding the {@link #getProgression()} method. This will draw the scope this number of times beforeactually painting.
@author Wim Jongman