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

}

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.5 | Datenschutz