de.willuhn.jameica.gui.input
Class SearchInput

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

public class SearchInput
extends AbstractInput

Erzeugt eine Such-Box, in der man Text eingaben kann. Kann prima zur Erstellung eines Suchfeldes genutzt werden, welches bei jeder Eingabe eines Zeichens eine Liste mit Vorschlaegen anzeigen kann. Beispiel fuer die Verwendung: project = new SearchInput() { public List startSearch(String text) { try { DBService service = (DBService) Application.getServiceFactory().lookup(Plugin.class,"database"); DBIterator result = service.createList(Project.class); if (text != null) { text = "%" + text + "%"; result.addFilter("(name like ? or description like ?)", new Object[]{text,text}); } return PseudoIterator.asList(result); } catch (Exception e) { Logger.error("unable to load project list",e); return null; } } }; project.setValue(getTask().getProject());

Author:
willuhn

Field Summary
static int DEFAULT_DELAY
          Das Default-Delay nach dessen Ablauf das Widget mit der Suche beginnen soll.
 
Constructor Summary
SearchInput()
          Erzeugt eine neue Such-Box.
 
Method Summary
 void addListener(org.eclipse.swt.widgets.Listener l)
          Fuegt dem Eingabe-Feld einen Listener hinzu, der bei jedem Focus-Wechsel ausgeloest wird.
 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 aktuelle Objekt.
 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 setDelay(int millis)
          Legt ein abweichendes Delay fest.
 void setEnabled(boolean enabled)
          Aktiviert oder deaktiviert das Eingabe-Feld.
 void setMaxLength(int maxLength)
          Definiert die maximal eingebbare Menge von Zeichen.
 void setSearchString(java.lang.String text)
          Legt einen abweichenden Text fest, der vor Eingabe der Suche angezeigt wird.
 void setText(java.lang.String s)
          Speichert den anzuzeigenden Text.
 void setValue(java.lang.Object o)
          Schreibt einen neuen Wert in das Eingabefeld.
 java.util.List startSearch(java.lang.String text)
          Diese Funktion sollte ueberschrieben werden, wenn die Liste der Vorschlaege bei Eingabe von Suchbegriffen aktualisiert werden soll.
 
Methods inherited from class de.willuhn.jameica.gui.input.AbstractInput
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
 

Field Detail

DEFAULT_DELAY

public static final int DEFAULT_DELAY
Das Default-Delay nach dessen Ablauf das Widget mit der Suche beginnen soll. Angabe in Millisekunden.

See Also:
Constant Field Values
Constructor Detail

SearchInput

public SearchInput()
Erzeugt eine neue Such-Box.

Method Detail

setSearchString

public void setSearchString(java.lang.String text)
Legt einen abweichenden Text fest, der vor Eingabe der Suche angezeigt wird. Standardmaessig wird "Suche..." verwendet. Mit dieser Funktion kann der Wert geaendert werden.

Parameters:
text - der anzuzeigende 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).

setMaxLength

public void setMaxLength(int maxLength)
Definiert die maximal eingebbare Menge von Zeichen.

Parameters:
maxLength -

setDelay

public void setDelay(int millis)
Legt ein abweichendes Delay fest.

Parameters:
millis - das Delay.

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.

startSearch

public java.util.List startSearch(java.lang.String text)
Diese Funktion sollte ueberschrieben werden, wenn die Liste der Vorschlaege bei Eingabe von Suchbegriffen aktualisiert werden soll. Die Standardimplementierung macht schlicht keine Suche sondern laesst alles, wie es ist.

Parameters:
text - der momentan eingegebene Suchtext.
Returns:
eine neue Liste mit den als Suchvorschlaegen anzuzeigenden Objekten. Die Funktion kann sowohl null als auch eine leere Liste zurueckgeben, wenn nichts gefunden wurde.

addListener

public void addListener(org.eclipse.swt.widgets.Listener l)
Description copied from interface: Input
Fuegt dem Eingabe-Feld einen Listener hinzu, der bei jedem Focus-Wechsel ausgeloest wird. Besteht das Eingabe-Feld aus mehreren Teilen (z.Bsp. bei SearchInput aus Eingabe-Feld + Knopf dahinter) dann wird der Listener bei Focus-Wechsel jedes dieser Teile ausgeloest.

Specified by:
addListener in interface Input
Overrides:
addListener in class AbstractInput
Parameters:
l - zu registrierender Listener.
See Also:
AbstractInput.addListener(org.eclipse.swt.widgets.Listener)

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()

getValue

public java.lang.Object getValue()
Liefert das aktuelle Objekt. Das ist entweder das ausgewaehlte aus der letzten Suche oder das initial uebergebene.

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

getText

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

Returns:
Text.

setText

public void setText(java.lang.String s)
Speichert den anzuzeigenden Text.

Parameters:
s - 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)

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()