Class DelayedListener

java.lang.Object
de.willuhn.jameica.gui.util.DelayedListener
All Implemented Interfaces:
org.eclipse.swt.widgets.Listener

public class DelayedListener extends Object implements 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 Details

    • TIMEOUT_DEFAULT

      public static final int TIMEOUT_DEFAULT
      Das 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 interface org.eclipse.swt.widgets.Listener
      See Also:
      • Listener.handleEvent(org.eclipse.swt.widgets.Event)