Formular Layout

In diesem Kapitel wird vor allem auf den korrekten Aufbau und die Funktionsweise von Formular Layouts eingegangen.

Die meisten im Formulardesigner verfügbaren Elemente bieten die Eigenschaftenkategorie "Layout" an, in der beispielsweise die Größe des Elements definiert werden kann (siehe Abbildung).

images/download/attachments/106962728/image2019-5-9_14-20-19-version-1-modificationdate-1659094137787-api-v2.png

Neben einer Css Klasse (1 Definierbar über die Experteneinstellungen der Styles) kann sowohl die Größe (2) als auch die Mindestgröße (3) eines Elements definiert werden.
Hinweis: Abhängig vom jeweiligen Elementtyp kann es vorkommen, dass nicht alle oder überhaupt keine Einstellmöglichkeiten zur Verfügung stehen

Größenangaben

Die Größe eines Elements kann sowohl in der Höhenrichtung als auch in der Breitenrichtung getrennt voneinander definiert werden.

images/download/attachments/106962728/image2018-5-28_15_53_35-version-1-modificationdate-1659094137759-api-v2.png

Dabei werden drei Modi unterstützt:

  1. Fix: Die Größe wird als fixer Wert in Pixeln angegeben

  2. prozentual: Die Größe wird als prozentualer Wert angegeben.
    Dabei wird das Maß relativ zum übergeordneten Element errechnet.
    Ein prozentual großes Element wird dabei maximal so groß wie der restlich verfügbare Platz innerhalb seines übergeordneten Elements.
    Der restliche Platz ergibt sich dabei aus der Größe des übergeordneten Elements abzüglich des Inhalts mit fixer oder automatischer Größe.
    Dieser Sachverhalt hat auch zur Folge, dass sich Elemente mit prozentualer Größe ihren Platz auf derselben Ebene aufteilen.
    Beispiel 1: Ein Spaltenlayout Container mit definierter Breite von 300 Pixeln (blauer Rahmen) besitzt zwei untergeordnete Button Elemente mit einer jeweiligen Breite von 100%

    images/download/attachments/106962728/image2019-5-9_14-55-29-version-1-modificationdate-1659094137790-api-v2.png



    Beispiel 2: Selbes Szenario wie in Beispiel 1, jedoch besitzt der erste Button eine fixe Breite von 50 Pixeln. Button 2 nimmt dabei den restlichen Platz ein

    images/download/attachments/106962728/image2019-5-9_15-28-48-version-1-modificationdate-1659094137793-api-v2.png



  3. Auto: Die Größe des Elements passt sich automatisch an die Größe seines Inhalts an

  4. Relativ zur Schriftgröße: Die Größe des Elements wird relativ zu der gerade verwendeten Schriftgröße angegeben

Wichtig: Verschachtelung von prozentual großen Elementen in Container mit automatischer Größe

Es sollte immer bedacht werden, dass prozentuale Werte abhängig von der Größe des übergeordneten Elements sind, wobei ein automatischer Wert sich an der Größe des Inhalts orientiert.
Daher sollten prozentuale Größen im Inhalt in Kombination mit automatischen Größen im übergeordneten Element vermieden werden, da das Verhalten sonst undefiniert sein kann.
Der Grund hierfür wird nachfolgend noch einmal deutlich gemacht:
Ausgangssituation: Container A (Höhe: auto) beinhaltet Element B (Höhe: 100%)
Beim Darstellen soll zunächst die Größe von A ermittelt werden: Höhe A = Höhe B (weil Höhe A "auto")
Da die Größe von A sich an der Größe seines Inhalts orientiert, muss also zunächst die Größe von B ermittelt werden: Höhe B = Höhe A (weil Höhe B "100%").
Nun müsste wieder die Höhe von A ermittelt werden, was zu einem sogenannten "Henne-Ei" Problem führt. Die Größen beider Elemente sind daher nicht definiert, was in manchen Fällen dazu führen kann, dass Elemente überhaupt nicht oder nur sehr klein dargestellt werden.
Ebenso könnte es passieren, dass Elemente Millionen von Pixeln groß werden (z.B. Tabellen basierte Komponenten).

Aus Kompatibilitätsgründen zu älteren Lobster Data Platform / Orchestration-Versionen übernehmen manche Container Elemente die prozentuale Größe ihrer direkt untergeordneten Elemente, was jedoch unter Umständen verwirrende Effekte nach sich ziehen kann.
Dieses Phänomen ist jedoch ab der Version 4.2.0 für neu eingefügte Container automatisch deaktiviert und kann mit der Layout-Option "Prozentgröße von Kindern erben" aktiviert/deaktiviert werden.

Aufbau von Layouts

Für den Aufbau eines sauber aufgeteilten Formulars, bietet der Formulardesigner verschiedene Layout-Elemente wie Tabs, aufklappbare Container, Spalten- und Zeilenlayouts.
Die grundlegende Aufteilung der Maske sowie die Orientierung der visuellen Elemente geschieht hauptsächlich über die sogenannten Spalten- und Zeilenlayout Container, welche nachfolgend näher beschrieben werden.

Zeilenlayout

Ein Zeilenlayout Container richtet seine Kindelemente untereinander (in Zeilen) aus.

images/download/attachments/106962728/rowLayout-version-1-modificationdate-1659094137795-api-v2.png

Spaltenlayout

Ein Spaltenlayout Container richtet seine Kindelemente nebeneinander (in Spalten) aus.

images/download/attachments/106962728/columnLayout-version-1-modificationdate-1659094137752-api-v2.png

Beispielaufteilung durch Verschachteln von Zeilen- und Spaltenlayouts

Der unten dargestellte Aufbau zeigt das Layout einer klassischen Applikation, welche in einen Kopf, Körper und Fußbereich unterteilt ist.

Elementhierarchie

Layout mit Größeneinstellungen

images/download/attachments/106962728/image2019-5-10_11-51-30-version-1-modificationdate-1659094137771-api-v2.png

images/download/attachments/106962728/siteLayout-version-1-modificationdate-1659094137798-api-v2.png

Wohingegen der Kopf- und Fußbereich jeweils fixe Höhen haben, nimmt der Körperbereich (BODY) den restlichen Platz in der Höhe ein.
Wird der Platz für das Formular zu niedrig, gewährleistet die Mindesthöhe des Körperbereichs, dass dieser mindestens 400 Pixel hoch sein muss. Dies verhindert ein zu weites Zusammenschieben des Inhalts.
Gleiches gilt auch für den Seitenbereich (SIDE) und den Inhalt (CONTENT), welche jeweils Mindestbreiten von 200 und 300 Pixeln definieren.

Überlaufen von Inhalt

Zur Gestaltung eines flexiblen Layouts gehört auch das Festlegen wie sich Container verhalten, wenn deren Inhalt überläuft. Es wird dann von einem Überlauf gesprochen, wenn der Inhalt eines Containers größer wird als seine eigene definierte Größe.

Es gibt drei verschiedene Möglichkeiten, wie ein Container mit überlaufendem Inhalt verfährt. Diese sind über die Eigenschaftenkategorie "Element Container" auswählbar.

images/download/attachments/106962728/image2019-5-10_13-21-8-version-1-modificationdate-1659094137774-api-v2.png

  1. Scrollen Der Überlaufende Inhalt kann gescrollt werden (auf Desktop-PC Versionen der Browser werden automatisch Scrollbalken eingeblendet)

    images/download/attachments/106962728/image2019-5-10_13-29-8-version-1-modificationdate-1659094137777-api-v2.png



  2. Sichtbar Der Überlaufende Inhalt bleibt sichtbar, überlappt allerdings nachstehende Elemente (siehe Button unten)

    images/download/attachments/106962728/image2019-5-10_13-30-0-version-1-modificationdate-1659094137780-api-v2.png



  3. Versteckt Der Überlaufende Inhalt wird einfach abgeschnitten

    images/download/attachments/106962728/image2019-5-10_13-30-25-version-1-modificationdate-1659094137783-api-v2.png



Hinweis: Ein Container kann nur überlaufen, wenn er eine definierte Größe hat (nicht "auto")