Detail
#27218
Grid-Tabellen: Berechnete Spalte: Single-Value SelectField benötigt Listenwert.
Einer Grid-Tabelle soll eine Spalte hinzugefügt werden, die ein einwertiges ENUM-Attribut eines mit dem Zeilenobjekt verknüpften Objekts anzeigt:
Es wird eine "berechnete Spalte" deklariert, als deren Typ die ENUM gewählt wird. Es werden Funktionen zur Wertermittlung und zur Speicherung des Werts angeben.
Problem
Liefert die Funktion zur Wertermittlung einen Klassifikator, funktioniert die Anzeige, aber im Bearbeitungsmodus gibt es eine ClassCastException bei der Initialisierung des SelectFields: "PersistentClassifier cannot be cast to Collection".
Workaround
Als Workaround muss die Wertermittlung explizit eine 1-wertige Liste mit dem tatsächlichen Wert als einziges Element produzieren (toList()). In diesem Fall muss dann aber auch die Speicherfunktion angepasst werden, um den Wert aus der übergebenen Liste explizit auspacken (firstElement()), weil 1-wertige Referenzen keine Listenwerte unterstützen.
Test
TestGridComputedEnumColumn.script.xml