Table Of Contents

Previous topic

5.6. TextWidget

Next topic

5.9. LineWidget

This Page

5.7. StackWidget

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.

../_images/stack1.png

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.

../_images/stack2.png

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

5.7.1. Properties

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

Index (Integer)

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.

Size (Integer, read-only)
Liefert die Anzahl der Kartenobjekte. 0, wenn keine Kartenobjekte vorhanden sind oder wenn DataManager == false.
SelectedCardWidget (Widget)
Liefert das aktuell sichtbare CardWidget. Read-only.

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

5.7.2. Methoden

Die folgenden Methoden sind nur bei DataManager == true sinnvoll einsetzbar.

showFirst()

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.
showNext()

Aktiviert das nächste Card-Objekt der internen Liste.

Entspricht dem Hochzählen des Index um eine Position bis getTotalCards() -1.

showPrevious()

Aktiviert das vorangehende Card-Objekt der internen Liste.

Entspricht dem Herunterzählen des Index um eine Position bis 0.

Beispiel:

ToDo

5.7.3. Signals

card-activated
Beim Setzen des Index und bei allen JavaScript-show*()-Funktionen, wenn dadurch eine neue Karte angezeigt wird.
card-deactivated
Beim Setzen des Index und bei allen JavaScript-show*()-Funktionen, wenn dadurch ein CardWdiget deaktiviert (ausgeblendet) wird.

5.8. CardWidget

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

5.8.1. Properties

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.

5.8.2. Methoden

n/a

5.8.3. Signals

n/a