19.01.2015 Aufrufe

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

10.2 Desktop 181<br />

10.2 Desktop<br />

Für die Realisierung des Desktops werden dem MainWindow zwei Canvas hinzugefügt,<br />

welche grafisch übereinander liegen. Eine Canvas dient als Command Layer zur Eingabe<br />

pfadbasierter Gesten, die andere als Container für die Diagramme <strong>und</strong> das Pie-Menü.<br />

Zunächst wird der Command Layer vorgestellt.<br />

10.2.1 Command Layer<br />

Die Befehlsschicht, auch Command Layer genannt, enthält einen DiagramEventTrigger,<br />

der selber unter anderem einen Stroke <strong>und</strong> einen GestureRecognizer enthält. Sobald<br />

die Befehlsschicht berührt wird, wird ein neues Stroke-Objekt erzeugt. Ein Stroke-<br />

Objekt ist ein grafisches Element, welches eine Menge von Punkten enthält. Diese<br />

Punkte sind in ihrer Reihenfolge miteinander verb<strong>und</strong>en. Sobald ein Move-Event<br />

aufgefangen wird, wird die neue Position zum Stroke hinzugefügt. Sobald die<br />

Berührung abgeschlossen ist, also ein TouchUp-Event aufgefangen wird, wird die<br />

letzte Position ebenfalls zum Stroke hinzugefügt <strong>und</strong> letztendlich dieser Stroke<br />

vom GestureRecognizer untersucht. Erkennt der GestureRecognizer ein Viereck,<br />

wird die Action AddDiagramAction ausgeführt. Des Weiteren stehen Methoden<br />

zum Aufrufen der Hilfefunktion <strong>und</strong> zum Schließen des Programms zur Verfügung,<br />

welche mit einer Kreisbewegung bzw. einer Wischgeste durchgeführt aufgerufen<br />

werden. Zusätzlich wird das Stroke-Objekt der Action übergeben. Die Klasse<br />

AddDiagramAction enthält dabei drei Hilfsmethoden, Width, Height <strong>und</strong> Position.<br />

Die Methode Width ermittelt durch den übergebenen Stroke die Breite des Diagramms.<br />

Dafür werden der kleinste <strong>und</strong> der größte X-Wert aus dem Stroke ermittelt. Analog<br />

dazu verfährt die Methode Height, jedoch hier mit den Y-Werten. Um die Breite <strong>und</strong><br />

Höhe zu berechnen wird das Minimum jeweils vom Maximum subtrahiert. Die Methode<br />

Position ermittelt die Position des Diagramms. Hierfür werden jeweils die minimalen<br />

Werte von den X- <strong>und</strong> Y-Werten ermittelt. Nachdem diese Werte berechnet werden,<br />

wird ein neues Diagramm erzeugt, die Größe dieses Diagramms gesetzt <strong>und</strong> mit einer<br />

TranslateTransform positioniert. Da die Diagramme aufeinander liegen können, gibt<br />

es das LastZOrder-Property, welches eine statische Variable ist. Es gibt an, welchen<br />

Z-Index das oben liegende Diagramm hat. Soll ein Diagramm in den Vordergr<strong>und</strong><br />

geholt werden, so wird dieser Index inkrementiert <strong>und</strong> auf das Diagramm wird das<br />

AttachedProperty Canvas.ZIndex mit diesem Wert gesetzt. Ein Diagramm kann<br />

durch Berühren desselben in den Vordergr<strong>und</strong> geholt werden.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!