Major
Detail
Bugfix
Major
Detail
#26382
Error messages "Duplicate tag name..." when starting an application in the IDE from a TL-Studio
#26405
TTypeRewriter logs warning "Unable to resolve items by external reference" also unnecessarily
#26431
Changed superclass relationship leads to changed attribute list in the form editor only after a restart
Enhancement
Detail
#26420
Refactoring: Remove ResPrefix from AbstractFormDialog
Currently, programmatically opened dialogs are forced to have a ResPrefix, from which more or less undefined ResKey`s are derived. But many of these dialogs need only very few `ResKey`s, which would be better defined explicitly in an `I18NConstants file.
In particular, if you want to open such a programmatic dialog from an in-app configurable component/command, then you have no change to enter the required resources in the Layout Editor, since only single ResKey`s can be created there, but no `ResPrefix`es. Therefore you want to create such dialogs with a `ResKey for the dialog title and not with a ResPrefix from which the key for the dialog title is derived with the suffix .title.
Code migration
- In all derivations of tl:AbstractFormDialogBase the constructor parameter resourcePrefix has been dropped. In some cases it has been replaced by a dialogTitle parameter.
- The getResourcePrefix() method in tl:AbstractFormDialogBase now only returns ResPrefix.NONE by default and is only used for creating the FormContext. If custom fields are created, they must either be given a custom label (preferred), or the method must be overridden.
- The form ID for derivatives of tl:AbstractFormDialogBase changes. Therefore, user settings for such dialogs will be lost unless the getFormId() method is overridden and the CodeUtil.toCamelCase(resourcePrefix.key("Form").getKey()) value is returned.
Test
Refactoring, no test.