Eingabedialoge

Wird mehr als eine einfache Bestätigung benötigt, werden Eingabedialoge verwendet. Damit ist es möglich, dem Benutzer ein oder mehrere Textfelder zum Ausfüllen bereitzustellen.

Für jedes Textfeld wird ein Attribut definiert. Für die individuellen Anforderungen der Textfelder gibt es mehrere Attributtypen, ähnlich wie bei den Objektdefinitionen (objectTypes.xml). Diese Attribute können mit Validierern (<validator>) versehen werden, beispielsweise um den Gültigkeitsbereich des Attributs einzuschränken, indem die Anzahl der gültigen Zeichen oder Zahlen für ein Textfeld beschränkt wird. Die Namen der XML–Elemente ergeben sich aus dem Namen des Attributtyps, z. B. <booleanAttribute>, <longAttribute>. Bei den IDs der Attribute sollten Sie Namenskonventionen verwenden, die es erleichtern, mit den gesammelten Daten des Dialogs zu arbeiten. Das bedeutet, dass bei der Übertragung eines Attributs des Dialogs in ein Attribut eines Objekts unbedingt Namensgleichheit bestehen sollte. So sollte z. B bei der Objekterstellung das Attribut der Umgebungsauswahl im Dialog client_sign denselben Namen haben wie das entsprechende Attribut des Objekts, das erstellt werden soll.

Bestehende Attributtypen

boolean

Attribut für Boole'sche Werte (Ja/Nein).

date

Attribut für Datumswerte.

double

Attribut für Gleitkommazahlen.

enum

Attribut für Enumerationen (enumerations_*.xml).

long

Attribut für Ganzzahlen.

selection

Attribut, um Werte aus einer vorgegebenen dynamischen Liste zu wählen, z. B. für die Wahl der Umgebung. Um die möglichen Werte der Auswahlliste zu bestimmen, gibt es die PredefinedValueProvider. Die Applikation enthält einige dieser konfigurierbaren Provider (siehe unten). Einige Provider können Sie jedoch auch manuell implementieren.

string

Attribut für einfache Textfelder. Inhalt und Länge des Textes können eingeschränkt werden

text

Attribut für mehrzeilige Texte.

Für das Attribut selection gibt es mehrere PredefinedValueProvider. Sie können parametrisiert werden und bieten verschiedene Möglichkeiten.

Bestehende PredefinedValueProvider

client

Liefert eine Liste aller Umgebungen, auf die der Benutzer Zugriff hat. Diese Liste kann durch maximal einen der folgenden Parameter eingeschränkt werden:

  • componentRight

    Liefert nur Umgebungen, für die es ein bestimmtes componentRight gibt (roles.xml).

  • objectRight

    Gibt nur Umgebungen aus, in denen es für den aktuellen ObjectType (bestimmt über den Parameter objectTypeId) ein bestimmtes objectRight (roles.xml) gibt.

  • licensedComponent

    Liefert nur Umgebungen, die eine bestimmte lizenzierte Komponente besitzen.

Zusätzliche Parameter:

  • objectTypeId

    ID eines Objekttyps (objecttypes.xml), die z. B. durch das Command createObjectDialog gesetzt wird. Dieser Parameter wird nur im Zusammenhang mit dem Parameter objectRight benötigt.

static

Verwaltet eine vorher im Java-code festgelegte Liste von Elementen

usergroup

Liefert eine Liste mit verfügbaren Benutzergruppen.

Parameter:

  • client_sign

    Bestimmt auf welche Umgebung die Gruppen eingeschränkt werden sollen, wenn clientDependent=true. Dieser Parameter kann auch dynamisch über ein anderes Attribut des Dialoges bestimmt werden (siehe Dialog loss_create).

  • roles

    Eine komma-separierte Liste von Rollenbezeichnungen (roles.xml). Nur Gruppen mit entsprechenden Rollen werden berücksichtigt.

  • clientDependent

    Bestimmt, ob umgebungsspezifische (true) oder umgebungsübergreifende (false) Gruppen gesucht werden (Standard false).

view

Verwendet eine View (views_*.xml), um eine Liste mit Elementen aufzubauen. Die Parameter value, id und client verlangen als Werte die IDs der entsprechenden Spalten in der View.

Im folgenden Beispiel wird ein neuer Dialog angelegt, welcher beim Erstellen einer neuen Kontrolle erscheint. Dabei werden einige Attribute der Kontrolle abgefragt und anschließend in der neu erstellten Kontrolle gesetzt.

Speicherort

XML-Datei im Ordner xml

Vorgehen

  1. Definieren Sie ein neues Element <dialog> mit einer eindeutigen ID.
  2. Fügen Sie für jedes Attribut des Dialoges ein passendes untergeordnetes Attribut-Element ein. Mögliche Attributtypen finden Sie oben im Text.
  3. Ordnen Sie jedem Attributtyp eine ID zu. Sollen die Eingabewerte direkt in das Attribut eines Objektes übertragen werden, sollten beide die gleiche ID haben, z. B. client_sign (siehe auch objectTypes.xml). Jeder Dialog und jedes seiner Attribute erzwingt entsprechende Eigenschaftsschlüssel (dialog.<dialogID>.DBI, attribute.<dialogID>.<attributeID>.DBI).
  4. Legen Sie ein neues Element <form> an. Die ID des Formulars wird von der Dialog-ID DIALOG_<dialogID> übernommen. Derzeit bestehen solche Formulare aus exakt einem Element <page> mit einem einzigen Element <rowGroup>.
  5. Fügen Sie der rowGroup für jedes Attribut ein Element <row> mit einem Element <element> hinzu. Die XML-Attribute id (row) und attribute.idref (element) verweisen auf die entsprechende ID des Dialogattributs.
  6. Passen Sie die entsprechende commandchain des Objekts an (siehe vorheriges Kapitel).

Dokumente

dialogs.xsd, forms.xsd, dialogs.xml, forms_*.xml

Beispiel

AddNewInputDialog

\WEB-INF\config\custom\xml\custom.xml: Add custom dialog