Suche Lib für Visualisierung von Graphen

looparda

Top Contributor
Ich suche für ein Projekt eine Bibliothek, um einen Dependency Graph darzustellen (ausgelesen aus dem pom.xml eines Maven-Projekts) und verschiedene Visualisierungen anhand von Messungen und Datenaufbereitungen einzublenden. Ich möchte mich nicht selbst mit Zooming, Layout usw. befassen sondern dies der Bibliothek überlassen können.
Ich stell mir einen Graphen vor, der alle Abhängigkeiten enthält und an der Seite eine Liste der Visualisierungen (z.B. #ausgehende Relationen, Liste von Sicherheitslücken, andere Metriken) von denen immer nur eine ausgewählt werden kann. Anschließend kann der Graph durch Zoomen usw. inspiziert werden.

Das einfachste Beispiel ist das Zählen von ausgehenden Relationen jeder Abhängigkeit. Hier möchte ich Abhängigkeiten mit vielen Relationen hervorheben.
Zudem möchte ich an den Nodes Tooltips einblenden und in dessen Text Links (wie <a>) zu anderen Abhängigkeiten erstellen können.
Bibliotheken, die ich bisher angeschaut habe (VisFX, GraphStream) unterstützen meist nur die Darstellung von Nodes und Edges. Verlinkungen, Tooltips, Zusatzinformationen sind in der API und im Datenmodell gar nicht vorgesehen. Außerdem sind die Freiheiten in der Darstellung meist eingeschränkt.

Am liebsten würde ich die JVM nicht verlassen und es mit JavaFX oder Swing umsetzen. Das hat den Vorteil, dass ich keine Client-Server Architektur samt Serialisierungen der anzuzeigenden Daten benötige. Ich fürchte jedoch, dass Javascript Bibliotheken flexibler sind.

Falls jemand schon einmal solch eine Visualisierung gesehen hat oder Erfahrung mit solchen Bibliotheken gemacht hat wäre ich dankbar für Vorschläge.
 

looparda

Top Contributor
FXDiagram hatte ich mir schon angeschaut, aber leider kein einfaches Beispiel gefunden, wie ich es nun verwende. Auch hat mich Xtext, Xtend abgeschreckt. Das ganze Konzept dahinter ist mir nicht klar geworden. Videos und Slides waren leider nicht sehr informativ.

Graph-Editor scheint halt eher zur Entwicklung von Editoren zu sein. Aber vielleicht kann man dessen Flexibilität "missbrauchen".

Zest sieht vielversprechend aus - jedenfalls dieses Beispiel. Leider ist es eclipse-Ecosystem und da würde ich mich nur zu Not einarbeiten wollen.

Ich fürchte bei den Java-Bibliotheken auch immer, dass sie ein Feature in der Darstellung nicht unterstützen und ich dieses Feature dann nicht implementieren kann. Bei JS-Bibliotheken kann man immer noch über den DOM alles erreichen und modifizieren - bzw. sehr einfach.
Beispielsweise möchte ich auch durch Klick auf eine Node alle Kinder oder nur bestimmte Nodes hervorheben.
 

lam_tr

Top Contributor
FXDiagram hatte ich mir schon angeschaut, aber leider kein einfaches Beispiel gefunden, wie ich es nun verwende. Auch hat mich Xtext, Xtend abgeschreckt. Das ganze Konzept dahinter ist mir nicht klar geworden. Videos und Slides waren leider nicht sehr informativ.

Graph-Editor scheint halt eher zur Entwicklung von Editoren zu sein. Aber vielleicht kann man dessen Flexibilität "missbrauchen".

Zest sieht vielversprechend aus - jedenfalls dieses Beispiel. Leider ist es eclipse-Ecosystem und da würde ich mich nur zu Not einarbeiten wollen.

Ich fürchte bei den Java-Bibliotheken auch immer, dass sie ein Feature in der Darstellung nicht unterstützen und ich dieses Feature dann nicht implementieren kann. Bei JS-Bibliotheken kann man immer noch über den DOM alles erreichen und modifizieren - bzw. sehr einfach.
Beispielsweise möchte ich auch durch Klick auf eine Node alle Kinder oder nur bestimmte Nodes hervorheben.

Ja das stimmt. Ich bin gerade noch beim FXDiagramm stöbern auf diese Bibliothek gestoßen, was meinst du dazu https://github.com/eternnoir/graphvizapi
 

looparda

Top Contributor
Visual Library + JUNG sieht interessant aus. Das müsste ich einmal aufsetzen und die API erkunden, ob damit alles möglich ist.

GraphViz ist halt eher für Bilder. Da ich umfangreiche Graphen erwarte muss man Zoomen und Erforschen können.
 

looparda

Top Contributor
Im Repo von Visual Library + JUNG gibt es auch einen Ordner für die Visualisierung eines Dependency Graphen - also quasi das was ich auch machen möchte. Leider enthält es Abhängigkeiten zu org.netbeans.external, die nicht mehr aufgelöst werden können und es handelt sich um eine Netbeans-Integration. Ich denke, dass ich mit der vl-jung-demo gut starten kann. Ich muss nur den Code erstmal aufräumen, und unnötiges rausschmeißen und dann evaluieren, ob die Funktionalitäten so abdeckbar sind. Aber auf den ersten Blick sieht es sehr gut aus.
 

mihe7

Top Contributor
Leider enthält es Abhängigkeiten zu org.netbeans.external, die nicht mehr aufgelöst werden können und es handelt sich um eine Netbeans-Integration.
Es kann sein, dass das einfach Netbeans Module als Wrapper für die betreffenden Jars sind (um ein Jar als Modul für das NetBeans Modulsystem zur Verfügung zu stellen).
 

looparda

Top Contributor
Noch ein paar Notizen, den Code für Netbeans Integration zum Laufen zu bekommen:
Leider kann der Code nicht kompiliert werden, aufgrund der Abhängigkeiten. Ich denke diese Abhängigkeiten wurden mal durch das Repo http://bits.netbeans.org/maven2/ bereitgestellt.
Es geht um die folgenden Abhängigkeiten:
Code:
<dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>maven-dependency-tree-2.0</artifactId>
            <version>2.34</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>maven-artifact-3.0.4</artifactId>
            <version>2.34</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>maven-core-3.0.4</artifactId>
            <version>2.34</version>
            <type>jar</type>
        </dependency>
Ich habe diese auf gut Glück durch Abhängigkeiten ersetzt, die ähnlich heißen, vermutlich das gleiche beeinhalten und auflösbar sind. Offensichtlich ein Akt der Verzweiflung, denn die Version RELEASE110 passt vermutlich nicht zu RELEASE731, auf dem der Rest der Abhängigkeiten basiert.
Code:
       <dependency>
            <groupId>org.netbeans.external</groupId>
            <artifactId>maven-dependency-tree-2.0</artifactId>
            <version>RELEASE110</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-artifact</artifactId>
            <version>3.0.4</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-core</artifactId>
            <version>3.0.4</version>
            <type>jar</type>
        </dependency>
und dem Repo
Code:
<repository>
    <id>netbeans-patched-module-repository</id>
    <url>https://raw.github.com/jeddict/netbeans-module-repository/master</url>
</repository>
umgebaut, sodass der Code kompiliert. Nachdem ich die Integration baue und in Netbeans lade wird nun auch ein Button "JUNG Graph" in der Detailansicht einer Abhängigkeit angezeigt. Wenn ich die View jedoch öffne bekomme ich eine Exception:
Code:
lava.lang.ClassNotFoundException: org.netbeans.modules.xml.xam.dom.AbstractDocumentModel
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at org.netbeans.ProxyClassLoader.loadClass(ProxyClassLoader.java:222)
Caused: java.lang.ClassNotFoundException: org.netbeans.modules.xml.xam.dom.AbstractDocumentModel starting from ModuleCL@3452b95f[com.timboudreau.maven.dependency.graph.fork] with possible defining loaders [ModuleCL@491dc621[org.netbeans.modules.xml.xam]] and declared parents
Außerdem benutzt der Code die maven API mit DependencyNode#getState, (um die Dependencies nach Konflikten, eingebunden, weggelassen zur Zyklusvermeidung usw. zu kategorisieren), welches mit Maven3 nicht kompatibel ist. Solch eine Einteilung ist mit der Maven3 API nicht mehr möglich, sodass ich den ganzen Code eh umschreiben müsste. https://stackoverflow.com/a/1492023/772883
Ich hatte nur gehofft dieses Beispiel zum Laufen zu bekommen, um den Code besser verstehen zu können. Vielleicht muss man auch ein SDK installieren oder diese external JARs ins lokale Maven Repo installieren. Leider habe ich dazu noch nichts gefunden. Falls noch jemand eine Idee dazu hat..
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JavaFX Suche Literatur für JavaFX Einstieg AWT, Swing, JavaFX & SWT 8
P LookAndFeel Suche Buch und Beispielprojekte für gute Designs AWT, Swing, JavaFX & SWT 4
A Swing Suche Listener für beliebige Änderung an GUI Items/Controls AWT, Swing, JavaFX & SWT 8
A LookAndFeel Suche richtige Technologie für eine bestimme Desginvorlage AWT, Swing, JavaFX & SWT 5
N LayoutManager suche LayoutManager für Tabellenstruktur AWT, Swing, JavaFX & SWT 2
slawaweis Suche TagCloud Komponente für Swing AWT, Swing, JavaFX & SWT 10
hdi Swing Suche passende API Klasse(n) für meine Komponente AWT, Swing, JavaFX & SWT 8
Q Suche "Ablaufplan" für Swing-Fensterwechsel? AWT, Swing, JavaFX & SWT 2
G Listener Suche für F1 AWT, Swing, JavaFX & SWT 25
E Suche kostenloses Iconset für Swing (Ocean) AWT, Swing, JavaFX & SWT 4
M Suche Komponente für mehrere 100.000 Zeile Text AWT, Swing, JavaFX & SWT 3
H Suche Quelltext für einen einfachen Animationsthread AWT, Swing, JavaFX & SWT 8
EagleEye suche Tutorial(s) für JTable AWT, Swing, JavaFX & SWT 2
G Suche einen KeyEvent für die Taste "ä" AWT, Swing, JavaFX & SWT 7
M suche geeignetes Fenster zur Anzeige AWT, Swing, JavaFX & SWT 49
-DD Lobby/Spielerliste aktualisieren bei Suche AWT, Swing, JavaFX & SWT 1
L JavaFX Ich suche das passende Textfield Event AWT, Swing, JavaFX & SWT 1
stroggi Swing Suche nach Kurveneditor (UI-Element) AWT, Swing, JavaFX & SWT 1
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
Maks16 JavaFX ominöse Mails in meinem Suche Postfach von Outlook Sharepoint AWT, Swing, JavaFX & SWT 4
L [SUCHE] Tutorial zur grafischen Nutzeroberflächengestaltung AWT, Swing, JavaFX & SWT 6
S Swing Suche Drag & Drop Beispiele AWT, Swing, JavaFX & SWT 1
K Swing Konsolen Programm in GUI - Suche Hilfe bei Konsolenausgabe AWT, Swing, JavaFX & SWT 2
M Suche Javabibliothek zum Zeichnen mathematischer Funktionen AWT, Swing, JavaFX & SWT 11
I Suche in einem Text AWT, Swing, JavaFX & SWT 4
TheWhiteShadow Swing suche passenden LayoutManager AWT, Swing, JavaFX & SWT 8
hdi LookAndFeel Suche: Substance L&F AWT, Swing, JavaFX & SWT 4
G DB-Suche in GUI AWT, Swing, JavaFX & SWT 4
C Live Suche mit TextFeld AWT, Swing, JavaFX & SWT 2
A Swing suche OpenSource Date(Time)Picker Komponente AWT, Swing, JavaFX & SWT 9
A Suche: Eclipse-GUI-Layout AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche noch LaFs AWT, Swing, JavaFX & SWT 7
padde479 Suche eine Komponente (->ToolBar) AWT, Swing, JavaFX & SWT 7
E Swing JTree Filter Suche mit Collapse?! AWT, Swing, JavaFX & SWT 4
B Swing Suche JFileChooser zum Speichern AWT, Swing, JavaFX & SWT 2
hdi SWT Suche passenden LayoutManager AWT, Swing, JavaFX & SWT 5
Nicer LookAndFeel Suche LaFs AWT, Swing, JavaFX & SWT 12
N Suche nach Komponente / LaF AWT, Swing, JavaFX & SWT 21
V [SUCHE]GUI Programmier Tutorial[Netbeans] AWT, Swing, JavaFX & SWT 8
M Suche passende Chart Library LGPL/kommerziell AWT, Swing, JavaFX & SWT 14
E Swing Suche LayoutManager AWT, Swing, JavaFX & SWT 5
hdi Swing Suche nach passendem Layout AWT, Swing, JavaFX & SWT 8
P Suche freien Date und Time Picker AWT, Swing, JavaFX & SWT 3
ModellbahnerTT Suche bessere Methode AWT, Swing, JavaFX & SWT 4
M Suche Java Komponente AWT, Swing, JavaFX & SWT 2
newcron Suche die hässlichsten Swing GUIs AWT, Swing, JavaFX & SWT 4
A Suche TreeTable-Komponente AWT, Swing, JavaFX & SWT 12
C Suche fertigen HTML editor AWT, Swing, JavaFX & SWT 2
V Suche "Einblendeffekt" AWT, Swing, JavaFX & SWT 6
V Suche Komponente AWT, Swing, JavaFX & SWT 2
hdi JTable -> Suche passenden Listener AWT, Swing, JavaFX & SWT 10
D Suche Framework um Grafikprogramm zu schreiben. AWT, Swing, JavaFX & SWT 36
R Ich suche einen sehr simplen. AWT, Swing, JavaFX & SWT 2
A Suche analoge Uhr in Java AWT, Swing, JavaFX & SWT 9
M Jlist Eintrag mit suche selektieren AWT, Swing, JavaFX & SWT 4
W Suche großes vollständiges Swing GUI Beispiel nach MVC Model AWT, Swing, JavaFX & SWT 5
G Suche 2 Componenten: Splitpane ausblenden / Stecknadel AWT, Swing, JavaFX & SWT 2
B Suche eine GUI-Komponente AWT, Swing, JavaFX & SWT 2
D Suche verticale Progressbar AWT, Swing, JavaFX & SWT 2
C suche 1.3er - compatible Version von Swing-layout AWT, Swing, JavaFX & SWT 15
S Ich suche ein Darstellungselement AWT, Swing, JavaFX & SWT 2
T Suche Methode zum anzeigen eines Textteils im JPasswordfield AWT, Swing, JavaFX & SWT 2
N [Suche] JTree Widget/Library. AWT, Swing, JavaFX & SWT 2
M auf der suche nach einer komponente AWT, Swing, JavaFX & SWT 3
G suche Actionlistener der "Loslassen" eines Buttons AWT, Swing, JavaFX & SWT 5
G Suche Tutorial zum Thema jdbc/SQL/Select/JTable AWT, Swing, JavaFX & SWT 9
O Suche einfache Möglichkeit zum Speichern AWT, Swing, JavaFX & SWT 21
Juelin Für Java-Spezialisten AWT, Swing, JavaFX & SWT 4
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
M Vokabelprogram - Schleife für Liste soll schrittweise durchlaufen werden AWT, Swing, JavaFX & SWT 3
tommybalbor JavaFx Anwendung klappt nicht für macOs Nutzern, wenn ich zwei dependecies bei maven hinzufüge AWT, Swing, JavaFX & SWT 6
I Libraries für AWT für andere Grafik-Frameworks tauglich machen AWT, Swing, JavaFX & SWT 6
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
komplettlost Vollbildmodus für MacOs Nutzer geht nicht AWT, Swing, JavaFX & SWT 13
D JavaFX Schadensberechnung für Kartenspiel AWT, Swing, JavaFX & SWT 1
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
L actionListener für Button AWT, Swing, JavaFX & SWT 97
izoards Textfeld für Zeit AWT, Swing, JavaFX & SWT 4
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
T Getter und Setter für eine Stage AWT, Swing, JavaFX & SWT 6
P Swing Programm hängt sich bei Buttondruck auf? (GUI für "Chatbot" erstellen) AWT, Swing, JavaFX & SWT 15
T Button für GUI programmieren AWT, Swing, JavaFX & SWT 1
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
M Hough-Transformation für Kreise und andere Formen AWT, Swing, JavaFX & SWT 3
kodela HTML-tags für JLabel AWT, Swing, JavaFX & SWT 9
E Keystroke für Ausschneiden läßt sich nicht ändern AWT, Swing, JavaFX & SWT 2
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
MiMa Package Struktur für GUI Programmierung AWT, Swing, JavaFX & SWT 26
N JavaFX 1 Listener für mehrere ChoiceBoxen AWT, Swing, JavaFX & SWT 3
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
K Swing Struktur für TreeTable rekursiv aufbauen AWT, Swing, JavaFX & SWT 17
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
H Ein Patten für das Gluon Mobile Framework AWT, Swing, JavaFX & SWT 7
J Gibt es einen Grund für 16x16 anstatt z.B. 15x15 Tiles ? AWT, Swing, JavaFX & SWT 10
F JFormattedTextField für kg und Währung AWT, Swing, JavaFX & SWT 6
V Swing für jedes Kästchen eine eigene Farbe AWT, Swing, JavaFX & SWT 2
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben