Package de.willuhn.jameica.gui.util
Class DelayedListener
java.lang.Object
de.willuhn.jameica.gui.util.DelayedListener
- All Implemented Interfaces:
org.eclipse.swt.widgets.Listener
Implementiert die verzoegerte Ausloesung einer Aktion, um Bundle-Updates durchzufuehren.
Szenario: In einer Tabelle muessen Inhalte aktualisiert werden.
Der Aktualisierungsvorgang kann laenger dauern (mehrere Sekunden), dennoch
soll das Aktualisieren bereits bei Eingabe eines Buchstabens in einem
Suchfeld ausgeloest werden. Damit nun die Eingabe des Suchtextes
nicht dauernd blockiert, da jeder Tastenanschlag das Event ausloest,
kann es mit dieser Action hier kurz verzoegert werden. Das eigentliche
Update wird erst dann durchgefuehrt, wenn innerhalb eines definierten
Zeitraumens (per Default 300ms) kein weiterer Aufruf hinzukam. Somit wird
das Update erst dann durchgefuehrt, wenn z.Bsp. der komplette Begriff
als Suchwort eingegeben wurde.
Der Listener dient als Proxy fuer den eigentlichen Listener.
Ist die angegebene Zeit abgelaufen und wurde das Event
zwischenzeitlich nicht nochmal aufegerufen, dann wird das
Event ausgefuehrt. Andernfalls wird weiter gewartet, bis
innerhalb des angegebenen Zeitraumes kein weiteres Event
hinzugekommen ist.
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDelayedListener
(int millis, org.eclipse.swt.widgets.Listener listener) ct.DelayedListener
(org.eclipse.swt.widgets.Listener listener) ct. -
Method Summary
-
Field Details
-
TIMEOUT_DEFAULT
public static final int TIMEOUT_DEFAULTDas Default-Timeout.- See Also:
-
-
Constructor Details
-
DelayedListener
public DelayedListener(org.eclipse.swt.widgets.Listener listener) ct.- Parameters:
listener
- der eigentlich auszufuehrende Listener.
-
DelayedListener
public DelayedListener(int millis, org.eclipse.swt.widgets.Listener listener) ct.- Parameters:
millis
- Anzahl der Millisekunden, die gewartet werden soll.listener
- der eigentlich auszufuehrende Listener.
-
-
Method Details
-
handleEvent
public final void handleEvent(org.eclipse.swt.widgets.Event event) - Specified by:
handleEvent
in interfaceorg.eclipse.swt.widgets.Listener
- See Also:
-