de.willuhn.jameica.gui.input
Class DialogInput

java.lang.Object
  extended by de.willuhn.jameica.gui.input.AbstractInput
      extended by de.willuhn.jameica.gui.input.ButtonInput
          extended by de.willuhn.jameica.gui.input.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 addCloseListener 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 java.util.Date-Objekt.

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

Author:
willuhn

Field Summary
 
Fields inherited from class de.willuhn.jameica.gui.input.ButtonInput
buttonEnabled, clientControl, clientControlEnabled, value
 
Constructor Summary
DialogInput(java.lang.String value)
          Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein.
DialogInput(java.lang.String value, AbstractDialog d)
          Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein.
 
Method Summary
 org.eclipse.swt.widgets.Control getClientControl(org.eclipse.swt.widgets.Composite parent)
          Liefert das einzubettende Eingabefeld.
 int getMaxLength()
          Liefert die maximale Anzahl eingebbarer Zeichen.
 java.lang.String getText()
          Liefert den derzeit angezeigten Text.
 java.lang.Object getValue()
          Liefert das Objekt, welches in dem Dialog ausgewaehlt wurde.
 boolean hasChanged()
          Ueberschrieben, weil nur der angezeigte Text interessiert.
 void setDialog(AbstractDialog d)
          Speichert den anzuzeigenden Dialog.
 void setMaxLength(int length)
          Legt die maximale Anzahl eingebbarer Zeichen fest.
 void setText(java.lang.String text)
          Speichert den anzuzeigenden Text.
 void setValue(java.lang.Object value)
          Schreibt einen neuen Wert in das Eingabefeld.
 
Methods inherited from class de.willuhn.jameica.gui.input.ButtonInput
addButtonListener, disable, disableButton, disableClientControl, enable, enableButton, enableClientControl, focus, getControl, isEnabled, setButtonImage, setButtonText, setEnabled
 
Methods inherited from class de.willuhn.jameica.gui.input.AbstractInput
addListener, getName, getParent, getStyleBits, isMandatory, paint, paint, setComment, setInvalidChars, setMandatory, setName, setValidChars
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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() 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.
See Also:
Input.getValue()

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)
Description copied from interface: Input
Schreibt einen neuen Wert in das Eingabefeld.

Parameters:
value - der neu anzuzeigende Wert.
See Also:
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.

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.
See Also:
ButtonInput.getClientControl(org.eclipse.swt.widgets.Composite)

hasChanged

public boolean hasChanged()
Ueberschrieben, weil nur der angezeigte Text interessiert.

Specified by:
hasChanged in interface Input
Overrides:
hasChanged in class AbstractInput
Returns:
true, wenn sich der Wert geaendert hat, sonstfalse.
See Also:
Input.hasChanged()