Postfuse Eclipse Plugin zum Visualisieren von Graphen Bachelorpraktikum - Review 2 - Design 05.02.2007 22 Gruppe: G2 Gliederung Design Überlegungen Architektur Use-Cases Realisierungen Stand der Dinge Gliederung Design Überlegungen Architektur Use-Cases Realisierungen Stand der Dinge Design Überlegungen Benutzercharakteristik - GUI Der GUI-Benutzer I weiß was ein Graph ist I ist in der Lage Eclipse zu benutzen I ist in der Lage ein Plugin von einer Update Site zu installieren I ist in der Lage eine GUI zu benutzen Design Überlegungen Benutzercharakteristik - API Der API-Benutzer I . . . (wie GUI-Benutzer) I kann Java Programmieren I ist in der Lage ein Eclipse Plugin zu erstellen I weiss wie man auf die APIs von anderern Plugins zugreift Design Überlegungen Standards I Betrifft hauptsächlich Dateiformate I GraphML für Graph-Dateien → XML konform erweitern I Bild Export: SVG, PNG I Plugin-Standards I Update Site Format Design Überlegungen sonstige Anforderungen I QS: Funktionalität I QS: Benutzbarkeit I freie Lizenz (BSD) I ... Gliederung Design Überlegungen Architektur Use-Cases Realisierungen Stand der Dinge Architektur Subsysteme und ihre Aufgaben G222-Feature Example-Feature Prefuse-Plugin Batik-Plugin Postfuse-Plugin API Ext (Postfuse Standalone) Script-Feature BeanShell-Plugin Demo Eclipse Plugin das Postfuse nutzt Groovy-Plugin Architektur Die API Architektur Die API - Filter Architektur Die API des Plugins Architektur Die GUI Architektur Erweiterungspunkte I Andere Skriptsprachen I Eigene Filter (Prädikate) I Umgebungen in denen die Skripts ausgeführt werden I Prefuse Erweiterbarkeit (teilweise) beibehalten I I Layouter Design der Elemente Gliederung Design Überlegungen Architektur Use-Cases Realisierungen Stand der Dinge Use-Cases Realisierungen Graph erstellen und anzeigen API-Benutzer Postfuse-Plugin createGraph() erzeugen RootGraph Graph bearbeiten showGraph RootGraph Use-Cases Realisierungen Knoten & Kanten erstellen API-Benutzer Knoten hinzuf. 1 hinzugef. Knoten 1 Knoten hinzuf. 2 hinzugef. Knoten 2 Kante hinzufügen hinzugef. Kante Graph Node Knoten erzeugen Knoten Knoten erzeugen Knoten Kante erzeugen Kante Edge Use-Cases Realisierungen Skripte Benutzer GView EdgePopupControl Rechtsklick auf Knoten Kontextmenü erzeugen Kontextmenü Kontextmenü zeigen Skript ausführen Skript starten Skript beendet Resultat des Skripts Script Use-Cases Realisierungen Filter API-Benutzer Predicate Prädikat erstellen clearFilter() setFilter(filter) RootGraph Use-Cases Realisierungen Laden / Speichern API-Benutzer RootGraph speichern exportSVG exportPNG Graph laden geladener Graph Use-Cases Realisierungen Knotenfaltung API-Benutzer Node prefuseNode GNodeRenderer ausfalten folded-flag löschen folded-flag lesen folded-flag Gliederung Design Überlegungen Architektur Use-Cases Realisierungen Stand der Dinge Stand der Dinge Was geht bereits / Demo I Export: SVG, PNG I Laden / Speichern GraphML (noch nicht endgültiges Dateiformat) I Anzeigen von Graphen ohne Subgraphen incl. Zoom und Pan I Auf- und Zuklappen von Knoten I Skripte ausführen I Eclipse: Update Site Installation I Eclipse: MultiView mit *.gml Dateiassoziation I ... Stand der Dinge Was geht noch nicht? I Subgraphen (Layout) I HTML in Nodes I MacOSX I ... Stand der Dinge Arbeitszeiten I I 1000 h Zielmarke 390 h Bisher I I I I I I 5% Qualitätssicherung 20% Treffen für Designfragen & Pariprogramming 25% Ausarbeitung des Designs 20% Toolsuche und Installation 30% Implementierung Schwerpunkt auf die Semesterferien gelegt Stand der Dinge Weitere Planungen I Subgraphen Komponenten erfordern große Änderugen (neue Module) I I I Neuer Layouter (Mehrfachkanten, nichtüberlappende Knoten, Subgraphen) Renderer für Subgraphen bessere Eclipse Integration (z.B. Extension-Points) Fragen? I ...