Search the FirstSpirit Knowledge Base
Hallo Community,
ich verwende das GomIncludeValueProvider Interface, um eine CMS_INPUT_COMBOBOX mit Werten zu befรผllen. Das ganze funktioniert auch wunderbar. Nun das Problem bzw. Unklarheit. Das Interface ist folgendermaรe definiert:
String | getKey(T value) Return a unique key for a specific value. |
Class<T> | getType() The generic content type (see List<T> getValues(UserService) and String getKey(T) ). |
List<T> | getValues(SpecialistsBroker broker) Get the list of included values. |
List<T> | getValues(UserService userService) Deprecated. since 4.2.400 Use GomIncludeValueProvider.getValues(SpecialistsBroker) instead. |
Die Option-Labels in der ComboBox werden รผber die getKey(T value)-Methode geholt. Warum werden die Keys anstatt den Values als Label angezeigt? Ist mit den Values der eigentliche Key gemeint und mit "unique key for a specific value" das eigentliche Label?
Verwendet wird die FS Version 4.2.478.53494.
Hier ein Beispiel:
<CMS_INPUT_COMBOBOX name="test" useLanguages="yes">
<CMS_INCLUDE_OPTIONS type="public">
<NAME>TestValueProvider</NAME>
</CMS_INCLUDE_OPTIONS>
<LANGINFOS>
<LANGINFO lang="*" label="Test" description=""/>
</LANGINFOS>
</CMS_INPUT_COMBOBOX>
public class TestValueProvider implements GomIncludeValueProvider<Integer> {
private List<Integer> list = Arrays.asList(1,2,3,4,5,6,7,8,9);
@Override public String getKey(Integer value) {
return "Option with value " + value;
}
@Override public Class<Integer> getType() {
return Integer.class;
}
@Override public List<Integer> getValues(UserService arg0) {
return null;
}
@Override public List<Integer> getValues(SpecialistsBroker arg0) {
return list;
}
}
Gruร
Philipp Bender
Hi,
die Beschreibung in der Dokumentation sollte eigentlich alles dazu erklรคren, wie die CMS_INCLUDE_OPTIONS so parameterisiert werden kรถnnen, dass sie beliebigen Text als Label anzeigt. Ohne entsprechende Parameter wird tatsรคchlich der Key benutzt, weil der Typ der Werte und wie diese angezeigt werden sollen unbekannt ist und keine sprachabhรคngige Lรถsung bietet.
In CMS_INCLUDE_OPTIONS kรถnnen sprachabhรคngig LABELS definiert werden. Dabei entspricht der Aufbau der bekannten Ausdrucks-Syntax wie an anderen Stellen in FirstSpirit. Ein Beispiel ist in der Dokumentation unter LABELS ebenfalls notiert. Es bezieht sich zwar auf den Type DATABASE, funktioniert aber analog auch mit PUBLIC. Der Wert wird dabei mit #item angesprochen und es kรถnnen auf alle Wertetyp-spezifischen Methoden zugegriffen werden. (Bei Werten vom Typ Integer ist dies wohl nicht so ergiebig.)
Falls noch Fragen รผbrig bleiben, gerne wieder hier.
Gruร
Stefan