Release Notes: This release resolves all issues reported with the Beta 1 release to date.
Release Notes: Double buffering support has been developed so that the buffered image is retained constantly, making panning and scrolling much faster and reducing the time taken to start a drag or resize in a large graph. Graphics hardware acceleration can be optionally used for the double buffering, but is switched off by default. The concept of a buffered overlay image was added for transparent drawing on the foreground without having to redraw the static buffered graph. JGraph 5.10 requires Java 1.4 or later.
Release Notes: In addition to supporting an image on the background, a Component may now be drawn as the JGraph background for applications such as mapping. Some performance improvements have been made in the GraphLayoutCache relating to making cells invisible. In the model, there have also been performance improvements around the functionality that removes cells.
Release Notes: This release adds support for a background image that is refreshed during all necessary drag, resize, and model change events.
Release Notes: Double buffering in JGraph previously consisted of off-screen buffers created in the root handles and size handles to buffer drag-and-resize previews on a per-case basis. However, the review buffered the entire graph image, so recreating the buffer on each operation was expensive in CPU terms. The off-screen buffer and off-screen graphics that are the graphics object of the buffer have been moved to the JGraph class. Also, the cachedLabelBounds and cachedExtraLabelBounds variables in EdgeView were never set (since getLabelBounds() and getExtraLabelBounds() were never called) and have been removed.
Release Notes: A bug has been fixed where removing the user object did not action correctly. This has been fixed with an additional check in handleAttributes() in DefaultGraphModel. Also added is the getInsertionOffset() hook in GraphTransferHandler to enable positioning of cloned cells without copying the entire importData() method. Finally, a possible NPE in EdgeRenderer.getLabelPosition() has been enclosed in all the necessary null checks.
Release Notes: This release fixes an issue on Apple JVMs where XOR painting causes huge memory usage while dragging or resizing cells. A check is now made for the operating system type, and if it is Mac OS X, plain repainting is used instead of XOR.
Release Notes: This release adds a new example demonstrating how to create a vertex where the ports can have their own labels. It also shows how to position labels outside of vertices but still have the bounds of the vertex shape display correctly for selection and edge connection.
Release Notes: A case was found were the library could end up in an infinite loop if a null value is contained in the cell array passed to a remove() call. This has been resolved in this build.
Release Notes: XOR painting on Apple JVMs is very costly in terms of memory, and the JVM tends to not dispose of graphics objects effectively, unlike the other main JVMs. This release adds manual dispose() calls to assist the Apple JVM in this regard. XOR memory usage is still high on this platform, but garbage collection after XOR painting now reclaims the memory correctly.