StateGraph

SourceForge.net Logo

About StateGraph

StateGraph is a combination of three different projects, described below.

StateGraph

StateGraph is an extension to JGraph that allows visualizing different states of a graph, where a state is a set of visible graph cells. The advantage of StateGraph is that related graphs, having minor differences, can be developed and edited simultaneously, and within one graoh. Previously, different graphs would need to be kept in sync to emulate this behaviour.

JBF

JBF is a basic framework for building applications, some extensions to the basic swing components, and static utilities. The application framework provides the basics to create an application centred about documents. The framework (net.sf.jbf.app.*) includes:

The XML menu/toolbar builder is a modification of the XMLMenuBuilder from FreeHEP, that allows it to work without the command link interface used by FreeHEP and to permit loading from a stream rather than a file.

The swing extensions (net.sf.jbf.swing.*) include:

StateApp

StateApp is a demonstration application to show the features of StateGraph, and is build using the JBF framework. It will become a functional replacement for JGraphPad, although there is still much work be completed to reach this goal. Presently, the features of StateApp include

Releases

StateApp 0.1.6

The latest release, 0.1.6, is now available on SourceForge. As before, the download is a JAR containing both source and compiled code, and is the current JBF, StateGraph, and StateApp.

This release includes several notable new features:

StateApp 0.1.5

The 0.1.5 release, is availabe on SourceForge. As before, the download is a JAR containing both source and compiled code, and is a combination of JBF, StateGraph, and StateApp.

This release contains a number new features:

StateApp 0.1.0

The first release, 0.1.0, is now available on SourceForge. The download is a JAR containing both source and compiled code. The release is a combination of JBF, StateGraph, and StateApp. The current release includes JGraph 5.8.1.1.

To run, simply download the file, open a command window, and type "javaw -jar stateapp.jar". NOTE: On exit StateApp will create a user properties file in your home directory called StateApp/user.properties.

Status

With the 0.1.6 release complete, work is well under way on the next release. As seems typical for my development, I have gotten side tracked with development, and have been working on architectural issues. In 0.1.6 and earlier, special "state friendly" graph cells were required to be able to use states. They are a special extended DefaultGraphCell, and a special GraphModel was required (among other things). This was done for performance benefits - the benefits would be seen when changing the visible state and editing states. The next release uses a special attribute to deal with states. This is done for compatibility with some performance hit - a special extended DefaultGraphCell object is not required, and a special GraphModel is not required. This change is nearly complete, and is what has taken to long to get a new release out.

It seems my dream of arbitrary GraphCell rotation/scaling and fixing some SVG things (better support style attributes) will have to wait.

Roadmap

StateGraph and the related projects are currently under heavy feature development. Some of the things in-progress or in-plan are

StateGraph

JBF

StateApp

Development

Platforms

StateGraph is written entirely in Java (as is JGraph) using Java 1.4.2 and 1.5.0, in both Linux and Windows environments.

Help

I'm one person working on this project during my spare time. Any help/suggestions/etc are welcome.

Screenshots

No project is complete without some screen shots. Here they are (they are from the 0.1 release).