Class DialogInput

All Implemented Interfaces:
Input, Part

public class DialogInput extends ButtonInput
Eingabe-Feld, welches beim Klick auf den Button einen Dialog zur Auswahl eines Objektes oeffnet.

Achtung: Der Dialog liefert beim Schliessen ein lapidares Object zurueck. Da das Text-Eingabefeld natuerlich nicht wissen kann, wie es das anzeigen soll, wird der Rueckgabewert des Dialogs nicht ausgewertet. Stattdessen muss an den Dialog via AbstractInput.addListener(Listener) ein Listener angehangen werden, der beim Schliessen des Dialogs ausgeloest wird. In dessen event.data befindet sich dann das jeweilige Objekt. Das ist z.Bsp. bei ListDialog ein Fachobjekt aus der Datenbank oder bei CalendarDialog ein Date-Objekt.

Hinweis: Der Listener darf nicht an das Input-Feld selbst angehangen werden, denn die werden bei jedem Focus-Wechsel ausgeloest.

Author:
willuhn
  • Constructor Details

    • DialogInput

      public DialogInput(String value)
      Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein. Der Dialog sollte anschliessend noch mittels setDialog(AbstractDialog) gesetzt werden. Dieser Konstruktor ist nur eine Convenience-Funktion, um den Dialog auch nach der Erzeugung des Input-Objektes setzen zu koennen.
      Parameters:
      value - der initial einzufuegende Wert fuer das Eingabefeld.
    • DialogInput

      public DialogInput(String value, AbstractDialog d)
      Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein.
      Parameters:
      value - der initial einzufuegende Wert fuer das Eingabefeld.
      d - der Dialog.
  • Method Details

    • setDialog

      public void setDialog(AbstractDialog d)
      Speichert den anzuzeigenden Dialog.
      Parameters:
      d - der anzuzeigende Dialog.
    • getValue

      public Object getValue()
      Liefert das Objekt, welches in dem Dialog ausgewaehlt wurde. Fuer gewoehnlich ist das ein Fach-Objekt.
      Returns:
      Wert des Feldes.
    • getText

      public String getText()
      Liefert den derzeit angezeigten Text.
      Returns:
      angezeigter Text.
    • setText

      public void setText(String text)
      Speichert den anzuzeigenden Text.
      Parameters:
      text - anzuzeigender Text.
    • setMaxLength

      public void setMaxLength(int length)
      Legt die maximale Anzahl eingebbarer Zeichen fest.
      Parameters:
      length - Maximal-Anzahl. Zulaessig sind nur Werte, die groesser als "0" sind.
    • getMaxLength

      public int getMaxLength()
      Liefert die maximale Anzahl eingebbarer Zeichen.
      Returns:
      Anzahl der maximal eingebbaren Zeichen oder "0", wenn kein Limit definiert ist.
    • setValue

      public void setValue(Object value)
      Wie Input.setValue(java.lang.Object), speichert jedoch nicht den anzuzeigenden Text sondern das FachObjekt. Sprich: Das Objekt, welches auch geliefert wird, wenn der Dialog zur Auswahl des Objektes verwendet werden wuerde.

      Soll der anzuzeigende Text geaendert werden, dann bitte die Funktion setText(String) verwenden.

      Parameters:
      value - der neu anzuzeigende Wert.
    • getClientControl

      public org.eclipse.swt.widgets.Control getClientControl(org.eclipse.swt.widgets.Composite parent)
      Description copied from class: ButtonInput
      Liefert das einzubettende Eingabefeld.
      Specified by:
      getClientControl in class ButtonInput
      Parameters:
      parent - Composite, in dem sich das ClientControl malen soll.
      Returns:
      das fertig gemalte Control.
    • update

      protected void update() throws OperationCanceledException
      Description copied from class: AbstractInput
      Wird immer dann aufgerufen, wenn eines der Controls des Eingabe-Feldes aktualisiert wird. Hier kann dann z.Bsp. geprueft werden, ob der Inhalt des Feldes korrekt ist und ggf. die Hintergrund-Farbe angepasst werden.
      Overrides:
      update in class ButtonInput
      Throws:
      OperationCanceledException
    • hasChanged

      public boolean hasChanged()
      Description copied from interface: Input
      Prueft, ob sich der Wert von Input.getValue() seit dem letzten Aufruf von hasChanged() geaendert hat.
      Specified by:
      hasChanged in interface Input
      Overrides:
      hasChanged in class AbstractInput
      Returns:
      true, wenn sich der Wert geaendert hat, sonst false.