Class DialogInput
- java.lang.Object
-
- de.willuhn.jameica.gui.input.AbstractInput
-
- de.willuhn.jameica.gui.input.ButtonInput
-
- de.willuhn.jameica.gui.input.DialogInput
-
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
Objectzurueck. 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 viaAbstractInput.addListener(Listener)ein Listener angehangen werden, der beim Schliessen des Dialogs ausgeloest wird. In dessenevent.databefindet sich dann das jeweilige Objekt. Das ist z.Bsp. beiListDialogein Fachobjekt aus der Datenbank oder beiCalendarDialogeinDate-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
-
Fields inherited from interface de.willuhn.jameica.gui.input.Input
DATAKEY_TOOLTIP
-
-
Constructor Summary
Constructors Constructor Description 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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.swt.widgets.ControlgetClientControl(org.eclipse.swt.widgets.Composite parent)Liefert das einzubettende Eingabefeld.intgetMaxLength()Liefert die maximale Anzahl eingebbarer Zeichen.java.lang.StringgetText()Liefert den derzeit angezeigten Text.java.lang.ObjectgetValue()Liefert das Objekt, welches in dem Dialog ausgewaehlt wurde.booleanhasChanged()Prueft, ob sich der Wert vonInput.getValue()seit dem letzten Aufruf vonhasChanged()geaendert hat.voidsetDialog(AbstractDialog d)Speichert den anzuzeigenden Dialog.voidsetMaxLength(int length)Legt die maximale Anzahl eingebbarer Zeichen fest.voidsetText(java.lang.String text)Speichert den anzuzeigenden Text.voidsetValue(java.lang.Object value)WieInput.setValue(java.lang.Object), speichert jedoch nicht den anzuzeigenden Text sondern das FachObjekt.protected voidupdate()Wird immer dann aufgerufen, wenn eines der Controls des Eingabe-Feldes aktualisiert wird.-
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, getData, getName, getParent, getStyleBits, isMandatory, paint, paint, setComment, setData, setInvalidChars, setMandatory, setName, setValidChars
-
-
-
-
Constructor Detail
-
DialogInput
public DialogInput(java.lang.String value)
Erzeugt ein neues Eingabefeld und schreibt den uebergebenen Wert rein. Der Dialog sollte anschliessend noch mittelssetDialog(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)
WieInput.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:ButtonInputLiefert das einzubettende Eingabefeld.- Specified by:
getClientControlin classButtonInput- Parameters:
parent- Composite, in dem sich das ClientControl malen soll.- Returns:
- das fertig gemalte Control.
-
update
protected void update() throws OperationCanceledExceptionDescription copied from class:AbstractInputWird 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:
updatein classButtonInput- Throws:
OperationCanceledException
-
hasChanged
public boolean hasChanged()
Description copied from interface:InputPrueft, ob sich der Wert vonInput.getValue()seit dem letzten Aufruf vonhasChanged()geaendert hat.- Specified by:
hasChangedin interfaceInput- Overrides:
hasChangedin classAbstractInput- Returns:
true, wenn sich der Wert geaendert hat, sonstfalse.
-
-