Graphiti "New and Noteworthy" for Eclipse Luna

Last revised March 12, 2014

This document describes the new development topics that were addressed during the milestones towards the release 0.11.0 within the Luna release train.

M6

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Rotation angle is more precise The angle attribute that was used for rotation of text graphics algorithms was stored as an integer which lead to rounding issues and imprecise rendering. The angle attribute has been deprecated and replaced by a rotation attribute of type double. The framework internally cares about compatibility with old diagrams by reading the old angel attribute and storing it in the rotation attribute. Both getAngle() and getRotation() methods on the graphics algorithms return the value of the rotation field (in case of getAngle() rounded to integer).
More flexibility in DefaultUpdateBehavior Clients are now more flexible in how they can influence the update behavior by overriding DefaultUpdateBehavior: the update adapter caring about updating to new file contents can now be changed by clients. Also two bugs in the registration of the update adapter (duplicate registration for initial resources) and only reacting to the deletion of the first diagram in a resource to close the editor were fixed.
Unselecting a connection tool in palette It is now possible to de-select a connection creation tool the editor palette. The new method isStayActiveAfterExecution(IConnectionCreationToolEntry) was added to the IToolBehaviorProvider interface. The default is as true as it was before.
Bug 424636 This fixes a bug in DiagramEditorActionBarContributor that appeared in RCP applications when the org.eclipse.ui.export functionality is not available. The contributor tried to add the Graphiti save as image menu entry right after the Eclipse export entry which caused an IllegalArgumentException in case it was not available. The situation is now checked and the entry is only added in case we find the location. Clients may override the new method addSaveAsImageEntryToMenu() to define their own location for the menu entry.
Bug 429215 A potential NullPointerException in DefaultMarkerBehavior has been fixed. I could happen in case a not correctly initialized editor was closed.

M5

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Disable reconnection It is now possible to completely disable the reconnection feature in Graphiti. When that is done the user is not even allowed to start dragging on an anchor. So far it was only possible to prevent the drop operation.
Bug 425750 A bug in the selection changing feature has been fixed.

M4

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Bug 391046 A bug that might have caused deadlocks while saving a Graphiti diagram has been fixed.
Bug 421612 Graphiti now uses its own Hudson instance (HIPP) at Eclipse.
Bug 421754 A bug in the calculation of the absolute position of a shape has been fixed. The calculation returned a wrong position in case the shape was nested inside an inactive container.
Bug 421813 A bug in the calculation of the relative position of a shape has been fixed. The calculation returned a wrong position in case the shape was nested inside an inactive container.

M3

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Documentation for Diagrams in Views and Popups The Graphiti documentation now has a chapter on the Diagrams in Views and Popups functionality introduced in Graphiti 0.10.0.
Bug 418409 The Graphiti new sample project and sample diagram wizards are available again in the Eclipse new wizards popup. They had disappeared in M2.
Bug 418676 A bug has been fixed that caused that canUndo() was not called in the feature or pattern has been fixed.

M2

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Mouse wheel support for scrolling and zooming Graphiti now supports the use of the mouse wheel for scrolling and zooming inside diagrams.
DiagramEditorInput adapts to IResource The DiagramEditorInput object now supports calls to the method getAdapter(...) passing an IResource.class object and returns the underlying Eclipse resource in case it can be retrieved.
Bug 414437 Fixed a bug that caused the zoom animation to jump in some cases.
Bug 414954 Fixed a wrong link on the Graphiti web page to the online documentation and the New & Noteworthy documents.
Bug 415884 Fixed a bug in the size calculation for texts that are placed into multi text graphics algorithms. Line breaks and other special characters were not counted correctly, e.g. did not increase the needed height.
Bug 416419 Fixed a wrong return value in DiagramBehavior; getAdapter to IDiagramEditor returned the behavior instance.
Bug 416708 Fixed a bug in the IdPattern that might cause direct editing not to get active in certain situations.
Bug 417577 Fixed a bug that caused that the state callback were not called while creating a connection and using the drag new connection functionality.
Bug 418333 Graphiti now needs Java 1.6 as minimal supported runtime, since the Equinox Core plugins require that version as well in Luna M2. Running the Graphiti framework on top of Java 1.5 is no longer possible. Note that this is an incompatible change.

M1

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Double click feature for diagrams It is now possible for clients to register a double click feature also on diagram level. Until now that was only possible on concrete shapes.
Hook to check read-only state of EMF resource It is now possible for clients to override a hook method for checking if any of the EMF resources used in the editor is read-only. Until now having a resource contained in the platform itself (e.g. EMF core) loaded in the editor caused an exception while trying to save.
Convert image to bytes service Clients may now use a Graphit service method that converts an image into a byte array. The functionality was up to now hidden in the save as image feature.
Bug 403622 Tests that were disabled for dependency issues between Eclipse Kepler and SWTBot are now enabled again.
Bug 411891 Fixed a dependency bug so that the Graphiti SDK can now be installed into Eclipse Juno.
Bug 412877 Fixed a bug that caused reconnection features not to appear on the undo/redo stack in some cases.
Bug 413166 Fixed a bug that caused DiagramEditorDummy not to return the editing domain.