Option aus Entity erstellen
Author: Pierced
Publication Date: 2/25/2011 16:42
Hallo,
hier ein ganz einfacher Anwendungsfall (?)
Man hat eine Entity zur Hand, mit der man per API einen ComboxEditor befüllen möchte. Das macht man ja gewöhnlich, indem man eine Option auf ComboboxEditorValue.getEditor() setzt. Was hier so einfach klingt, scheint in der Praxis aber nicht so zu sein:
Die ContentOptionFactory hat keine öffentliche create()-Methode, und auch sonst scheint es keinen öffentlichen Weg zu geben, eine Option aus aus einer Entity zu erstellen.
Wie geht man hier vor?
Zur Abschreckung noch ein Beispiel aus unserem Projekt
ComboboxEditorValue entitiesToBePublishedEntry = (ComboboxEditorValue) data.get(Constants.FIELD_QUEUE_ENTRY).getEditor();
for (int comboboxEntryCounter = comboboxEntries.getSize() - 1; comboboxEntryCounter >= 0; comboboxEntryCounter--) {
Option comboboxEntry = (Option) comboboxEntries.getElementAt(comboboxEntryCounter);
if (comboboxEntry.getValue() instanceof Entity) {
Entity comboboxEntity = (Entity) comboboxEntry.getValue();
if (((TemporalIdentifier) comboboxEntity.getIdentifier()).getId() == ((TemporalIdentifier) entityForEntitiesToBePublished.getIdentifier()).getId()) {
entitiesToBePublishedEntry.set(masterLang, comboboxEntry);
break;
}
}
}
Das ist doch Wahnsinn! :smileyplain: Ich meine nicht nur den Code-Stil an sich (man hätte hier z.B. über OptionModel.iterator() gehen sollen).
Die "API" zwingt uns auf die interne API auszuweichen, weil keine geeigneten Methoden zur Verfügung stehen.
Und, sorry ich kann's mir nicht verkneifen, aber die FirstSpirit API-Dokumentation bzw. das JavaDoc ist leider ganz schön wenig bis gar nicht vorhanden und daher nahezu unbrauchbar. Ich hoffe daran wird gearbeitet.
Tags: entity, option
-
Author: andre - 2/25/2011 19:03
hallo Georg,
das Interface ComboboxEditorValue erweitert OptionsEditorValue und OptionsEditorValue#getOptionFactory liefert die Factory. also sollte ComboboxEditorValue#getOptionFactory die entsprechende Instanz der Factory liefern.
0
Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.
Kommentare
1 Kommentar