Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
176 Kapitel 10 Implementierung<br />
das Diagramm von neuem erstellt. Bei einem globalen DrillDown bzw. RollUp wird das<br />
ausgewählte Level daher durch sein jeweiliges Kind-Element bzw. durch sein Parent-<br />
Element ersetzt. Dieses Vorgehen muss für den lokalen DrillDown variiert werden,<br />
da nur ein Ausschnitt des nächsttieferen Levels angezeigt werden soll. Zu diesem<br />
Zweck wurde die Online Analytical Processing-Abstraktionsschicht um die Klasse<br />
Partiallevel erweitert. Sie erbt alle Eigenschaften eines Levels <strong>und</strong> kann folglich<br />
ebenso verwendet werden wie ein Level. Die Data-Eigenschaft wird jedoch leer belassen;<br />
stattdessen werden der Nodes-Eigenschaft des PartialLevels die ChildNodes der<br />
ausgewählten Nodes zugewiesen. Das ausgewählte Level wird in diesem Fall also durch<br />
solch ein PartialLevel-Objekt ersetzt.<br />
10.1.5 DiagramState <strong>und</strong> DiagramStateList<br />
In Abbildung 9.3 sind die für die Zustandsspeicherung benötigten Klassen dargestellt.<br />
Die Klasse DiagramState stellt eine Datenstruktur zur Verfügung, die es ermöglicht,<br />
einen Diagrammzustand zu speichern. Wie aus Abbildung 9.3 hervorgeht, enthält<br />
sie dazu mehrere Properties. Das Dictionary Axis enthält die Zuweisung von<br />
HierarchicalOLAPObjects zu den Achsen bzw. Drop-Zonen im Diagramm. Um einen<br />
kompletten Diagrammzustand wiederherstellen zu können, speichern die Properties<br />
ScaleProperty <strong>und</strong> TranslateProperty die Skalierungs- <strong>und</strong> Verschiebungsfaktoren<br />
des gespeicherten Diagramms. Weiterhin wird mit dem Property Thumbnail ein<br />
Screenshot zur Verfügung gestellt, sodass dass das Auffinden eines gewünschten<br />
Zustandes in der Liste von Zuständen erleichtert wird.<br />
Die Liste der Zustände wird im Diagramm mit Hilfe des neuen Properties Diagram-<br />
StatesProperty gespeichert. Durch die Methode AddState wird dieser Liste der<br />
aktuelle Diagrammzustand hinzugefügt, wobei die Methode durch den Diagramm-<br />
Menüpunkt Save aufgerufen wird. RemoveState <strong>und</strong> RemoveStateAt können genutzt<br />
werden, um Zustände aus der Liste zu entfernen, wobei der Unterschied der beiden<br />
Methoden darin besteht, dass RemoveState als Parameter einen DiagramState<br />
erhält <strong>und</strong> diesen aus der Liste entfernt, <strong>und</strong> RemoveStateAt ein int übergeben<br />
wird, der den Listen-Index des zu löschenden Zustandes angibt. Mit den Methoden<br />
SetCurrentDiagramToState <strong>und</strong> SetCurrentDiagramToStateAt kann der aktuelle<br />
Zustand eines Diagramms auf einen zuvor gespeicherten Zustand gesetzt werden.<br />
Die Klasse DiagramStateList stellt die Liste der gespeicherten Zustände visuell dar.<br />
Wird im Diagramm-Menü Load ausgewählt, legt sich eine Ebene über das Diagramm,<br />
in der die Screenshots der gespeicherten Zustände zur Auswahl dargestellt werden.<br />
Per Multitouch kann nun ein Zustand ausgewählt werden. Im Diagramm wird die<br />
Methode SetCurrentDiagramToState mit dem entsprechenden Diagrammzustand als<br />
Parameter aufgerufen. Für den Fall, dass viele Diagrammzustände gespeichert wurden,<br />
ist die DiagramStateList per Multitouch verschiebbar.