Verbesserung
Top-Thema
Detail
Wichtig
Detail
Top-Thema
#26004
Tabellen mit dynamischen Spalten
In einer Tabellenkonfiguration können beliebig Spalten konfiguriert werden. Dafür muss in der Konfiguration aber jede Spalte einen festen Namen erhalten. Eine dynamische Anzahl von Spalten lässt sich über einen tl:TableConfigurationProvider realisieren. Zumindest für Tabellen, die nur Werte darstellen aber nicht editieren ist das relativ einfach, erfordert aber das Schreiben eines Plug-Ins.
Verbesserung
tl:DynamicColumnProviderByExpression - ein über TL-Script parametrisierbarer tl:TableConfigurationProvider, eine dynamische Menge an Spalten zu einer Tabelle hinzufügt.
Über die Angabe einer Speicheroperation kann dieser Provider auch in einer tl:GridComponent verwendet werden, um zusätzliche Eingabefelder in die zu editierende Zeile zu bekommen.
Code-Migration
Die API von com.top_logic.element.meta.form.FieldProvider für die Erzeugung von Eingabeelementen für Modellelement hat sich geändert
- von FormMember getFormField(AttributeUpdate attributeUpdate, AttributeUpdateContainer updateContainer, String fieldName)
- zu FormMember getFormField(EditContext editContext, String fieldName)
- tl:AttributeUpdate ist ein möglicher tl:EditContext. Der FieldProvider darf nicht mehr auf das editierte Modellelement zugreifen (tl:TLStructuredTypePart), sondern nur noch auf dessen Eigenschaften, wofür EditContext Zugriffsmethoden zur Verfügung stellt.
- Diverse weitere (interne) APIs wurden von AttributeUpdate zu EditContext verallgemeinert.
Test
- /com.top_logic.demo/src/test/com/top_logic/demo/scripted/table/TestDynamicTableColumns.script.xml
- Sicht in tl-demo: Technisches Demo:Komponenten:Dynamische Spalten.