Package de.willuhn.jameica.gui.input
Class SearchInput
- java.lang.Object
-
- de.willuhn.jameica.gui.input.AbstractInput
-
- de.willuhn.jameica.gui.input.SearchInput
-
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
Fields Modifier and Type Field Description static intDEFAULT_DELAYDas Default-Delay nach dessen Ablauf das Widget mit der Suche beginnen soll.-
Fields inherited from interface de.willuhn.jameica.gui.input.Input
DATAKEY_TOOLTIP
-
-
Constructor Summary
Constructors Constructor Description SearchInput()Erzeugt eine neue Such-Box.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddListener(org.eclipse.swt.widgets.Listener l)Fuegt dem Eingabe-Feld einen Listener hinzu, der bei jedem Focus-Wechsel ausgeloest wird.voiddisable()Deaktiviert das Eingabefeld.voidenable()Aktiviert das Eingabefeld.voidfocus()Gibt diesem Eingabefeld den Focus.protected java.lang.Stringformat(java.lang.Object bean)Formatiert die Bean passend fuer die Anzeige in der Combo-Box.org.eclipse.swt.widgets.ControlgetControl()Liefert das eigentliche Eingabecontrol.java.lang.StringgetText()Liefert den derzeit angezeigten Text zurueck.java.lang.ObjectgetValue()Liefert das aktuelle Objekt.booleanisEnabled()Prueft, ob das Eingabe-Feld aktiv ist.voidsetAttribute(java.lang.String name)Legt den Namen des Attributes fest, welches von den Objekten angezeigt werden soll.voidsetDelay(int millis)Legt ein abweichendes Delay fest.voidsetEnabled(boolean enabled)Aktiviert oder deaktiviert das Eingabe-Feld.voidsetMaxLength(int maxLength)Definiert die maximal eingebbare Menge von Zeichen.voidsetMinWidth(int width)Legt eine Mindest-Breite fuer die Ergebnisliste in Pixeln fest.voidsetSearchString(java.lang.String text)Legt einen abweichenden Text fest, der vor Eingabe der Suche angezeigt wird.voidsetStartAt(int length)Legt fest, ab wieviel eingegebenen Zeichen die Suche starten soll.voidsetText(java.lang.String s)Speichert den anzuzeigenden Text.voidsetValue(java.lang.Object o)Schreibt einen neuen Wert in das Eingabefeld.java.util.ListstartSearch(java.lang.String text)Diese Funktion sollte ueberschrieben werden, wenn die Liste der Vorschlaege bei Eingabe von Suchbegriffen aktualisiert werden soll.protected voidupdate()BUGZILLA 743-
Methods inherited from class de.willuhn.jameica.gui.input.AbstractInput
getData, getName, getParent, getStyleBits, hasChanged, isMandatory, paint, paint, setComment, setData, setInvalidChars, setMandatory, setName, setValidChars
-
-
-
-
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
-
-
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
GenericObjectder Wert des Primaer-Attributes angezeigt, andernfalls der Wert vonObject.toString().- Parameters:
name- Name des anzuzeigenden Attributes (muss viaGenericObject.getAttribute(String)abrufbar sein).
-
setMaxLength
public void setMaxLength(int maxLength)
Definiert die maximal eingebbare Menge von Zeichen.- Parameters:
maxLength- Anzahl
-
setStartAt
public void setStartAt(int length)
Legt fest, ab wieviel eingegebenen Zeichen die Suche starten soll.- Parameters:
length- Mindest-Anzahl von Zeichen, ab der die Suche starten soll. Werte ≤ 0 werden ignoriert. Default: 1.
-
setMinWidth
public void setMinWidth(int width)
Legt eine Mindest-Breite fuer die Ergebnisliste in Pixeln fest. Wird kein Wert oder 0 angegeben, wird die Breite automatisch ermittelt.- Parameters:
width- die Mindest-Breite der Ergebnisliste.
-
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:InputFuegt dem Eingabe-Feld einen Listener hinzu, der bei jedem Focus-Wechsel ausgeloest wird. Besteht das Eingabe-Feld aus mehreren Teilen (z.Bsp. beiSearchInputaus Eingabe-Feld + Knopf dahinter) dann wird der Listener bei Focus-Wechsel jedes dieser Teile ausgeloest.- Specified by:
addListenerin interfaceInput- Overrides:
addListenerin classAbstractInput- Parameters:
l- zu registrierender Listener.
-
getControl
public org.eclipse.swt.widgets.Control getControl()
Description copied from interface:InputLiefert 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.
-
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:InputGibt diesem Eingabefeld den Focus.
-
disable
public void disable()
Description copied from interface:InputDeaktiviert das Eingabefeld.
-
enable
public void enable()
Description copied from interface:InputAktiviert das Eingabefeld.
-
setEnabled
public void setEnabled(boolean enabled)
Description copied from interface:InputAktiviert oder deaktiviert das Eingabe-Feld.- Parameters:
enabled- true, wenn es aktiv sein soll.
-
setValue
public void setValue(java.lang.Object o)
Description copied from interface:InputSchreibt einen neuen Wert in das Eingabefeld.- Parameters:
o- der neu anzuzeigende Wert.
-
isEnabled
public boolean isEnabled()
Description copied from interface:InputPrueft, ob das Eingabe-Feld aktiv ist.- Returns:
- true, wenn es aktiv ist.
-
update
protected void update() throws OperationCanceledExceptionBUGZILLA 743- Overrides:
updatein classAbstractInput- Throws:
OperationCanceledException
-
-