XML » SVG Presenter - Carto:net
XML » SVG Presenter - Carto:net
XML » SVG Presenter - Carto:net
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>XML</strong> <strong>»</strong> <strong>SVG</strong> PRESENTER | STRUKTURIERTE MULTIMEDIA-PRÄSENTATION IM WEB 183<br />
Abb. 6.5.2.1.2: Einblendung des Verlaufsbalkens unter Verwendung von AniObject und AniTracker.<br />
6.5.2.2 Darstellungs-Framework<br />
Da, wie bereits eingangs erwähnt, nahezu sämtliche Ausgabe-Elemente entsprechend der geparsten <strong>XML</strong><br />
Daten erst zur Laufzeit berech<strong>net</strong> und dargestellt werden können, wird zur tatsächlichen Präsentation freilich<br />
noch eine Sammlung grundlegender Funktionen für die korrekte Erzeugung der entsprechenden <strong>SVG</strong>-<br />
Elemente benötigt. Im Rahmen des <strong>XML</strong> <strong>»</strong> <strong>SVG</strong> <strong>Presenter</strong>s wird diese Aufgabe maßgeblich durch die zwei<br />
men, die wiederum auf eine ganze Reihe grafischer<br />
Basic-Funktionen 1 men, die wiederum auf eine ganze Reihe grafischer<br />
Basic-Funktionen zurückgreifen: Da im Normalfall zu Beginn der Bildschirmpräsentation lediglich das so<br />
folder() el<br />
expand()<br />
in<br />
1 Kernfunktionen expand() und collapse()übernom rnom<br />
2<br />
zurückgreifen: Da im Normalfall zu Beginn der Bildschirmpräsentation lediglich das so<br />
genannte root-Item, also die Wurzel des Präsentations-Baumes, via folder() -Funktion direkt dargest dargestel lt<br />
wird [s.Abb.6.5.2.1.2], fällt insbesondere der expand() -Methode die Hauptaufgabe zu, die Daten der bei<br />
Aktivierung jeweils auftretenden Teilbäume (und somit die Kind-Elemente des jeweiligen Knotens) in<br />
Form weiterer Item-Symbole korrekt darzustellen sowie alle unterhalb dargestellten Symbole entsprechend<br />
der y-Koordinate entsprechend „nach unten“ zu verschieben:<br />
Abb. 6.5.2.1.3: „Ausklappen“ eines Items mithilfe der<br />
expand()-Funktion.<br />
Die Beschreibung einzelnen der expand()-Funktion zugrunde liegenden Algorithmen und Methoden<br />
würde an dieser Stelle sicherlich zu weit führen – vereinfachend sei daher lediglich erwähnt, dass wiederum<br />
eine Anzahl „grafischer“ Funktionen die Basis für die Darstellung der verschiedenen sichtbaren Objekte (Icons,<br />
Textfelder, Rahmen etc.) darstellt, welche nun ihrerseits für die Erzeugung entsprechender <strong>SVG</strong>- <strong>SVG</strong>-<br />
Elemente<br />
nen.<br />
3<br />
Die Beschreibung einzelnen der expand()-Funktion zugrunde liegenden Algorithmen und Methoden<br />
würde an dieser Stelle sicherlich zu weit führen – vereinfachend sei daher lediglich erwähnt, dass<br />
eine Anzahl „grafischer“ Funktionen die Basis für die Darstellung der verschiedenen sichtbaren Objekte (Icons,<br />
Textfelder, Rahmen etc.) darstellt, welche nun ihrerseits für die Erzeugung entsprechender<br />
Elemente und deren korrekte Integration in die DOM-Hierarchie des <strong>SVG</strong>-Baumes verantwortlich zeich-<br />
3<br />
und deren korrekte Integration in die DOM-Hierarchie des <strong>SVG</strong>-Baumes verantwortlich zeich-<br />
Die dem gegenüberstehende coll collapse() -Methode, die logischerweise die (rekursive) Funktion des SchlieSchließens 4 apse()<br />
ßens der entsprechenden Teilbäume übernimmt, ist naturgemäß zwar nicht auf die eben angesprochenen<br />
4 der entsprechenden Teilbäume übernimmt, ist naturgemäß zwar nicht auf die eben angesprochenen<br />
1 vgl. hierzu die Skript-Datei des Prototypen: folder, gradient, plus, hLine, vLine… [script.js]<br />
2 Anm: Alternativ hierzu kann bei Fehlen des root-Items auch direkt mit mehreren Items begonnen werden (Direkt-Liste).<br />
3 Hierfür steht im DOM-unterstützten ECMAScript wiederum die createElement-Funktion (bzw. createTextNode bei Textelementen) be-<br />
reit.<br />
4 … oder „zuklappen“ (daher der Name collapse)