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 Detail

      • DialogInput

        public DialogInput​(java.lang.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​(java.lang.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 Detail

      • setDialog

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

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

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

        public void setText​(java.lang.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​(java.lang.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.
      • 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.