Thema dieser Dokumentation / Das FirstSpirit 5 Modul- / Komponenten-Modell / Beispiel: Implementierung einer Eingabekomponente / ValueEngineerFactory
ValueEngineerFactory
Alle FirstSpirit-Eingabekomponenten speichern ihre Werte in sogenannten EditorValues. Eine übersichtliche und stabile Schnittstelle zum Interface EditorValue<T> (siehe Das Interface EditorValue) ist das Interface ValueEngineer<T> (siehe Das Interface ValueEngineer<T>). Es stellt Basisfunktionalitäten bereit, die für das Lesen und Schreiben des Persistenztyps der neuen Eingabekomponente (CustomTextareaSwingGadget) benötigt werden.
Zur Erzeugung eines neuen Objekts vom Typ ValueEngineer<T> muss zunächst eine Klasse bereitgestellt werden, die das Interface ValueEngineerFactory<T, F extends GomFormElement> implementiert, wobei T immer der Daten-Container-Typ des zugehörigen EditorValue<T> (hier String) und F das bereits implementierte Formular-Element (GomCustomTextarea) ist (siehe Das Interface ValueEngineerFactory).
Damit das SwingGadget mit dem korrekten Persistenztyp des zugehörigen EditorValues arbeitet, muss über die Methode Class<T> getType() der Persistenztyp (hier: String) zurückgeliefert werden.
Die create-Methode dient anschließend zur Erzeugung eines neuen, typisierten Objekts vom Typ ValueEngineer<T>. Der Methode wird ein typisierter ValueEngineerContext<F> übergeben (siehe Das Interface ValueEngineerContext<F extends GomFormElement>), der weitere Informationen über den Status eines Werts enthält, beispielsweise die Zielsprache in der ein Wert gespeichert werden soll.
Listing: Beispiel ValueEngineerFactory – Lesen u. Schreiben des Persistenztyps
public class TextareaValueEngineerFactory
implements ValueEngineerFactory<String, GomCustomTextarea> {
public Class<String> getType() {
return String.class;
}
public ValueEngineer<String>
create(final ValueEngineerContext<GomCustomTextarea> context) {
return new TextareaValueEngineer();
}
}