Lade...
 

MorphIT Slots

MorphIT Slots

Aufgrund der Tatsache, dass die Web-Oberfläche grundsätzlich anders arbeitet und mehr Möglichkeiten bietet als die native Oberfläche, gibt es well-known Widget-Slots, die zur Steuerung des Verhaltens des Widgets in MorphIT verwendet werden. Nativ haben diese Slots keine besondere Bedeutung, daher werden die meisten Slots in einer Richtung verwendet (ClassiX Core (Nativ) -> MorphIT). Bidirektionale Slots sind jedoch in den Anwendungsfällen nötig, wo der User den Slotwert in MorphIT ändern kann und ClassiX den neuen Wert mitbekommen muss.

Grundsätzlich werden alle Slots mit dem Specifier morphIt, die an einem Widget gesetzt sind, auch nach MorphIT hin exportiert. Folgende Slots haben aktuell eine besondere Bedeutung. Bidirektionale Slots sind in der folgenden Tabelle hervorgehoben.

Widget-Slots
Name Widget-Typ Beschreibung
morphIt.description

String,

Text, 

MLText,

ObjectListView

Hiermit kann der Typ des Widgets für MorphIT überschrieben werden.

Aktuell sind die folgenden Konvertierungen unterstützt:

  1. String zu Date : Hierfür ist der Wert "date" zu wählen.
  2. Text/MLText zu Rich Text Editor: Hierfür ist der Wert "richtext" zu wählen.
  3. ObjectListView zu PivotTable: Hierfür ist der Wert "pivot" zu wählen.

Beispiel:

"date" Widget Put(morphIt.description)
morphIt.drawingID

Prompts, Toplevel-Gruppe, Buttons, TreeList, ObjectListView

Über diesen Slot können MorphIT bestimmte Eigenschaften der Darstellung mitgeteilt werden. Diese können als kommaseparierte Liste aufgeführt werden.

Wert Widget Darstellung
bold Prompt Text wird fett dargestellt.
call_to_action Button Button wird in einer besonderen Farbe hervorgehoben. (Für eine Definition von Call to action siehe bspw. Wikipedia. Weitere Referenzen sind hier und hier zu finden.)
stretch_bitmap Button 4.13.1 Hiermit wird das Button-Bitmap auf die Breite und Höhe des Buttons gestretched. Dabei wird das Seitenverhältnis des Bildes ignoriert.
Falls der Button kein Bitmap enthält, wird diese Angabe ignoriert.
keep_ratio Button 4.13.1 Falls diese Eigenschaft zusammen mit stretch_bitmap angegeben wurde, dann wird das Button-Bitmap unter Beibehaltung des Seitenverhältnisses des Bildes auf die Größe des Buttons skaliert. Dabei können Ränder entstehen.
center Gruppe Gruppe wird zentriert statt wie normalerweise linksbündig dargestellt.
non_foldable TreeList Knoten einer TreeList können nicht mehr auf- und zugeklappt werden.
non_selectable

ObjectListView,
TreeList

Sinnvoll für Tabellen, die kein GetObjectsSelected abfragen. Die normalerweise vorhandenen Check- oder Radioboxen für die Selektion werden nicht dargestellt.
no_menu ObjectListView Button für das Menü einer ObjectListView wird nicht angezeigt (und somit auch kein Menü). Dies berührt die Spaltenmenüs nicht.
no_paging ObjectListView Paging-Control-Area in der ObjectListView wird nicht angezeigt, unabhängig vom Flag NO_COLUMNHEADER, ansonsten entscheidet das Flag NO_COLUMNHEADER über das Anzeigen von der Paging-Control-Area.
border Gruppe Wenn gesetzt, bekommt die Gruppe einen Rahmen.
full_width ObjectListView Damit wird die freie Breite auf diejenigen Spalten verteilt, die keine festgelegte Breite haben. Dieses Verhalten schaltet sich automatisch ab, wenn alle Spalten eine feste Breite (entweder von AppsWH-Entwickler festgelegt oder durch den Endbenutzer) bekommen.
morphIt.externalID Beliebig Eine Liste von Attributen der Form (name=wert;name=wert), die eine besondere Semantik für den statischen Export definiert.
morphIt.format Link Über diesen Slot können dem Widget CSS-Formatierungsanweisungen mitgegeben werden.
morphIt.isHidden Toplevel-Gruppe Falls dieser Wert auf TRUE (!= 0) gesetzt ist, dann ist die Gruppe von Anfang an zugeklappt und kann von dem Benutzer aufgeklappt werden. Normalerweise sind die Gruppen anfangs aufgeklappt und lassen sich zuklappen.
morphIt.masterObject String Hierin kann ein JSON-Array an Strings abgelegt werden, welche dann als Auswahlliste in MorphIT angeführt werden.
morphIt.model Button

Über diesen Slot können MorphIT bestimmte Eigenschaften der Funktionalität eines Widgets mitgeteilt werden. Diese können als kommaseparierte Liste aufgeführt werden.

Wert Widget Darstellung
pass_on_select Button

Wenn ein Button-Widget ein Contextmenü hat, dann wird er automatisch in einen Dropdown-Button umgewandelt. Dies hat zur Folge, dass der linke Mausklick kein SELECT-Event mehr schickt und stattdessen das Contextmenu als Dropdown-Menu anzeigt.

Ist das Flag "pass_on_select" gesetzt, wird dieses Verhalten deaktiviert und das Contextmenu erscheint nur beim Rechtsklicken und das SELECT-Event wird beim Linksklicken wie üblich an ClassiX weitergereicht (engl. pass on).

morphIt.number Menü-Item

Den hierdurch gekennzeichneten Menü-Einträge werden besondere Rollen in MorphIT zugewiesen. Sie werden häufig anders und in einem separaten Bereich dargestellt.

  • "Dropdown" kennzeichnet ein Dropdown-Menü. Für dieses wird nicht der oberste Knoten angezeigt, sondern die Unterknoten sind Optionen eines Dropdowns und wie üblich in Dropdowns wird das aktive Element angezeigt. Es wird weiter angenommen, dass die Unterpunkte des markierten Menüpunkts keine weiteren Unterpunkte haben, dass also keine weitere Verschachtelung vorkommt. So kann man bspw. die Auswahl der aktuellen Sprache realisieren.
  • "Notice" kennzeichnet das Impressum und ähnliche Inhalte. Diese werden normalerweise im Footer verlinkt und sind im regulären Menü nicht sichtbar.
  • "Notice=URL" (4.1.1) kennzeichnet genau wie "Notice" einen Eintrag, der im Footer dargestellt wird, nur dass hieraus ein Link-Eintrag im Footer generiert wird, der die angegebene URL direkt öffnet. Den Link zu öffnen, löst kein SELECT-Event aus.
  • "Link=URL" (4.11.4) arbeitet genauso wie Notice=URL mit dem Unterschied, dass das Menü-Item nicht im Footer landet.
  • "UserIcon" kennzeichnet das Benutzer-Menüs. Der Eintrag wird normalerweise mit einem User-Icon markiert. Es wird erwartet, dass er kein Untermenü hat, sondern nur direkt geklickt werden kann.
morphIt.printPage ObjectListView Hiermit kann die Anzahl der Zeilen pro Seite in einer ObjectListView angegeben und ausgelesen werden. Nur positive Werte und 0 sind erlaubt.
morphIt._jsonString ObjectListView Dieser Slot ermöglicht dem IV-Entwickler, umfangreiche Kofigurationen eines Widgets bidirektional im JSON-Format (als String) festzulegen und die Benutzeränderungen daran in MorphIT abzulesen. Bei der ObjectListView dient dieser Slot zur Festlegung der Konfiguration der zugehörigen Pivot-Tabelle.
morphIt.fixTime Eingabe-Widgets

Überschreibt die Server-Konfiguration input_delay für einzelne Widgets. input_delay bestimmt die Zeit in Millisekunden, die nach dem letzten Tastendrück (Eingabe) verstreichen muss, bevor ein ALTERED-Event automatisch ausgelöst wird, auch wenn das Feld noch nicht verlassen ist.

Ein negativer Wert wird als unendliches Timeout interpretiert.