maongo.core.toolkit.StackWidget extends Widget
Das StackWidget dient dazu, aus einer Sammlung von CardWidgets genau eines zu einem gegebenen Zeitpunkt darzustellen.
Beispiel für einen einfachen Stack:
<presentation>
<widget type="Stack">
<property name="Index" value="0" />
<widget type="Card">
<property name="Texture" value="bild1.png" />
</widget>
<widget type="Card">
<property name="Texture" value="bild2.png" />
</widget>
</widget>
<widget type="Button">
<action trigger="button-clicked">
<set property="Index" value="1" /> <!-- set-Syntax??? -->
</action>
</widget>
</presentation>
Dieser Stack enthält zwei statische Karten, die unterschiedliche Bilder anzeigen werden. Das Setzen der Index-Property des Stacks auf 0 bewirkt, dass bei Start der Presentation das erste definierte CardWidget angezeigt wird. Klick auf den Button bewirkt, dass die zweite Karte angezeigt wird.
Als Bestandteile des StackWidgets kommen nur CardWidgets in Frage. CardWidgets sind entweder direkt aktivierbar (StaticCard == true, Default-Modus), oder sie werden erst durch einlaufende Daten gefüllt und anzeigbar (StaticCard == false).
Das StackWidget bietet die Möglichkeit, Karten zu verwalten (DataManager == true, Default-Modus), diese gezielt per Index zu aktivieren und durch diese zu blättern. Daneben ist es auch möglich, den DataManager zu deaktivieren und das Routing direkt zum Anzeigen der Karten zu benutzen (jedes eintreffende Data wird direkt angezeigt).
Ist DataManager == true, so erlaubt die Index-Property, direkt eine Karte anhand der Position in der Liste der Kartenobjekte auszuwählen. Das JavaScript-Interface bietet außerdem Methoden zum Blättern. Die Property Size hält die Gesamtzahl der Karten.
Abbildung für DataManager == true
Der Stack enthält zwei “statische Karten”, die direkt vom DataManager verwaltet werden. Einlaufende Daten (Routing muss auf ein CardWidget erfolgen) werden ebenfalls vom DataManager verwaltet. In diesem Fall würde die Route auf CardWidget 1 zeigen.
Der eingezeichnete Button aktiviert Index 0, also die erste Karte im DataManager des Widgets. Das StackWidget schaltet evtl. sichtbare andere CardWidgets aus und das CardWidget 1 an.
Abbildung für DataManager == false
Routing erfolgt auf Card-Widget 1. Es benachrichtigt den Stack (Ausschalten anderer CardWidgets) und wird automatisch vom Stack selektiert.
Beispiel mit Routing und Datamanager:
ToDo
Beispiel mit Routing, aber ohne Datamanager:
ToDo
StackMode (Symbol)
Schaltet zwischen den “Betriebsmodus” des StackWidgets um. ‘managed’ oder ‘routing’
Default: managed (Das Widget hat eine interne Datenverwaltung und kann auch statische CardWidgets anzeigen.)
Position der aktuell sichtbaren Karte in der internen Kartenliste (r/w). Die erste Karte hat den Index 0. Das Sichtbarschalten einer Karte erfolgt durch Zuweisen eines Integers.
Default: -1 (keine Karte ausgewählt)
Liefert im StackMode == single null, wenn keine Karte angezeigt wird, und 0, wenn eine Karte sichtbar ist.
Wird im StackMode == stack Index nicht gesetzt, so ist keine Karte sichtbar. Wird Index auf null gesetzt, so werden alle Cards unsichtbar geschaltet.
Wird ein negativer Wert zugewiesen, so wird Index auf 0 gesetzt. Wird ein Wert >= getTotalCards() zugewiesen, so wird Index auf getTotalCards() -1 gesetzt.
Note
Sortierung: zurückgestellt
Ich schätze, statische Karten brauchen eine String-Property Sort, und für Data kann man mit SortField angeben, welche Data-Property zum Sortieren genutzt werden soll.
SortType könnte dann noch erlauben, numerisch oder alphanumerisch zu sortieren.
SortField
SortType
Die folgenden Methoden sind nur bei DataManager == true sinnvoll einsetzbar.
Aktiviert das erste Card-Objekt der internen Liste.
Entspricht Index = 0.
showLast() (nur bei DataManager == true)
Enspricht dem Setzen des Index auf den Wert getTotalCards() -1.
Aktiviert das nächste Card-Objekt der internen Liste.
Entspricht dem Hochzählen des Index um eine Position bis getTotalCards() -1.
Aktiviert das vorangehende Card-Objekt der internen Liste.
Entspricht dem Herunterzählen des Index um eine Position bis 0.
Beispiel:
ToDo
maongo.core.toolkit.CardWidget extends Widget
Das CardWidget ist stets Bestandteil eines Stacks.
Es hat besondere Funktionen innerhalb des Stacks:
Der Weg eines Data in den Stack beginnt auf dem CardWidget, das StackWidget hat keine besonderen Routingfunktionen. Das CardWidget gibt das Data zurück an den Stack mit der Information, welches CardWidget zuständig ist. Diese Information wird zusammen mit den Data an das DataManagement übergeben (wenn auf dem Stack DataManager == true ist, oder der Stack nutzt sie direkt, um das CardWidget zu aktivieren (wenn DataManager == false).
StaticCard (Boolean)
Zeige diese Card unabhängig von einlaufenden Data an.
Default: true
Schalten Sie StaticCard eines CardWidgets auf false, wenn Sie das entsprechende Widget nur zur Darstellung von einlaufenden Data nutzen wollen.
n/a
n/a