Formulare gibt es aktuell in den folgenden "Geschmacksrichtungen":
- Edit-Komponenten zum Bearbeiten eines bereits existierenden persistenten Objektes. Die Komponente kommt mit einem eingebauten Edit-/View-Modus-Umschalter. Die Komponente ist nicht geeignet, um Werte für ein neu anzulegendes Objekt einzugeben, da das Edit-/Apply-Handling in diesem Fall keinen Sinn ergibt.
- Einstellungskomponenten: Stellen die Attribute des Komponentenmodells dar. Die Komponente hat einen Edit-/View-Mode-Kanal, wird aber standardmäßig im Edit-Modus angezeigt und hat keine eingebaute Edit-/View-Mode-Umschaltung. In der Standardkonfiguration zeigt die Komponente die Attribute eines transienten Objektes an, das bei der Initialisierung ihres Modell-Kanals implizit gebaut wird.
- Objekt-Anlage-Dialog kann entweder einen vordefinierten oder einen durch den Nutzer auswählbaren Objekttyp instanziieren und dabei vorher Attributwerte des neu anzulegenden Objektes füllen. Die Verwendung ist auf Dialoge beschränkt.
- Der "Transaktion mit Eingabe"-Dialog erlaubt die Werte eines implizit angelegten transienten Objektes, das das Formular-Modell repräsentiert, zu füllen, um Parameter für eine anschließende nutzerdefinierte Transaktion eingeben zu können.
Ziel
Die bestehenden Templates sollen zu Assistenten eines verallgemeinerten Formular-Handlings werden, dessen Bausteine man auch neu kombinieren könnte, beispielsweise zu:
- Einer Objekt-Anlage ohne Dialog, beispielsweise in einem Tab, einer Kachel, oder in einem Micro-Frontend (einem Applikationslayout, dass als einzige Funktionalität eine Objektanlage durchführt).
- Einem selbstdefinierten Anlage-Dialog mit custom Layout.
- Einer Bearbeitungssicht ohne View-Mode.
Anwendung
Es gibt ein neues Template "Formular (allgemein)", mit dem eine Formular erzeugt werden kann, bei dem das Formular-Modell nicht implizit aus dem Modell-Objekt des Formulars aufgebaut wird, sondern über eine Funktion erstellt werden kann. Diese erzeugt i.d.R. ein transientes Objekt, dessen Eigenschaften zur Bearbeitung angeboten werden. In einem ebenfalls frei definierbaren Kommando zum Übernehmen/Speichern können die Nutzereingaben im Formular dann weiterverarbeitet werden.
Code-Migration
In aufgezeichneten Test-Skripten können sich die technischen Identifier von Feldern von inneren Objekten (z.B. Zeilen von Kompositionstabellen in Formularen) ändern. Wenn die Fehlermeldung keinen ausreichenden Hinweis gibt, müssen einzelne Aktionen möglicherweise neu aufgezeichnet werden.
Test
- /com.top_logic.demo/src/test/java/test/com/top_logic/demo/scripted/form/TestGenericForms.script.xml
- Test View: Technisches Demo > Komponenten > Allgemeine Formulare