Class SelectInput

  • All Implemented Interfaces:
    Input, Part
    Direct Known Subclasses:
    PluginInput, ReminderIntervalInput

    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 das Primaerattribut eines jeden Objektes angezeigt.
    Author:
    willuhn
    • Constructor Summary

      Constructors 
      Constructor Description
      SelectInput​(de.willuhn.datasource.GenericIterator list, de.willuhn.datasource.GenericObject preselected)
      Deprecated.
      Um Jameica von spezifischem Code aus de.willuhn.datasource zu befreien, sollte kuenftig besser SelectInput(List, Object) verwendet werden.
      SelectInput​(java.lang.Object[] list, java.lang.Object preselected)
      Erzeugt die Combox-Box mit Beans oder Strings.
      SelectInput​(java.util.List list, java.lang.Object preselected)
      Erzeugt die Combox-Box mit Beans oder Strings.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addListener​(org.eclipse.swt.widgets.Widget w, org.eclipse.swt.widgets.Listener l)
      Übernimmt das eigentliche Hinzufügen des Listeners zum Widget.
      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.util.List getList()
      Liefert die komplette Liste der Fachobjekte in der Liste.
      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 setList​(java.util.List list)
      Ersetzt den Inhalt der Selectbox komplett gegen die angegebene Liste.
      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.
      protected void update()
      Wird immer dann aufgerufen, wenn eines der Controls des Eingabe-Feldes aktualisiert wird.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SelectInput

        @Deprecated
        public SelectInput​(de.willuhn.datasource.GenericIterator list,
                           de.willuhn.datasource.GenericObject preselected)
                    throws java.rmi.RemoteException
        Deprecated.
        Um Jameica von spezifischem Code aus de.willuhn.datasource zu befreien, sollte kuenftig besser SelectInput(List, Object) verwendet werden. Damit kann die Anwendung spaeter auch auf ein anderes Persistierungsframework umgestellt werden.
        Erzeugt eine neue Combo-Box und schreibt die Werte der uebergebenen Liste rein.
        Parameters:
        list - Liste von Objekten.
        preselected - das Object, welches vorselektiert sein soll. Optional.
        Throws:
        java.rmi.RemoteException
      • 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.
      • 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.
    • 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.

        Als Default 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 Object.toString().
        Parameters:
        name - Name des anzuzeigenden Attributes (muss via GenericObject.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 AbstractInput.getParent() in dieser Klasse bedienen.

        Returns:
        das zu zeichnende Control.
      • setList

        public void setList​(java.util.List list)
        Ersetzt den Inhalt der Selectbox komplett gegen die angegebene Liste.
        Parameters:
        list - die neue Liste der Daten.
      • getList

        public java.util.List getList()
        Liefert die komplette Liste der Fachobjekte in der Liste.
        Returns:
        Liste der Fachobjekte.
      • 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:
        anzuzeigender 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.
      • disable

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

        public void enable()
        Description copied from interface: Input
        Aktiviert das Eingabefeld.
      • 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.
      • 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.
      • isEnabled

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