Graphiti "New and Noteworthy" for Eclipse Kepler

Last revised February 17, 2013

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


The focus for this version was on bugfixing.
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.
Bug 425750 A bug in the selection changing feature has been fixed.
Bug 427444 A bug in the DefaultUpdateBehavior that prevented closing an editor in case of a diagram URI not being [file URI]/# has been fixed. Also the duplicate registration of an update listener has been removed.


The focus for this version was on bugfixing.
Bug 416708 Fixed a bug in the IdPattern that might cause direct editing not to get active in certain situations.
Bug 414954 Fixed a wrong link on the Graphiti web page to the online documentation and the New & Noteworthy documents.
Bug 416419 Fixed a wrong return value in DiagramBehavior; getAdapter to IDiagramEditor returned the behavior instance.
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.


The focus in this version was on testing and bugfixing.


There were only minor alignment and bugfixing changes in this version.
Bug 402758 An example plugin containing first samples for displaying Graphiti diagrams in a view and a popup was added.


There were only minor alignment and bugfixing changes in this version.


The main focus of this milestone was set on bugfixing.
Bug 405710 When an executed feature reports that no changes were done, any previously existing redo stack entries will no longer cleared.
Bug 407510 A bug that was introduced with the diagrams in views changes causing the background of the diagram to be gray when the grid was disabled has been fixed.
Bug 405920 A bug causing the backgound color of a rotated text to be ignored has been fixed.


The main focus of this milestone was set on bugfixing.
Bug 405314 It is now less cumbersome to create a custom implementation of DefaultBehavior and use it within a custom diagram editor or view.
Bug 403272 The location of the double click (mouse position) is now forwarded to the double click context instance provided to the double click feature.
Bug 401859 The Graphiti diagram editor now correctly disposes its context menu provider when the editor is closed.
Bug 399777 The Graphiti framework class CreateConnectionFeatureForPattern used in pattern based features with patters now offers a method to retrieve the delegate pattern.


The main focus of this milestone was set on the implementation of the Diagrams in Views feature and providing a new API for saving diagrams as images and printing.
Diagrams in Views Graphiti now supports also diagrams in views or on plain composites. Before it was only possible to have diagrams within editors. Common functionality has been extracted to a new DiagramBehavior class that can be re-used between editors, view and composites. The standard DiagramEditor has been adapted along with it's super interfaces to use the new functionality. Also new base classes have been introduced that allow clients to create their own diagram views or composites. Note that this is an incompatible API change. The changes that clients need to take to adapt to the new Graphiti version are described in comment 30 in the bug.
API Access to Export and Print Graphiti now offers an official API that allows clients to modify the save as image and print functionality. The according Graphiti features provide now the default implementation that has previously been part of internal classes and can be subclassed to modify parts or the complete functionality.
Enable Injecting Behavior Objects in DiagramEditor Graphiti now allows clients to inject the behavior objects used in DiagramEditor and DiagramBeahvior. Before it was only possible to exchange them by overriding their creation method.
Bug 403109 This bug appeared after the diagrams in views changes and caused that clients were no longer able to create property sheets for their diagram editors, because they were not able to retrieve the diagram container. This is now possible again by introducing an adapt mechanism.
Bug 403112 This bug appeared after the diagrams in views changes and caused that direct editing was not possible for diagrams in views when no editor was currently open.


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.


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.


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.


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.


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.