Context Preserving Visual Links - Dokumentation

Spitaler Franz

0226436

Einleitung

Ich habe ein Programm implementiert, welches 'Context Preserving Visual Links' berechnet und diese verwendet, um mehrere Highlight Bereiche auf dem Bildschirm zu verbinden. Diese 'CPVL' sollen dabei die visuelle Darstellung auf dem Bildschirm so wenig, wie moeglich stoeren.

In meinem Programm gibt es mehrere verschiedenen Visualisierungen einer ausgewaehlten Festplatte

Umsetzung

Programmiersprache

Als Programmiersprache wurde C# verwendet, da es sehr komfortable Funktionen bereitstellt (im Zusammenspiel mit Visual Studio 2012 Ultimate).

UI - Framework

Zur Darstellung des User-Interfaces verwendet ich das WPF - Framework. Es bietet alle Moeglichkeiten und laesst sich leicht erweitern und z.B. ein neues Control implementieren (siehe Treemap).

Context Preserving Visual Links

Zur Berechnung der CPVL und dem Zeichnen der Highlight und Links wurde Cudafy verwendet. Dies ist ein CUDA - Wrapper fuer .Net und sehr komfortabel zu Verwenden. Man kann fast ganz normale Funktionen schreiben (GPU-Kernels), die dann von einem Translator von C# in C uebersetzt wird und man so alle Vorteile von VS verwenden (wie z.B. Intellisense). Cudafy ist auch die einzige externe Bibliothek, die ich verwendete.

Bedienung

Start

Wenn das Programm gestartet wurde, muss ueber das Menue eine Festplatte ausgewaehlt werden, damit diese nach Dateien und Ordnern durchsucht wird.

Wenn dies geschieht, wird (sofern moeglich) gleich das Userinterface upgedatet. Dies geschieht aber nicht immer, daher gibt es eine Statusleiste, in welcher die aktuellen Staende des Durchsuchens wiedergibt.

Nachdem das Scannen abgeschlossen weden alle Visualisierungen aktualisiert und die komplette Treemap gezeichnet.

Auswahl von Dateien und Ordnern

Sofern ein Ordner, eine Datei, eine Dateierweiterung oder ein Teil der Treemap ausgewaehlt wird, werden die entsprechenden Bereiche der einzelnen Visualisierungen selektiert und 'gehighlighted'. Dies sind dann die Highlights, die mit den Visual Links verbunden werden. Im Programm sind standardmaessig die 'Simple Links' aktiviert. Diese sind einfach gerade Verbindungslinien zwischen den Highlights. Die anderen sind die CPVL.

Ein moegliches Resultat ist in Folge zu sehen

Man kann schon die simplen Links erkennen, die mit der inversen Hintergrundfarbe dargestellt werden.

Mit einem Doppelklick auf ein Elements der Treemap oder eine Datei wird versucht diese Datei oder der Ordner zu oeffnen.

Bei einem Doppelklick auf ein Elements der Ordnerstruktur wird in der Treemap nur dieser Ordner angezeigt. D.h. z.B. nur der Ornder 'Visualisierung 2 LU' mit allen Unterordnern und Dateien. Dies sieht dann wie folgt aus.

Einstellungen der Treemap

Die Einstellungen zu der Treemap findet man ueber den Menuepunkt 'Treemap'. Es gibt drei verschiedene Methoden der Treemap - Visualisierung. Dies sind die Moeglichkeiten

Die 'Slice and Dice' - Variante kann man oben in dem Screenshot sehen. Die anderen beiden Verwenden andere Methoden zur Unterteilung der Flaeche der Treemap. Squarified versucht moeglichts quadratische Elemente zu generieren, 'Mixed' schaltet von einer Hierarchieebene der Ordnerstruktur zu naechsten zwischen den beiden Varianten hin und her.

Um einen besseren Eindrucke von der Ordner - Struktur auch in der Treemap zu bekommen, ist es auch moeglich, diese 'stacked' darstellen zu lassen. Eine moegliche Ausgabe dabei ist in folgendem Screenshot zu sehen (squarified)-

Einstellungen der Visual Links

Man kann auch fuer die Visual Links ein paar Einstellungen treffen. Dies geschieht ueber den Menuepunkt 'Visual Links'.

Zuerst steht die Auswahl zwischen den simplen Visual Links und den CPVL zur Verfuegung. Wenn diese aktiviert werden sehen die Visual Links aus dem vorherigen Screenshot wie folgend aus (mit Zoom auf den Ordner). Dabei werden die geringsten Distanzen zu einem gemeinsamen Mittelpunkt berechnet und diese Wege dann gezeichnet (wieder mit inverser Hintergrundfarbe).

Weiters kann man in dem Menuepunkt einstellen, wie sehr die CPVL von der PenaltyMap abhaengig sein sollen/bzw. legen deren Wichtung fest, sowie die Wichtung der Vermeidung von Highlights selbst. Im naechsten Screenshot ist der Effekt bei hoeheren Werten zu sehen. Dabei faellt auf, dass bei entsprechend hohen Werten sogar der Weg aussen herum 'kuerzere' Wege bedeutet, als 'durch' die Treemap.

Farben aendern

Wenn einem die Farben nicht zusagen (diese werden zufaellig bestimmt), kann man mit einem Click auf 'New Colors' neue Farben fuer die einzelnen Dateitypen generieren.

Darstellung der PenaltyMap

Zu guter Letzt hat man noch die Moeglichkeit, sich die PenaltyMap anzeigen zu lassen. Diese wird dann verkleinert ueber dem rechten unteren Teil des Programmes angezeigt. Sie aktualisiert sich immer automatisch, wenn sich Aenderungen an den Visualisierungen ergeben und eine Neuberechnung erforderlich machen.

Verschieben der Visualisierungen

Jede der Visualisierungen ist in einem Tab-Control untergebracht. Damit is es moeglich, die einzelnen Visualisierungen untereinander zu tauschen. Dies geschieht mittels 'drag and drop' der Tabs selbst. Wenn man z.B. den Tab der Treemap auf den Tab der Dateien zieht, aendern diese Tabs ihre Positionen und die Visualisierungen werden aktualisiert. Dies ist hier zu sehen.