Wichtig
Detail
Wichtig
Detail
Bisher wurde Tabellen über die Generik immer eine technische Spalte _self hinzugefügt, in der ein Link auf das Objekt selbst mit einem Typ-Icon und dem Label des Objektes dargestellt wird, das über den Label-Provider für das Objekt generiert wird und i.d.R. sich aus dem Attribut name ableitet. Dies führt zu einer Doppelung der Spalten "name" und "_self", die sich dem Nutzer inkonsistent darstellt. In der Anzeige muss "_self" dargestellt werden, damit ein Link und Icon erscheint, für die Bearbeitung muss "name" angezeigt werden, da sich das Objekt-Label nicht bearbeiten lässt. Dies führt zu einer Reihe von Inkonsistenzen.
Verbesserung
Die generisch eingeführte technische Spalte _self wird aus Tabellen entfernt.
Es besteht die Möglichkeit am Typ einer konkreten Tabelle eine ID-Spalte zu annotieren bzw. konfigurieren. Die ID-Spalte ist die Spalte in einer Tabelle, für die ein Symbol des Typs des Zeilenobjekts vor ihrem Wert hinzugefügt wird und die als Link zu ihrem Zeilenobjekt dargestellt wird. Wenn keine ID-Spalte angegeben ist, wird standardmäßig die Spalte name verwendet, sofern sie vorhanden ist.
Code-Migration
In den Dateien der Form
- *.jsp
- *.inc
- *.xml
- *.properties
- *.java
sollte die technische Spalte _self durch name ersetzt werden.
Falls in den *.xml Layout-Dateien an der (alten) Spalte _self spezielle Comparator, tl:ResourceProvider, etc. konfiguriert wurden, die auf das Zeilenobjekt selbst angewendet wurden, dann müssen diese angepasst werden oder die (neue) Spalte name der Einfachheit mit bspw. dem tl:IdentityAccessor, falls möglich, in der Konfiguration ergänzt werden.
ColumnInfoFactory#createReferenceColumn(TLTypePart, Set<? extends TLType>, ResKey, boolean, boolean) wurde um den tl:Accessor erweitert zu ColumnInfoFactory#createReferenceColumn(TLTypePart, Set<? extends TLType>, ResKey, Accessor<?>, boolean, boolean).
In tl:ColumnsTemplateParameters wurde die Property idColumn entfernt, die für die Sortierung der Zeilen zuständig war. Stattdessen kann die Sortierreihenfolge über einen tl:TableConfigurationProvider an einer Tabelle konfiguriert werden:
{{{#!xml <configurationProviders>
<configurationProvider
class="com.top_logic.layout.table.model.SortOrderTableConfigurationProvider"
sortOrder="foobar:descending"
/>
</configurationProviders> }}} Entsprechende Layout und Script-Recorder Dateien müssen angepasst werden.
Test
- Es sollte in allen Tabellen, wenn nicht anders im dargestellten Typ annotiert oder in der Tabelle selbst konfiguriert wurde, die Spalte name mit einem Icon des Zeilenobjekttyps als Link gerendert werden. Zuvor war bspw. in der Sicht Typendemo > Grid der Name nicht als Link gerendert.
- Typ ohne name Attribut (z.B. mit title und description) konfigurieren und als Tabelle bzw. Grid darstellen. Im Typ title als ID-Spalte auswählen. Entsprechend sollte in den Tabellen der Wert dieser Spalte als Link mit Typ-Icon dargestellt werden.