de.willuhn.jameica.gui.input
Class SelectInput

java.lang.Object
  extended by de.willuhn.jameica.gui.input.AbstractInput
      extended by de.willuhn.jameica.gui.input.SelectInput
All Implemented Interfaces:
Input, Part

public class SelectInput
extends AbstractInput

Ist zustaendig fuer Eingabefelder des Typs "Select" aka "Combo". Wird die Combo-Box mit einer Liste von GenericObjects erzeugt, dann wird dasPrimaer-Attribut eines jeden Objektes angezeigt.

Author:
willuhn

Constructor Summary
SelectInput(de.willuhn.datasource.GenericIterator list, de.willuhn.datasource.GenericObject preselected)
          Erzeugt eine neue Combo-Box und schreibt die Werte der uebergebenen Liste rein.
SelectInput(java.util.List list, java.lang.Object preselected)
          Erzeugt die Combox-Box mit Beans oder Strings.
SelectInput(java.lang.Object[] list, java.lang.Object preselected)
          Erzeugt die Combox-Box mit Beans oder Strings.
 
Method Summary
 void disable()
          Deaktiviert das Eingabefeld.
 void enable()
          Aktiviert das Eingabefeld.
 void focus()
          Gibt diesem Eingabefeld den Focus.
protected  java.lang.String format(java.lang.Object bean)
          Formatiert die Bean passend fuer die Anzeige in der Combo-Box.
 org.eclipse.swt.widgets.Control getControl()
          Liefert das eigentliche Eingabecontrol.
 java.lang.String getText()
          Liefert den derzeit angezeigten Text zurueck.
 java.lang.Object getValue()
          Liefert das ausgewaehlte GenericObject.
 boolean isEnabled()
          Prueft, ob das Eingabe-Feld aktiv ist.
 void setAttribute(java.lang.String name)
          Legt den Namen des Attributes fest, welches von den Objekten angezeigt werden soll.
 void setEditable(boolean editable)
          Markiert die Combo-Box als editierbar.
 void setEnabled(boolean enabled)
          Aktiviert oder deaktiviert das Eingabe-Feld.
 void setPleaseChoose(java.lang.String choose)
          Optionale Angabe eines Textes, der an Position 1 angezeigt werden soll.
 void setPreselected(java.lang.Object preselected)
          Aendert nachtraeglich das vorausgewaehlte Element.
 void setValue(java.lang.Object o)
          Schreibt einen neuen Wert in das Eingabefeld.
 
Methods inherited from class de.willuhn.jameica.gui.input.AbstractInput
addListener, getName, getParent, getStyleBits, hasChanged, 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

SelectInput

public SelectInput(de.willuhn.datasource.GenericIterator list,
                   de.willuhn.datasource.GenericObject preselected)
            throws java.rmi.RemoteException
Erzeugt eine neue Combo-Box und schreibt die Werte der uebergebenen Liste rein. Um Jameica von spezifischem Code aus de.willuhn.datasource zu befreien, sollte kuenftig besser der generische Konstruktor List,Object verwendet werden. Damit kann die Anwendung spaeter auch auf ein anderes Persistierungsframework umgestellt werden.

Parameters:
list - Liste von Objekten.
preselected - das Object, welches vorselektiert sein soll. Optional.
Throws:
java.rmi.RemoteException

SelectInput

public SelectInput(java.util.List list,
                   java.lang.Object preselected)
Erzeugt die Combox-Box mit Beans oder Strings.

Parameters:
list - Liste der Objekte.
preselected - das vorausgewaehlte Objekt.

SelectInput

public SelectInput(java.lang.Object[] list,
                   java.lang.Object preselected)
Erzeugt die Combox-Box mit Beans oder Strings.

Parameters:
list - Liste der Objekte.
preselected - das vorausgewaehlte Objekt.
Method Detail

setPreselected

public void setPreselected(java.lang.Object preselected)
Aendert nachtraeglich das vorausgewaehlte Element.

Parameters:
preselected - neues vorausgewaehltes Element.

setPleaseChoose

public void setPleaseChoose(java.lang.String choose)
Optionale Angabe eines Textes, der an Position 1 angezeigt werden soll. Bei Auswahl dieses Elements, wird null zurueckgeliefert.

Parameters:
choose - Anzuzeigender "Bitte wählen..."-Text.

setAttribute

public void setAttribute(java.lang.String name)
Legt den Namen des Attributes fest, welches von den Objekten angezeigt werden soll. Bei herkoemmlichen Beans wird also ein Getter mit diesem Namen aufgerufen. Wird kein Attribut angegeben, wird bei Objekten des Typs GenericObject der Wert des Primaer-Attributes angezeigt, andernfalls der Wert von toString().

Parameters:
name - Name des anzuzeigenden Attributes (muss im GenericObject via getAttribute(String) abrufbar sein).

getControl

public org.eclipse.swt.widgets.Control getControl()
Description copied from interface: Input
Liefert das eigentliche Eingabecontrol. Es muss von jeder abgeleiteten Klasse implementiert werden und das Eingabe-Feld zurueckliefern. Da der Implementierer das Composite benoetigt, in dem das Control positioniert werden soll, kann er sich der Methode getParent() in dieser Klasse bedienen.

Returns:
das zu zeichnende Control.
See Also:
Input.getControl()

format

protected java.lang.String format(java.lang.Object bean)
Formatiert die Bean passend fuer die Anzeige in der Combo-Box.

Parameters:
bean - die Bean.
Returns:
String mit dem anzuzeigenden Wert.

getValue

public java.lang.Object getValue()
Liefert das ausgewaehlte GenericObject. Folglich kann der Rueckgabewert direkt nach GenericObject gecastet werden.

Returns:
Wert des Feldes.
See Also:
Input.getValue()

getText

public java.lang.String getText()
Liefert den derzeit angezeigten Text zurueck.

Returns:
Text.

focus

public void focus()
Description copied from interface: Input
Gibt diesem Eingabefeld den Focus.

See Also:
Input.focus()

disable

public void disable()
Description copied from interface: Input
Deaktiviert das Eingabefeld.

See Also:
Input.disable()

enable

public void enable()
Description copied from interface: Input
Aktiviert das Eingabefeld.

See Also:
Input.enable()

setEnabled

public void setEnabled(boolean enabled)
Description copied from interface: Input
Aktiviert oder deaktiviert das Eingabe-Feld.

Parameters:
enabled - true, wenn es aktiv sein soll.
See Also:
Input.setEnabled(boolean)

setEditable

public void setEditable(boolean editable)
Markiert die Combo-Box als editierbar. Wenn diese Option aktiviert ist, wird jedoch in getValue() generell der angezeigte Text zurueckgeliefert statt des Fachobjektes. Hintergrund: Normalerweise wird die Combo-Box ja mit einer Liste von Fachobjekten/Beans gefuellt. Abhaengig von der Auswahl wird dann das zugehoerige dahinterstehende Objekt zurueckgeliefert. Bei Freitext-Eingabe existiert jedoch kein solches. Daher wird in diesem Fall der eingebene Text zurueckgeliefert.

Parameters:
editable -

setValue

public void setValue(java.lang.Object o)
Description copied from interface: Input
Schreibt einen neuen Wert in das Eingabefeld.

Parameters:
o - der neu anzuzeigende Wert.
See Also:
Input.setValue(java.lang.Object)

isEnabled

public boolean isEnabled()
Description copied from interface: Input
Prueft, ob das Eingabe-Feld aktiv ist.

Returns:
true, wenn es aktiv ist.
See Also:
Input.isEnabled()