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.