Tabelle

Das Tabellen-Objekt Alvine.Package.UI.Dialog.Table(options) erlaubt es Tabellen in die Komponente einzubinden.

// Neue Tabelle erstellen
table = new Alvine.Package.UI.Dialog.Table({'id':'myID'});

Über den Parameter options können folgende Wert definiert werden:

Schlüssel Beschreibung Default Beispiel
id ID der Tabelle myId
class Tabellenklasse table table table-sm
class-responsive Responsive-Feature table-responsive

Das Aussehen der Tabelle kann über verschiedene Kasse gesteuert werden. Die Details sind auf der Bootstrap-Webseite nachzulesen. Einige Klassen verfügbare Klassen sind: table-inverse, table-striped, table-bordered, table-hover, table-sm. Das folgende Beispiel verwendet die Klassen: table table-bordered table-inverse

Tabelle

Die einzelnen Zeilen und Zellen werden über Methoden zur Tabelle hinzugefügt.

table = new Alvine.Package.UI.Dialog.Table(undefined, {'class':'table table-bordered table-inverse'});
row1 = new Alvine.Package.UI.Dialog.TableRow();

// Inhalte können direkt als Zeichenkette eingeben werden
row1.addCell('#1');

// Oder per TableCell-Objekt
row1.addCell(new Alvine.Package.UI.Dialog.TableCell('Mark'));
row1.addCell(new Alvine.Package.UI.Dialog.TableCell('Otto'));

// Oder als

// row zur Tabelle hinzufügen
table.addRow(row1);

Tabellen lassen sich auch über Arrays oder Collections initialisieren. Beim Aufruf Table.initFrom(data, firstRowIsHeader, lastRowIsFooter) wird der bisherige Inhalt der Tabelle gelöscht und die Daten aus dem Array oder der Collection genommen. Wird im Parameter firstRowIsHeader true übergeben, so wird die erste Zeile aus dem Dataset als Überschrift genommen. Das gleiche Verhalten ist für den footer mit dem Flag lastRowIsFooter möglich.

table = new Alvine.Package.UI.Dialog.Table();
table.initFrom([
    ['#', 'First Name', 'Last Name', 'Username'],
    ['1', 'Mark', 'Otto', '@mdo'],
    ['2', 'Jacob', 'Thornton', '@fat'],
    ['3', 'Larry', 'the Bird', '@twitter']
], true, false); // Header + Daten

Tabelle

Will man manuell einzelne Zeilen hinzufügen kann man Table.addRow(row) verwenden. row kann dabei vom Typ TableRow, TableCell oder String sein. Der HEader und Footer wird über Table.setHeader(header) und Table.setFooter(footer) bearbeitet.

Über die Methode Table.clearRows() können alle Zeilen gelöscht werden. Ein definierter Header und Footer bleiben davon uberührt. Diese können mit der Methode Table.clearHeader() und Table.clearFooter() gelöscht werden.

Einzelne Zeilen lassen sich per Table.updateRow(index, data) updaten.

Vorgefertigte Eventhandler

Über vorgefertigte EventHandler können bestimmte Funktionen impementiert werden.

Zeilenwähler

Dieser Eventhandler erlaubt es Zeilen auszuwählen

// Initalisierung eines Tabellen-Selectors
view.on('click', 'table.table tr', Alvine.Package.UI.Dialog.Table.eventHandlerSelectTable);

Die selektierten Tabellen-Zeilen können über jQuery('tr.table-active') ausgelesen werden. Ausserdem können die Änderungen über folgende Events abonniert werden. Als Parameter wird die Tabelle und die gewählten TR-Elemente übergeben.

  • selectallrows.ALVINE.TABLE (es wurden alle Zeilen ausgwählt)
  • deselectallrows.ALVINE.TABLE (die Auswahl wurde für alle Zeilen aufgehoben)
  • deselectrow.ALVINE.TABLE (die Auswahl einer Zeile wurden aufgehoben)
  • selectrow.ALVINE.TABLE (es wurden eine Zeile ausgewälht)

getInstanceFromDataset

{
    "name": "Alvine.Package.UI.Dialog.Table",
    "dataset": {
        "options": {},
        "header":
            {
                "name": "Alvine.Package.UI.Dialog.TableRow",
                "dataset": {
                    "options": {},
                    "cells": [
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "H1",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "H2",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "H3",
                                "options": {}
                            }
                        }
                    ]
                }
            },
        "rows": [
            {
                "name": "Alvine.Package.UI.Dialog.TableRow",
                "dataset": {
                    "options": {},
                    "cells": [
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "ABS",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "123",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "uuu",
                                "options": {}
                            }
                        }
                    ]
                }
            },
            {
                "name": "Alvine.Package.UI.Dialog.TableRow",
                "dataset": {
                    "options": {},
                    "cells": [
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "ABS",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "123",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "uuu",
                                "options": {}
                            }
                        }
                    ]
                }
            }
        ],
        "footer":
            {
                "name": "Alvine.Package.UI.Dialog.TableRow",
                "dataset": {
                    "options": {},
                    "cells": [
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "F1",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "F2",
                                "options": {}
                            }
                        },
                        {
                            "name": "Alvine.Package.UI.Dialog.TableCell",
                            "dataset": {
                                "content": "F3",
                                "options": {}
                            }
                        }
                    ]
                }
            },
    }
}

Tabellen-Zeile (TableRow)

Eine Tabellen-Zeile dient als Container für die einzelnen Inhalte und kann über TableRow(options) erstellt werden.

row = new TableRow();
row.addCell(new TableCell('hallo Welt'));
Schlüssel Beschreibung Default Beispiel
class Tabellenklasse undefined

Mittels TableRow.clear() werden alle Spalten entfernt. Mit TableRow.getCells() erhält man eine Collection mit allen Spalten. TableRow.addCell(cell) fügt eine Spalte hinzu.

Tabellen-Spalte (TableCell)

Eine Tabellen-Zeile dient als Container für die einzelnen Inhalte und kann über TableCell(content, options) erstellt werden.

col = new TableCell('hallo Welt');
Schlüssel Beschreibung Default Beispiel
class Tabellenklasse undefined