Verbesserung
Top-Thema
Wichtig
Kleinigkeit
Wichtig
Auswahldialoge, wie sie z.B. für Popup-Select Felder geöffnet werden, sollen Anpassungen an Dialoggröße sowie evtl. Tabelleneinstellungen (z.B. Spaltenauswahl, Sortierung etc.) analog gewöhnlichen Dialogen benutzerspezifisch persistieren.
Die persistierten Einstellungen sollen beim Zurücksetzen der Benutzereinstellungen - ebenfalls analog zu gewöhnlichen Dialogen - verworfen werden.
Außerdem soll es möglich sein, für diese Dialoge anwendungsweit, die initiale Dialoggröße zu konfigurieren.
Umsetzung
SelectDialogConfig ist nun ein ConfigurationItem, sodass unter anderem Höhe und Breite des Dialogs konfigurierbar sind. Vom Benutzer geänderte Dialoggrößen und Tabellenkonfigurationen werden in einer PersonalConfiguration für das SelectField abgespeichert. Die Änderungen werden beim Zurücksetzen der Benutzereinstellungen verworfen.\\ Falls ein SelectField eine SELECT_DIALOG_TABLE_PROVIDER_PROPERTY besitzt, dann wird diese Tabellenkonfiguration genutzt. Dadurch sind die Fomulartabelle und die Tabelle des SelectDialogs unabhängig voneinander konfigurierbar. Besitzt der Dialog keine eigene Tabellenkonfiguration, dann nutzt sie den TABLE_CONFIGURATION_PROVIDER. Abgesehen von Filtern werden dann beide Tabellen gleich konfiguriert und nutzen dieselbe PersonalConfiguration.
Test
Ohne Dialogkonfiguration
Für diesen Test kann das SelectField priorityTable in einem A-Objekt verwendet werden. Die Tabelle des Auswahldialogs besitzt keine eigene Tabellenkonfiguration, sondern nutzt die der Formulartabelle. Abgesehen von Filtern müssen also alle Änderungen an der Konfiguration (z.B. Spaltenreihenfolge, angezeigte Spalten etc.) in der Formulartabelle auch in der Tabelle des SelectDialogs sichtbar sein. Umgekehrt müssen Änderungen an der Konfiguration der Tabelle im SelectDialog auch in der Formulartabelle sichtbar sein (Achtung: Änderungen sind dort erst sichtbar, wenn der Editiermodus durch speichern/abbrechen verlassen wird oder wenn man sich neu einloggt).
Mit Dialogkonfiguration
Für diesen Test kann das SelectField priorityTableDialogConfig in einem C-Objekt verwendet werden. Die Tabelle des Auswahldialogs besitzt eine eigene Tabellenkonfiguration, die unabhängig von der Tabellenkonfiguration der Formulartabelle ist. Änderungen an einer der Konfigurationen (z.B. Spaltenreihenfolge, angezeigte Spalten etc.) dürfen nicht in der anderen Tabelle sichtbar sein.
Dialoggröße
Dazu kann der SelectDialog der priorityTable oder priorityTableDialogConfig verwendet werden. Wird die Größe des Dialogs geändert, muss diese bei erneutem Öffnen des Dialogs erhalten bleiben.
Code Migration
AbstractSelectDialog.AbstractSelectDialog(SelectField targetField, SelectDialogConfig config) benötigt jetzt eine SelectDialogConfig als Parameter, um auf die konfigurierte Dialoggröße zugreifen zu können.\\ TableSelectDialogProvider.TableSelectDialogProvider(TableSelectDialogConfig config) benötigt jetzt eine TableSelectDialogConfig als Parameter statt einer SelectDialogConfig. Außerdem gibt TableSelectDialogProvider.createDefaultTableDialogConfig() jetzt eine TableSelectDialogConfig statt einer DefaultSelectDialogConfig zurück.