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.)
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.
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.
  • "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.

InstantView Scriptsprache