24-MAY-2004: JGraph-4.0-Revelation

- Replaced ValueChangeHandler with GraphLayoutCache.valueForCellChanged
- Moved createPoint, createRect to AttributeMap
- Added AttributeMap, factory method in GraphModel
- Fixed GraphEd add/remove point with shift
- Replaced Map with AttributeMap (major API change)

11-MAY-2004: JGraph-3.4.1-Paris

- Removed GraphConstants.availableKeys
- Fixed NPE in EdgeHandler.mousePressed (773550)
- Fixed screen/model coordinates bug in GraphEd (862449)
- Fixed typo in examples/GraphEd (862455)
- Fixed accidental cloning in RootHandler (837362)
- Spline, Bezier linestyles for n points (Thanks to Martin Krueger!)
- Shift ports only if edge is not routed
- Include changed parents in selection event
- Cut, Copy, Paste is disabled on default
- Cloneable is disabled on default

03-MAY-2004: JGraph-3.4-Paris

- Can handle overlapping edges with a control point (Thanks to Martin Svoboda!)
- Removed e.consume and check from BasicMarqueeHandler
- Changed SizeHandle, EdgeHandle to static
- Moved event hooks from views to handles

26-APR-2004: JGraph-3.3-Zurich

- Added examples to source distribution
- Added support for view-local attributes
- Added support for sizeable in-place editors
- Changed Appearance of non-floating Ports
- Changed CellViewFactory interface
- AbstractCellView.getRenderer is now public
- Added Attribute moveableAxis, sizeableAxis to GraphConstants (2)
- Fixed possible NPE in JGraph.getCellBounds(Object[])

21-MAR-2004: JGraph-3.2-Lucerne

- In-place editing no longer calls convertValueToString twice
- DefaultGraphCell.changeAttributes no longer directly sets the user object
- Added set/isLabelAlongEdge to GraphConstants/EdgeRenderer (845673)
- DefaultGraphModel.getAttributes(null) returns the model's attributes (737213)
- Switched to double coordinates (use GraphConstans.createXY)
- GraphTransferHandler.canImport does not always return true
- Added moveBelowZero control property to JGraph (890057)

12-JAN-2004: JGraph-3.1-Lucerne

- Moved to BSD-style license
- Moved to Ant build environment
- Fixed GraphSelectionEvent contains wrong items (834450)
- Fixed broken Contract in JGraph.getSelectionCount (848439)
- Fixed error in Edge selection (835950)
- Renamed PERCENT to PERMILLE in GraphConstants (799536)
- Replaced direct renderer access in EdgeHandle (788180)
- Enabled live preview for dragEnabled mode (691135)
- Added GraphConstants.NEGATIVE_ALLOWED switch (786895)
- renamed BasicTransferable to BasicGraphTransferable
- code cleanup

01-SEP-2003: JGraph-3.0-Lucerne

- New package name org.jgraph.* for all classes
- Cleaned up directory structure (ready for Ant)

-----------------------------------------------------------------------------------------------

04-AUG-2003: JGraph-2.2.2-Lucerne

- New EdgeRenderer.translateGraphics hook for subclassers
- Fixes for ordered layoutcaches
- Include ports in cache-dependent order
- Removed cloned children parent dependency
- Fixed wrong order in exportData for DnD and clipboard

25-JUL-2003: JGraph-2.2.1-Lucerne

- Fixed cut-paste bug by adding ParentMap to GraphTransferable
  - Note: Children are removed from their parents upon removal from the model.
- EdgeView: Cached values are now public

13-JUL-2003: JGraph-2.2-Geneva

- Selection Change: Improved repaint performance (700788)
- Edge: Improved performance. Thanks to Denis O. Mikhalkin!
- GraphConstants: Changed IconAttributes type to Icon
- ParentMap: GraphModel dependency removed -> Model is in charge of computing the changed cells
- Edgelabel-position now depends on edge direction
- EdgeView: Don't allow label moves if cell/graph not moveable
- BasicGraphUI: Using ParentMap when cloning cells
- VertexRenderer(boolean hideGroups) constructor added
- ParentMap.clone method added
- GraphConstants.*_FILLED arrow styles removed
- EdgeView.beginShape, endShape, lineShape and sharedPath are now public
- Added getPreviousConnectionset/getPreviousParentMap to GraphModelChange
- Added JGraph/DefaultGraphModel.getDescendantList in favor of getDescendants
- DefaultEdge.defaultPoints is now public
- GraphConstants: Added FONT to availableKeys
- DefaultGraphCellEditor: Removed clickcount test in isCellEditable
- BasicGraphUI: Added MouseEvent method to MouseHandler.handleEditTrigger and pass to startEditing method
- Removed unused FontXY constants from GraphConstants

12-MAY-2003: JGraph-2.1.1-Geneva

- Added bean method to ConnectionSet for XMLEncoder
- Added Null-Check to isCellEditable
- Fixed shared points bug in DefaultEdge (see https://sourceforge.net/tracker/?func=detail&atid=435210&aid=710799&group_id=43118)
- Block autosizing in JGraph when the graph is being edited

17-MAR-2003: JGraph-2.1-Geneva

- Added new rel/version file that reflects the current working version (used by all *.sh and *.bat scripts)
- Added automated source code checking in build script using PMD (http://pmd.sf.net), target name = checksrc
- ParentMap does not use TreeNode interface anymore, uses GraphModel instead
- Fixed possible NPE in paintCell (see http://sourceforge.net/forum/message.php?msg_id=1919609)
- Fixed NPE in BasicGraphUI.MouseHandler.mouseDragged and mouseReleased
- Replaced fontStyle, fontName and fontSize by single font bean property (http://sourceforge.net/tracker/?func=detail&atid=537692&aid=694387&group_id=43118)
- Added null test to JGraph.getCellBounds (see http://sourceforge.net/forum/forum.php?thread_id=823687&forum_id=140880)
- Changed API to allow Vertex/Port combined cells (see http://sourceforge.net/forum/forum.php?thread_id=821998&forum_id=140879)
- Changed XORMode color in EdgeHandle, SizeHandle and RootHandle (see http://sourceforge.net/tracker/index.php?func=detail&aid=677743&group_id=43118&atid=435210)
- handleParentMap at DefaultGraphModel updated for user defined Cells 
- Added getParentMap and getConnectionSet to DefaultGraphModel.GraphModelEdit (see http://sourceforge.net/tracker/?func=detail&aid=675521&group_id=43118&atid=435210)
- DefaultGraphModel.contains does not use DefaultMutableTreeNode. Use getParent method instead
- Fixed BasicGraphUI.paintGrid, min. grid size is 2 pixels (see http://sourceforge.net/tracker/index.php?func=detail&aid=677748&group_id=43118&atid=435210)
- Fixed BasicGraphUI.MouseHandler.mousePressed (see http://sourceforge.net/tracker/index.php?func=detail&aid=680124&group_id=43118&atid=435210)
- Test marquee != null in BasicGraphUI.paint
- DNDPreview problem is solved in J2SDK1.4.1_01 (no preview for double buffering, but no freezing either)
- Limit number of visible relations to MAXCELLS for live preview
- Check for nullpointer in BasicGraphUI.isConstrainedMoveEvent
- Fit up to Java 1.4 (Marked relevant lines with //JAVA13 and moved TransferHandler.java to /rel directory, updated Makefiles)
- PortRenderer.getRendererComponent now absorbs the focus argument (see http://sourceforge.net/tracker/?func=detail&aid=683388&group_id=43118&atid=435210)
- Added reference to GraphModel in ParentMap (Thanks to Michael Lawley!)
- Added GraphModel.isPort, GraphModel.isEdge (Thanks to Michael Lawley!)
- Moved JGraph.cloneCells implementation to GraphModel (Thanks to Michael Lawley!)
- Added NULL-check on oldBounds in AbstractCellView.setBounds
- Added explicit setBounds(map, bounds) in GraphConstants.translate(map, int, int)
- Handle Java-Bug in large zoom levels in VertexRenderer.paint (Bug: Zero length string passed to TextLayout constructor)
- Use GraphModel interface in BasicGraphUI.MouseHandler.mouseReleased (see http://sourceforge.net/tracker/?func=detail&atid=435210&aid=671137&group_id=43118)
- Added JGraph.setGridStyle and improved grid/zoom integration (Thanks to Claudio Rosati!)
- GraphConstants.translate: Do not go into negative coordinates (see http://sourceforge.net/forum/message.php?msg_id=1842610)
- EdgeHandle/SizeHandle: Do not go into negative coordinates (dito)

01-FEB-2003: JGraph-2.0-Geneva

- Rounding erros on large zoom levels removed
- GraphConstants.createPropertyMap removed
- GraphModel.isOrdered removed
- GraphModel.isAttributeStore removed
- GraphConstants.is/setVisible removed
- CellRenderer.supportsAttribute removed
- AbstractCellView.isControlAttribute removed
- VertexRenderer.is/setHideGroups added
- BasicGraphUI.is/setSnapSelectedView added
- Edge.Routing added
- GraphConstants.ROUTING_SIMPLE added
- DefaultEdge.DefaultRouting class added
- GraphConstants.get/setRouting added
- GraphConstants.createAttributes added
- GraphLayoutCache.reset, is/setVisible, partial, ordered added
- DefaultGraphModel.getSource/TargetVertex added
- GraphLayoutCache.hiddenSet added
- JGraph.VERSION (use JGraph -version) added
- VertexRenderer.paintSelectionBorder added
- Provide a handleEditTrigger Hook in BasicGraphUI.MouseHandler added
- GraphView renamed to GraphLayoutCache
- GraphLayoutCache.toBack/toFront take cells as arguments
- JGraph.get/setView renamed to JGraph.get/setGraphLayoutCache
- JGraph.SnapSize renamed to Tolerance (including getter, setter etc.)
- JGraph.convertValueToString support view-local values
- DefaultGraphCell.setAttributes renamed to changeAttributes
- Port.add/remove renamed to Port.addEdge/removeEdge (see http://sourceforge.net/forum/forum.php?thread_id=773281&forum_id=140880)
- GraphConstants.ARROW prefix added to arrow styles
- GraphConstants.STYLE prefix added to line styles
- getPerimterPoint method was moved to the renderer
- GraphViewChange.getAttributeMap renamed to getAttributes
- GraphModelChange.getStoredAttributeMap renamed to getPreviousAttributes
- DefaultGraphModel.handlePropertyMap renamed to handleAttributes
- importData may return false to signal sender to not remove cells
- DefaultGraphSelectionModel.isChildrenSelectable now supports a cell argument
- Rounding erros on large zoom levels removed (Thanks to Jenya!)
- The maximum number of edges to paint in live-preview is now MAXCELLS
- EdgeHandle does now support the SHIFT-key for constrained moving
- Added some accessor methods to BasicMarqueeHandler for subclassers
- BasicGraphUI.PropertyChangeListener calls repaint after GraphLayoutCache change
- JGraph.setGraphLayoutCache checks and updates the cache's model if necessary
- Vertices are not removed when their last port is removed dynamically
- EdgeRenderer now cached the created Shape in the corresponding EdgeView
- BasicGraphUI.isDescendant uses GraphModel interface to return its data
- Live preview during real DND (only for JDK < 1.4.0, see BasicGraphUI line 28)
- DefaultEdge.constructor offers user object und boolean (allows children)
- JGraph.disconnectOnMove must check the CONNECTABLE/DISCONNECTABLE attributes
- Vertex, Port and Edge may carry the CONNECTABLE/DISCONNECTABLE attributes
- NPE on edge change when new the port was not visible in other view removed
- Groups may contain ports (Concurrency side-effects in EdgeRenderer.createShape)
- Cache the bounds property of groups and recompute on change of children only
- GetBounds-Infinite-Loop solved by exluding childedges between childs to group
- Propagate CellView.update to parent instead of child (bubble up)
- TransferHandler now supports move and DnD across multiple views, models and JVMS
- Clone edges when reconnected and the Control key is pressed
- ExecutableGraphChange interface added to execute all changes in model (Delegation)
- In-place editing from empty to non-empty content is incorrectly undone
- Removed in-place manipulation of BOUNDS-attribute in SizeHandle and RootHandle
- Changed execution order of compound edits: first model then args in-order
- Use GraphModel interface in DefaultGraphModel.getRoots only (no typecast)
- GraphLayoutCache.getMapping may return null (if cell is not visible)
- GraphUndoManager.redo throws CannotRedoException instead of CannotUndoException
- Handles.initOffscreen is protected instead of package private

06-JAN-2003: JGraph-1.0.7-Valencia

- DefaultGraphSelectionModel.CellPlaceHolder is now a protected inner class with public accessors (see http://sourceforge.net/forum/forum.php?thread_id=780577&forum_id=140880)
- DefaultGraphCell.getChildren never returns null (see http://sourceforge.net/forum/forum.php?thread_id=780591&forum_id=140880)
- SizeHandle/RootHandle double buffer members are now protected (see http://sourceforge.net/forum/message.php?msg_id=1773109)
- dependency between isMoveable, isAutosize and isSizeable was removed. (see http://sourceforge.net/forum/forum.php?thread_id=770111&forum_id=140880)
- focus argument and childrenSelected are handled separately by renderer (see http://sourceforge.net/forum/forum.php?thread_id=773281&forum_id=140880)
- focused cell's highlight color is different from other selected cells (see http://sourceforge.net/forum/forum.php?thread_id=773281&forum_id=140880)

18-NOV-2002: JGraph-1.0.6-Madrid

- Updated CVS Repository and Distribution directory structure
- New Distribution Files (Readme, News, ChangeLog, ...)
- Ant-compatible Build Scripts
- Script-based Automatic Core Migration to Java 1.4
- Reformated source code
- Reorganized Java imports

13-JUN-2002: JGraph-1.0.5-Malaga

- Scaled importData
- InvokesStopCellEditing
- Remove update from AbstractCellView.constructor
- Move AbstractCellView.update call to subconstructor
- Font Style/Size for default font
- Typetest in DefaultGraphModel.getChild
- Group Resize overrides Size protection
- Group Resize overrides Position protection
- GraphConstants.applyMap: undoMap removed
- AbstractCellView uses createMap
- DefaultGraphCell uses createMap

06-JUN-2002: JGraph-1.0.4-Xinzo

- GraphModelEdit.getStoredAttributeMap
- Paints released Clone-Mode during Move
- GraphModelEdit.handleEmptyGroups
- DefaultGraphModel.createLayerEdit
- public GraphViewLayerEdit.execute

28-MAY-2002: JGraph-1.0.3-Zaragoza

Initial Release
