• Gerendert in HTML

  • Gerendert in PDF

  • Gerendert in CSV

Diese DSL wird verwendet, um Informationen mit eingeschränkten Bearbeitungsmöglichkeiten anzuzeigen. Felder können gestaltet werden.

Codebeispiel

UiShowSpecifier buildUserShow(User u) {
    new UiShowSpecifier().ui {
        field 'Picture',                                (1)
            attachmentUiService.previewFull(u.mainPicture?.id)
        fieldLabeled u.username_                        (2)
        fieldLabeled u.firstName_
        fieldLabeled u.lastName_
        fieldLabeled u.businessUnit_
        fieldLabeled u.subsidiary_
        fieldLabeled u.mail_
        fieldLabeled u.manager_
    }
}
1 Explizite Beschriftung und Wert (hier HTML-Code)
2 Die Beschriftung wird aus dem Feld abgeleitet; beachten Sie den Unterstrich am Ende des Feldnamens
screenshot dsl show
Figure 1. Entsprechende Darstellung in einem modalen Fenster

Abschnitte, Aktionen und Stile

new UiShowSpecifier().ui {
    section "Partner", {
        showAction ActionIcon.SHOW * IconStyle.SCALE_DOWN,  (1)
            this.&showContact as MC, partner.id
        fieldLabeled Style.EMPHASIS + Style.BLUE,           (2)
            partner.name_
        fieldLabeled partner.branding_
    }
}
1 Das Icon wird am Ende des nächsten Feldwertes angezeigt; es muss verkleinert werden, damit es neben das Feld passt
2 Stile stehen an erster Stelle und können mit + kombiniert werden

Rasterlayout (Grid Layout)

new UiShowSpecifier().ui ShowLayout.GRID, {                      (1)
    fieldLabeled item.ref_
    fieldLabeled item.name_
    fieldLabeled item.itemStatus_
    fieldLabeled item.gtin_
    fieldLabeled Style.SPAN_TWO, item.labeling_                  (2)
    fieldLabeled Style.BOLD + Style.SPAN_FULL, item.description_ (3)
}
1 ShowLayout.GRID ordnet die Felder in einem sich automatisch anpassenden Raster an, anstatt vertikal in einer Spalte. Der Standardwert ist ShowLayout.LIST.
2 Jedes Feld nimmt standardmäßig eine Rasterzelle ein. Mit Style.SPAN_TWO / Style.SPAN_THREE kann sich ein Feld über mehrere Spalten erstrecken.
3 Style.SPAN_FULL lässt ein Feld über die gesamte Zeile reichen.

Das Raster passt automatisch so viele Spalten an, wie es die Containerbreite zulässt, wobei jede Spalte mindestens 220px breit ist (das Minimum kann im eigenen CSS über die Klasse taackShowGrid überschrieben werden).

screenshot dsl show grid

HTML-Inhalt

Einige Elemente geben ihren String-Wert unverändert aus, andere bereinigen ihn (nur grundlegende Formatierungs-Tags und Links bleiben erhalten, <img>, <div> oder Skripte werden entfernt):

Element HTML

fieldLabeled field_, fieldUnlabeled field_

Bereinigt

field style, html (ohne Beschriftung)

Bereinigt

field label, html

Unverändert ausgegeben

field html (ein Argument)

Unverändert ausgegeben

inlineHtml html, cssClass

Unverändert ausgegeben, in einem div mit der angegebenen CSS-Klasse

new UiShowSpecifier().ui {
    field 'Picture', attachmentUiService.previewFull(u.mainPicture?.id) (1)
    field Style.BOLD, '<b>Summary</b><img src="...">'                   (2)
    fieldLabeled u.username_                                            (3)
}
1 Beschriftetes Feld: Das Bild-HTML wird unverändert angezeigt
2 Ohne Beschriftung: bereinigt, der fettgedruckte Text bleibt erhalten, das <img>-Tag wird entfernt
3 Wert eines Domänenfeldes: bereinigt
Unverändert ausgegebene Elemente werden nicht maskiert: Übergeben Sie ihnen nur von der Anwendung erzeugtes HTML, niemals von Benutzern eingegebene Daten.

DSL-Elemente

  • section: beschriftete Gruppe von Feldern

  • fieldLabeled: Feldwert mit einer aus dem Feld abgeleiteten Beschriftung (i18n)

  • fieldUnlabeled: Feldwert ohne Beschriftung

  • field: Feld mit expliziter Beschriftung (field 'Print Date', new Date().toString()) oder HTML-Code (field Style.ALIGN_CENTER, '<h1>Title</h1>')

  • inlineHtml: roher HTML-Code mit einer optionalen CSS-Klasse

  • showAction: Icon oder Link zum Aufrufen einer Aktion, angezeigt am Ende des nächsten Feldes

DSL-Symbolhierarchie

Diagram
Figure 2. Symbolhierarchiediagramm für Show DSL