JUNG + NetBeans' Visual Library Integration
The result gains new features for users of either library. Visual Library users get a collection of good, usable graph layouts backed by research in graph theory. JUNG users get interactivity - such as animation, using real UI components to represent graph contents, and the ability to incorporate non-graph elements into a graph UI to provide a richer user experience.
Watch this video for a demo and overview of the project.
Visual Library is a standalone library which is part of NetBeans but can be used in standalone Java applications. You don't have to be writing a NetBeans plugin to use this library!
JungScene— provides an abstract Visual Library scene implementation which wrappers a JUNG layout as a visual library
JungConnectionWidget— embeds JUNG's shape-based edge painting logic in a visual library widget
BaseJungScene— provides commonly used functionality - manages layer widgets and adding and removing of widgets as the graph is modified
The project consists of a Maven parent project with four child projects:
- Visual Library + Jung — does the basic integration of JUNG with Visual Library and provides
- Supports JUNG's animated layouts either using a timer or by pre-rolling
- Wrappers any JUNG layout in a Visual Library
SceneLayoutso that it can be used to lay out a scene with actual widgets
- Visual Library Jung Base Classes — adds in convenience classes such as
BaseJungSceneand its supporting cast
- Visual Library + Jung Demo — is a standalone (non-NetBeans) demo application
- Visual Library + JUNG NetBeans Module Wrapper — is a NetBeans Library Wrapper Module which embeds JUNG and these libraries and exposes their packages as its public API (NetBeans modules use classloader partitioning to restrict package access).
Build & Run
The easy way to use these libraries is via Maven, using this Maven repository - follow the link for a
<repository> section to add to your POM.
To build the projects, simply check the sources out from Git and build with Maven using JDK 7 or greater.
BSD 2-clause license for compatibility with JUNG (and most anything else).