Selection dialogs, as they are opened e.g. for popup select fields, should persist adjustments to dialog size as well as possible table settings (e.g. column selection, sorting etc.) analogous to usual dialogs user-specifically.
The persisted settings shall be discarded when resetting the user settings - also analogous to common dialogs.
Furthermore, it should be possible to configure the initial dialog size for these dialogs application-wide.
Implementation
SelectDialogConfig is now a ConfigurationItem, so that, among other things, the height and width of the dialog can be configured. Dialog sizes and table configurations changed by the user are stored in a PersonalConfiguration for the SelectField. The changes are discarded when the user settings are reset.\ If a SelectField has a SELECT_DIALOG_TABLE_PROVIDER_PROPERTY, then this table configuration is used. This way the form table and the table of the SelectDialog can be configured independently. If the dialog does not have its own table configuration, then it uses the TABLE_CONFIGURATION_PROVIDER. Apart from filters, both tables are then configured in the same way and use the same PersonalConfiguration.
Test
Without dialog configuration
For this test, the SelectField priorityTable can be used in an A object. The table of the selection dialog does not have its own table configuration, but uses that of the form table. So, apart from filters, all changes to the configuration (e.g. column order, columns displayed, etc.) in the form table must also be visible in the SelectDialog table. Conversely, changes to the configuration of the table in the SelectDialog must also be visible in the form table (Attention: Changes are only visible there when the edit mode is exited by save/cancel or when you log in again).
With dialog configuration
For this test the SelectField priorityTableDialogConfig can be used in a C object. The table of the selection dialog has its own table configuration, which is independent of the table configuration of the form table. Changes to one of the configurations (e.g. column order, columns displayed, etc.) must not be visible in the other table.
Dialog size
The SelectDialog of the priorityTable or priorityTableDialogConfig can be used for this purpose. If the size of the dialog is changed, it must be kept when the dialog is opened again.
Code Migration
AbstractSelectDialog.AbstractSelectDialog(SelectField targetField, SelectDialogConfig config) now requires a SelectDialogConfig as a parameter to access the configured dialog size.\\ TableSelectDialogProvider.TableSelectDialogProvider(TableSelectDialogConfig config) now requires a TableSelectDialogConfig as a parameter instead of a SelectDialogConfig. Also, TableSelectDialogProvider.createDefaultTableDialogConfig() now returns a TableSelectDialogConfig instead of a DefaultSelectDialogConfig .