Package de.willuhn.jameica.gui.input
Class SearchInput
java.lang.Object
de.willuhn.jameica.gui.input.AbstractInput
de.willuhn.jameica.gui.input.SearchInput
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
FieldsModifier and TypeFieldDescriptionstatic final int
Das 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 -
Method Summary
Modifier and TypeMethodDescriptionvoid
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 String
Formatiert die Bean passend fuer die Anzeige in der Combo-Box.org.eclipse.swt.widgets.Control
Liefert das eigentliche Eingabecontrol.getText()
Liefert den derzeit angezeigten Text zurueck.getValue()
Liefert das aktuelle Objekt.boolean
Prueft, ob das Eingabe-Feld aktiv ist.void
setAttribute
(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
setMinWidth
(int width) Legt eine Mindest-Breite fuer die Ergebnisliste in Pixeln fest.void
setSearchString
(String text) Legt einen abweichenden Text fest, der vor Eingabe der Suche angezeigt wird.void
setStartAt
(int length) Legt fest, ab wieviel eingegebenen Zeichen die Suche starten soll.void
Speichert den anzuzeigenden Text.void
Schreibt einen neuen Wert in das Eingabefeld.startSearch
(String text) Diese Funktion sollte ueberschrieben werden, wenn die Liste der Vorschlaege bei Eingabe von Suchbegriffen aktualisiert werden soll.protected void
update()
BUGZILLA 743Methods inherited from class de.willuhn.jameica.gui.input.AbstractInput
addListener, getData, getName, getParent, getStyleBits, hasChanged, isMandatory, paint, paint, setComment, setData, setInvalidChars, setMandatory, setName, setValidChars
-
Field Details
-
DEFAULT_DELAY
public static final int DEFAULT_DELAYDas Default-Delay nach dessen Ablauf das Widget mit der Suche beginnen soll. Angabe in Millisekunden.- See Also:
-
-
Constructor Details
-
SearchInput
public SearchInput()Erzeugt eine neue Such-Box.
-
-
Method Details
-
setSearchString
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
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 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
Formatiert die Bean passend fuer die Anzeige in der Combo-Box.- Parameters:
bean
- die Bean.- Returns:
- String mit dem anzuzeigenden Wert.
-
startSearch
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. beiSearchInput
aus Eingabe-Feld + Knopf dahinter) dann wird der Listener bei Focus-Wechsel jedes dieser Teile ausgeloest.- Specified by:
addListener
in interfaceInput
- Overrides:
addListener
in classAbstractInput
- Parameters:
l
- zu registrierender 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
AbstractInput.getParent()
in dieser Klasse bedienen.- Returns:
- das zu zeichnende Control.
-
getValue
Liefert das aktuelle Objekt. Das ist entweder das ausgewaehlte aus der letzten Suche oder das initial uebergebene.- Returns:
- Wert des Feldes.
- See Also:
-
getText
Liefert den derzeit angezeigten Text zurueck.- Returns:
- Text.
-
setText
Speichert den anzuzeigenden Text.- Parameters:
s
- 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.
-
setValue
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.
-
update
BUGZILLA 743- Overrides:
update
in classAbstractInput
- Throws:
OperationCanceledException
-