Wichtig
Detail
Fehlerbehebung
Wichtig
Detail
Detail
#26420
Refactoring: ResPrefix aus AbstractFormDialog entfernen
Aktuell haben programmatisch geöffnete Dialoge zwangsweise einen ResPrefix, von dem mehr oder weniger undefiniert ResKey`s abgeleitet werden. Viele dieser Dialoge benötigen aber nur ganz wenige `ResKey`s, die besser explizit in einer `I18NConstants Datei definiert würden.
Insbesondere, wenn man einen solchen programmatischen Dialog aus einer in-app konfigurierbaren Komponente/Kommando öffnen möchte, dann hat man keine Change, die benötigten Resourcen im Layouteditor einzugeben, da dort nur einelne ResKey`s aber keine `ResPrefix`e erzeugt werden können. Daher möchte man solche Dialog mit einem `ResKey für den Dialog-Titel erzeugen und nicht mit einem ResPrefix, von dem mit dem Suffix .title der Key für den Dialogtitel abgeleitet wird.
Code-Migration
- In allen Ableitungen von tl:AbstractFormDialogBase ist der Constructor-Parameter resourcePrefix entfallen. Teilweise ist dieser durch einen Parameter dialogTitle ersetzt worden.
- Die Methode getResourcePrefix() in tl:AbstractFormDialogBase liefert standardmäßig nur noch ResPrefix.NONE und wird nur noch für die Erstellung des FormContext verwendet. Wenn eigene Felder erzeugt werden, müssen diesen entweder ein individuelles Label gesetzt werden (präferiert), oder die Methode überschrieben werden.
- Die Formular-ID für Ableitungen von tl:AbstractFormDialogBase ändert sich. Daher gehen Benutzereinstellungen für solche Dialoge verloren, wenn nicht die Methode getFormId() überschrieben wird und der Wert CodeUtil.toCamelCase(resourcePrefix.key("Form").getKey()) zurückgeliefert wird.
Test
Refactoring, kein Test.