Auf dieser Seite wird die Definition der Formkomponente beschrieben.

 

Formdefinitionen erfolgen in XML. Es empfiehlt sich folgende Deklaration:

<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://www.geograt.de/namespaces/gisx3/dialogdefinition/1.0" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...  
</Form>

Formdefinitionen werden im Unterverzeichnis "components" abgelegt und müssen die Dateiendung ".xml" besitzen.

Beispiel für eine Formdefinition:

<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://www.geograt.de/namespaces/gisx3/dialogdefinition/1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <title>title</title>
    <spanColumns>2</spanColumns>
    <requestTheme>
        <constant>
            <value>shape:dialogtesting.editable-theme</value>
        </constant>
    </requestTheme>
    <content>
        <field>
            <name>Nutzung</name>
            <content>
                <featureAttribute>
                    <name>usage</name>
                </featureAttribute>
            </content>
        </field>
        <field>
            <name>Datum</name>
            <content>
                <featureAttribute>
                    <name>datum</name>
                </featureAttribute>
            </content>
            <href>
                <featureAttribute>_href</featureAttribute>
                <internal>true</internal>
            </href>
        </field>
    </content>
    <!-- <logger>
        <loggerName>ALBParcelRequestLogger</loggerName>
        <cause>Flurstücksanzeige im Dashboard</cause>
    </logger> -->
    <action>
        <update>
            <text>Bearbeiten</text>
        </update>
    </action>
</Form>

Es gilt: 

  • <title> := Sichtbare Bezeichnung der Form.
  • <spanColumns> := OPTIONAL. Anzahl der Spalten, über die sich die Komponente erstrecken soll (Default: 1)
  • <requestID> := Kann die für das Formular anzuzeigende ID überschreiben, wenn das Formular in einer Maske verwendet wird und dort ein anderes Objekt als das der Maske angezeigt werden soll. Bei (aus anderen Dateien) referenzierten Formularen besitzt die Angabe aus der Referenz Vorrang.
  • <requestTheme> := Kann die für das Formular anzuzeigende Thema überschreiben, wenn das Formular in einer Maske verwendet wird und sich auf ein anderes Thema als das der Maske beziehen soll (z.B. Anzeige von Details zu einem Eigentümer auf einer Flurstücksmaske). Bei (aus anderen Dateien) referenzierten Formularen besitzt die Angabe aus der Referenz Vorrang.
  • <content> := Jeder <content> Block repräsentiert einen Inhalt der Formdefinition. 
  • <logger> := OPTIONAL. Definition eines Loggers
  • <action> := OPTIONAL. Aktionen z.B. zum Bearbeiten des Datensatzes im Formular.

Der <content> Block kann beliebig viele Elemente (auch gemischt) des folgenden Typs enthalten:

  • <field> := Definiert die Anzeige der Informationen als Feld.

Feld

Jedes Feld hat folgende Eigenschaften:

  • <name> := Sichtbare Bezeichnung des Inhalts.
  • <content> := Definition des Feldinhaltes.
  • <href> := Optional. Darstellung des Feldes als Link

Feldinhalt

Jeder Feldinhalt (<content>) hat folgende Featureattribute:

  • <featureAttribute>

Jedes Featureattribut hat folgende Eigenschaften:

  • <name> := Der Wert des Attributs. Für diese Werte müssen JSON Attributnamen angegeben werden.
Icon

Eine Übersicht über alle angebotenen Attribute findet man auf dieser Seite.

Ein Link kann innerhalb eines Felds wie folgt definiert werden (vgl. Beispiel oben):

...
		<href>
			<featureAttribute>_href</featureAttribute>
			<internal>true</internal>
		</href>
...
  • <featureAttribute> := Optional. Definition des Linkinhaltes, falls nicht angegeben wird immer das Attribut "_href" des aktuellen Features verwendet.
  • <internal> := Gibt an ob es sich beim Link um einen internen ("true") oder externen ("false") handelt. Interne Links werden im selben Browsertab geöffnet, externe in einem neuen Tab (bzw. Fenster). Ist das Attributwert nicht angegeben, wird "false", also ein externer Link, angenommen.

Logger

Logger dienen dazu Abrufe von Daten von der Client Seite zu protokollieren. 

Für die Definition eines Loggers können Sie zwei Werte angeben:

  • loggerName := Eindeutiger Name des Loggers. Eine Liste verfügbarer Logger finden Sie weiter unten in diesem Kapitel.
  • cause := Optional: Angabe eines Grundes für Logging. Wird von Loggern in die Ausgabe übernommen. Hierdurch können Sie z.B. in einer Logdatei später unterschiedliche Aufrufe unterscheiden

Als Loggername stehen Ihnen zur Verfügung:

  • ALBParcelRequestLogger := Dieser Logger funktioniert für alle Elemente des Themas ALBParcel aus dem GISX 2.x Datastore. Es wird in der Datei <TOMCAT_HOME>/logs/gisx_alblog.log geloggt welcher Benutzer wann Daten zu einem Flurstück abgerufen hat. Dieser Logger wird auf der Maske zur Anzeige von Eigentümern zu einem Flurstück verwendet um der Datenschutzverordnung zu genügen.

Aktionen

Derzeit können folgende Aktionen definiert werden.

  • <delete> - Erlaubt das Löschen des im Formular angezeigten Datensatzes, vorausgesetzt, der Nutzer hat die nötige Berechtigung.
    Mittels <themeAfterDelete> und <idAfterDelete> kann das Verhalten nach dem Löschen bestimmt werden:
    • Sind beide angegeben, wird die Detailmaske des Objekts mit dieser ID im angegebenen Thema geöffnet
    • Ist nur ein Thema angegeben, wird die im Thema definierte Übersichtsmaske geöffnet (oder, falls für das Thema nicht angegeben, das allgemeine Dashboard)
    • Sind beide nicht angegeben, wird das allgemeine Dashboard geöffnet.
  • <update> - Erlaubt das Bearbeiten des Formulars zwecks Änderung von Sachdaten, vorausgesetzt, der Nutzer hat die nötige Berechtigung.
  • <showMap> - Ermöglicht die Anzeige des Datensatzes in der Karte. Folgende Attribute sind möglich:
    • <mapId> := ID der Karte die angezeigt werden soll. Dieses Attribut ist zwingend anzugeben

In allen Fällen kann ein <text> angegeben werden, der bspw. für die Anzeige des Tooltips verwendet wird.

...
    <action>
        <delete>
            <text>Delete my content</text>
            <themeAfterDelete>
                <constant>
                    <value>Test</value>
                </constant>
            </themeAfterDelete>
            <idAfterDelete>
                <constant>
                    <value>X</value>
                </constant>
            </idAfterDelete>
        </delete>
        <update>
            <text>Update my content</text>
        </update>
    </action>
...