Graphiti "New and Noteworthy" for Eclipse Kepler

Last revised February 6, 2013

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

M5

Some smaller enhancements have been implemented, but the main focus for this milestone has been set mainly on bugfixing.
Text Decorators Graphiti now supports a new decorator type: text decorators. Shapes can now be marked with custom texts without diagram modifications. The text decorations can be placed at a defined location on the shape and allow a custom font, font size and custom colors to be used.
Configurable Drop Target Listeners The registration of drop target listeners can now influenced by clients inside the diagram editor. The class DiagramEditor now provides new protected methods that clients can override to change which drop target listeners shall be registered or not.
Bug 390331 A bug in the call hierarchy of patterns has been fixed that caused the preDelete, postDelete, preRemove and postRemove methods in the pattern not to be called. Note: this is not an API change, but may cause a change in the behavior for those clients that already overrode those methods (previously had no effect) or established pre- and post hooks in other ways for their patterns.
Bug 396026 Ensured that the pattern APIs (with the exception of the configuration stuff and ID patterns) are now official API and no longer have the experimental header.
Bug 396247 A bug in the correlation between diagram types and image providers has been fixed. Before it was possible for any diagram type to use all images from all image providers no matter if the image provider was registered by the diagram type. This could have caused issues with respect to the sequence in which diagrams were opened. Note: this is a change in the API for retrieving images.
Bug 397303 An accessibility issue with showing the context button pad in high contrast mode has been fixed (pad background and border were painted in standard colors).
Bug 397346 A focus issue within direct editing has been fixed.

M4

The main focus for this milestone has been set on bugfixing.
Bug 396529 Graphiti enabled the correct usage of the ICU4J library version 50.x brought in by the latest Eclipse platform via its dependencies GEF and EMF Validation.
Bug 393074 The progress monitor parameter passes in the the saveDiagram() method in DefaultPersistencyBehavior is not correctly used within the method.
Bug 393113 Selecting a connection in e.g. the Eclipse Project Explorer with enabled editor linking will now select and reveal the connection in the opened diagram editor in case it exists in the diagram.
Bug 394801 Properties passed in the AddContext will now correctly be passed to the called add feature.
Bug 392309 Showing a tooltip that is too long to fit into the viewport of the diagram will no longer cause that scroll bars appear.

M3

The main focus for this milestone has been set on bugfixing and implementing round-offs.
ID Pattern Graphiti offers a new pattern base class, so called ID patters. They offer the possibility to define shape structures in a diagram and tag them using IDs. These IDs are later used by the framework to identify individual shapes again and e.g. trigger update and layout operations directly for the individual parts. This lowers the effort clients need to invest into those functionality a lot.
Support for SelectionInfo The callback methods for providing ISelectionInfo objects to influence the way graphiti highlights selected objects has been reworked. It now supports shapes, anchors and connections.
Support for rich text Graphiti text objects and tooltips now support displaying rich text. Texts may be formatted using different colors, fonts, font sizes and may be highlighted in several ways.
Shortcuts for Triggering Features It is now possible to register shortcuts to trigger features. Any keybinding can be defined and associated with a certain feature so that it will be triggered when a user presses that key combintaion.
Bug 365172 The modification of the line style using an ISelectionInfo object is now supported.
Bug 389379 A bug in the editor dirty state handling has been fixed that caused an editor to show the dirty mark although no changes were done; also the undo/redo stack of the editor might have been mixed up by this bug.
Bug 391506 A bug in the editor feature processing was fixed that caused an editor to get dirty in case a connection creation feature was abandoned.

M2

The main focus for this milestone has been set on bugfixing and implementing round-offs.
Removal of Deprecated API The deprecated methods in the Graphiti API have been removed. This is an potentially incompatible API change, although clients should have adapted their coding already some time ago.
New Pattern Constructor A new constructor with no parameters has been introduced for Graphiti patterns.
New Filesystem Example The filesystem example shown at the Eclipse Juno demo camps in June has been added as an additional example of Graphiti. It serves as an example of how to use patterns for building a Graphiti editor.
Gradient Definitions An additional and more advanced example for gradient definitions has been added to the filesystem example.
Factory Method for Workspace Synchronizer Clients might have the need to use a custom EMF workspace synchronizer to react differently on external file change events. By providing a special factory method for the instance to use in DefaultUpdateBehavior this scenario has been eased.
Bug 389380 A bug in the undo stack handling in the Graphiti editor has been fixed that caused the wrong feature command to appear at the top of the undo stack under certain conditions.
Bug 388213 Two import statements that required a dependency to org.eclipse.ui to be required have been removed. The dependecy causes issues with using Graphiti in an Eclipse 4 based RCP application.
Bug 388335 Fixed a wrong JavaDoc comment about potential future extensions to the Graphiti undo/redo handling that actually already exist.
Bug 388211 The new plug-in wizard to create a Graphiti diagram editor always added a dependency to org.eclipse.ui, although it is only needed when an activator class should be generated. In case no activator is generated the dependency will now not be added any more. This resolved some issues with using Graphiti for creating an Eclipse 4 based RCP application.
Bug 387971 A bug in the action handling which caused that context menu entries like copy and paste did not work when the Graphiti Diagram Editor was embedded inside a multi page editor has been fixed.

M1

The main focus for this milestone has been set on bugfixing and implementing round-offs. Besides project related tasks were focused.
Enable Gerrit The Gerrit code review system has been enabled for the Graphiti Git repository.
Add API for configuration provider The Graphiti configuration provider is now part of the official API. Clients can access it through the public method getConfigurationProvider in the diagram editor class.
Single-Click Feature Clients can now register a 'single-click feature' analog to the already possible 'double-click feature'. By doing this any custom feature can be started on clicking once with the mouse onto a shape.
Bug 384330 A wrong method reference has been fixed in the Graphiti documentation.
Bug 383512 A bug when moving a polyline has been fixed that lead to wrong positioning of the moved shape when the line does not start at position 0, 0.
Bug 380439 The DefaultRemoveFeature now also removes connections of nested shapes.
Bug 385586 A bug causing the remove, delete and update entries to be always shown in the context menu and context button pad has been fixed. The entries are now hidden when they are not available and disabled when they cannot be executed.