Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / GOM - FirstSpirit GUI Object Model / Abstrakte GOM-Klassen / AbstractGomComboBox
AbstractGomComboBox
Die AbstractGomComboBox-Klasse stellt die meisten Funktionalitäten zur Verfügung, die eine Combobox nutzt. Ein Anwendungsfall für die Erweiterung dieser abstrakten Klasse ist beispielsweise eine automatische Vervollständigung (Auto-Completion). Dieses lässt sich ohne die Anpassung des GOMs realisieren, d.h. hier ist reine Swing-Funktionalität erforderlich. Sollen jedoch weitere Attribute oder Elemente für die GOM XML-Definition einer Eingabekomponente zu Verfügung gestellt werden, um diese dann ggf. in der Implementierung auszuwerten, müssen diese in der GOM-Definitions-Klasse der Komponente erstellt werden. Ein Anwendungsfall für das konkrete Beispiel der Auto-Completion-Combobox wäre hier, dem Redakteur die Möglichkeit zu geben, über die Gom-Form-Definition zu entscheiden, ob eine Combobox mit der Completion-Funktionalität ausgestattet sein soll oder nicht.
Listing: GOM Beispiel Combobox
package de.espirit.firstspirit.opt.examples.gom.combobox;
import de.espirit.firstspirit.access.store.templatestore.gom.AbstractGomCombobox;
import de.espirit.firstspirit.access.store.templatestore.gom.TextGomFormElement;
import de.espirit.firstspirit.access.store.templatestore.gom.YesNo;
import de.espirit.firstspirit.access.editor.ComboboxEditorValue;
import de.espirit.firstspirit.common.text.Designator;
import de.espirit.common.GomDoc;
import de.espirit.common.Default;
@GomDoc(description = "GomCombobox form element.", since = "4.1")
public class GomCombobox extends AbstractGomCombobox implements TextGomFormElement {
// same TAG defined in the module descript.
// @see module.xml <name>CMS_EXAMPLE_GOMCOMBOBOX</name>
public static final String TAG = "CMS_EXAMPLE_GOMCOMBOBOX";
private String _name;
private Integer _id;
private YesNo _autocompletion;
private YesNo _editable;
private YesNo _extAutoCompletion;
public GomCombobox() {
super();
}
public GomCombobox(final String name, final Integer id) {
_name = name;
_id = id;
}
public void setName(final String name) {
_name = name;
}
@GomDoc(description = "The Combobox id", since = "4.1")
public Integer getId() {
return _id;
}
public void setId(final Integer id) {
_id = id;
}
@GomDoc(description="Editable indicator.", since="4.1")
@Default("NO")
public YesNo getEditable() {
return _editable;
}
public void setEditable(final YesNo editable) {
_editable = editable;
}
@GomDoc(description = "Enable the auto completion feature of the combobox.",
since = "4.1")
@Default("NO")
public YesNo getAutoCompletion() {
return _autocompletion;
}
public void setAutoCompletion(final YesNo enable) {
_autocompletion = enable;
}
@GomDoc(description = "Enable the extended combobox auto completion mechanism.",
since = "4.1")
@Default("NO")
public YesNo getExtAutoCompletion() {
return _extAutoCompletion;
}
public void setExtAutoCompletion(final YesNo enable) {
_extAutoCompletion = enable;
}
/**
* Return the default tag for a gom element.
*
* @return The elements default tag.
*/
@Override
protected String getDefaultTag() {
return TAG;
}
@Override
public void validate() throws IllegalStateException {
super.validate();
}
}
Listing: GOM-Form Representation
<CMS_EXAMPLE_GOMCOMBOBOX
name="gomcombobox2"
autoCompletion="no"
editable="yes"
extAutoCompletion="yes"
length="10"
useLanguages="yes">
<LANGINFOS>
<LANGINFO lang="*" label="GOM ExtAuto-Completion-Combobox Example"/>
<LANGINFOlang="DE" label="GOM ExtAuto-Completion-Combobox Beispiel"/>
<LANGINFO lang="EN" label="GOM ExtAuto-Completion-Combobox Example"/>
</LANGINFOS>
</CMS_EXAMPLE_GOMCOMBOBOX>