xw-browse: Grid-Control für XML-Daten (Javascript)
xw-browse ist ein leichtgewichtiges (ca. 26KB) List-Control (read-only Grid-Control) zur Anzeige
tabellarischer Listen; es erlaubt (Mehrfach-) Auswahl von Zeilen, Sortierung, Formatierung und mehr.
xw-browse ist insbesondere für XML-getriebene "single-page applications" geeignet, kann aber auch
in konventionelle Websites (wie diese) leicht integriert werden.
Die xw-browse dient der performanten tabellarischen Darstellung von Daten im XML-Format; sie verfügt
über ein spezielles API und benötigt aus diesem Grund zur Initialisierung ein kleines "Hilfs"-Plugin.
Zur Laufzeit werden die Bibliotheken jQuery und jQuery UI vorausgesetzt. jquery UI-Themes werden im Header und Footer unterstützt,
das Aussehen kann weitgehend über CSS gesteuert werden.
Wird xw-browse so initialisiert, dass die Browse und deren Spalten nicht in der Größe
verändert und die Spalten nicht verschoben werden können, kann auf jQuery UI verzichtet werden.
Buttons können rechts oder oben platziert werden. Die CSS-Klassen "sel1" und "sel1n" steuern
die Anklickbarkeit (enabled-Status) der Buttons in Abhängigkeit von der Selektion:
Klasse "sel1": Nur aktiv, wenn genau eine Zeile selektiert ist. Klasse "sel1n": Nur aktiv, wenn mindestens eine Zeile selektiert ist.
Features und Einschränkungen
Direkte Übergabe der XML-Daten zur Spaltendefinition und zum Befüllen der Browse
Sortierbar nach Spalten (ein- oder zweistufig, für Letzteres kann durch Klick
auf den ersten Sortierpfeil die Spalte für die Sortierung fixiert werden).
Datentypen für Spalten sichern die korrekte Sortierung und Formatierung.
Durch Übergabe einer Formatierungsfunktion können Zelleninhalte nahezu beliebig
gestaltet werden.
Optional: Spaltenreihenfolge kann per Drag and Drop geändert werden, Spalten oder
die gesamte Browse können größenveränderlich gestaltet werden.
Vollständige Kontrolle über die Darstellung per CSS
(Header und Footer können per jQuery UI-Themes beeinflusst werden). Auch Spaltenbreiten
werden per CSS definiert.
Navigation und Markieren auch weitgehend mit Tastatur möglich
(Cursortasten und Navigationstasten, auch mit Strg und Shift, Strg-A, etc.).
(jQuery UI-) Buttons können verbunden werden, um ihre Aktivität (Anklickbarkeit) vom Selektionsstatus abhängig
zu machen (je nach CSS-Klasse am Button: immer aktiv, nur bei genau einer selektierten Zeile aktiv
oder dann aktiv, wenn mindestens eine Zeile selektiert ist; der Aktivitätsstatus kann auch
völlig frei pro Button programmiert werden, indem ihm eine Funktion mitgegeben wird, die aufgrund
des Inhalts der selektierten Zeile(n) über die Anklickbarkeit entscheiden kann;
der erste Button ist der "Standard-Button", der – sofern aktiv – ausgelöst wird, wenn
in der Browse die return-Taste gedrückt oder eine Zeile doppelgeklickt wird).
xw-browse ist schnell, da nur der jeweils sichtbare Teil der XML-Daten tatsächlich
aufbereitet wird ("virtual scrolling"). Allerdings nimmt die
Geschwindigkeit – insbesondere bei aktiver Sortierung – bei sehr großen
Datenmengen ab.
xw-browse unterstützt ein minimalistisches Konzept von Business Entities: werden der xw-browse bei der Initialisierung ein Datentyp (z.B. "kunde")
mitgegeben und eine oder mehrere Spalten in den Metainformationen als "key" definiert,
werden unsere XML-Events "entities-deleted" und "entity-updated" für enthaltene passende
Datensätze ausgewertet (die xw-browse löscht selbständig Zeilen oder aktualisiert deren Inhalt).
Einschränkung: Die Zeilenhöhe kann zwar über CSS festgelegt werden, jedoch müssen alle
Zeilen dieselbe Höhe aufweisen.
Ein Editieren der Zelleninhalte ist nicht möglich, die xw-browse ist ein read-only Grid-Control.