GMF Project Plan
Graphical Modeling Framework 2.0 Plan (Draft)
Last revised 0930 EST August 05, 2006
This document lays out the feature and API set for the initial release of the Eclipse Graphical Modeling Framework Project, version 2.0.0.
This project plan and associated requirements are the result of an open and transparent process and includes input from those who have expressed an interest in the project. That said, the success of the project and its deliverables is soley dependent upon the contributions from its community membership. If you are interested in contributing to the project in the delivery of its stated goals, you are more than welcome!
The first part of the plan deals with the important matters of release deliverables, release milestones, target operating environments, compatibilities and dependencies. These are all things that need to be clear for any release, even if no features were to change.
The remainder of the plan consists of themes for the project's milestones, with more detail on these and future capabilities found on the project requirements document. Each plan item covers a feature or API that is to be added to the Graphical Modeling Framework, or some aspect of the project that is to be improved.
As this plan represents the goals for the initial release of the Graphical Modeling Framework, it is expected and hoped that the project will acquire additional requirements, a vibrant user community, and most importantly, a plug-in developer community to utilize the framework. With this, it is expected that the plan will be adjusted during the development cycle in order to accomodate the community to as great an extent as possible.
The release deliverables have the same form as is found in most Eclipse projects, namely:
- Graphical Modeling Framework source code release, available as versions tagged "R2_0" in the project's CVS repository.
- Graphical Modeling Framework SDK (includes runtime and tooling components, with sources and documentation) (downloadable).
- Graphical Modeling Framework runtime binary distribution (downloadable).
- Graphical Modeling Framework examples (downloadable).
- Graphical Modeling Framework tests (downloadable).
Release milestone occurring at roughly 6 week intervals and follow the Platform milestone releases by approximately 2 weeks; that is, until the final X.X release of the Platform, upon which GMF and other projects will release simultaneously. As GMF is dependent upon the EMF, GEF, and EMFT projects, which are scheduled to release milestones within 1 week of Platform milestones, GMF will deliver its milestones within the following week. It is anticipated that GMF will synchronize its release milestones with the Callisto++ (name?) release schedule. The milestones are:
- Friday Mmm XX, 200X - Milestone 1 (2.0 M1) - stable build, tagged M1_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M2) - stable build, tagged M2_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M3) - stable build, tagged M3_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M4) - stable build, tagged M4_20 in CVS
- Friday Mmm XX, 200X - Milestone 1 (2.0 M5) - stable build, tagged M5_20 in CVS (API freeze)
- Friday Mmm XX, 200X - Milestone 1 (2.0 M6/RC0) - stable build, tagged M6_20 in CVS
Lock down and testing then begins with M6, and progress through a series of test-fix passes against candidates releases. Release candidate builds are planned as follows (M6 is release candidate 0):
- Friday Mmm XX, 200X - Release Candidate 1 - (2.0 RC1)
- Friday Mmm XX, 200X - Release Candidate 2 - (2.0 RC2)
- Friday Mmm XX, 200X - Release Candidate 3 - (2.0 RC3)
- Friday Mmm XX, 200X - Release Candidate 4 - (2.0 RC4)
- Friday Mmm XX, 200X - Release Candidate 5 - (2.0 RC5)
- Friday Mmm XX, 200X - Release Candidate 6 - (2.0 RC6)
As these milestones are dependent upon the Platform, they may be altered in order to conform to the published plan. All release deliverables will be available for download as soon as the release has been tested and validated in the target operating configurations listed below.
GMF 1.0.1 and 1.0.2 maintenance releases are anticipated, to align with the release of the Platform 3.2.1 (Q306) and 3.2.2 (Q107) releases, respectively.
Target Operating Environments
In order to remain current, each Eclipse release targets reasonably current versions of the underlying operating environments.
The Eclipse Graphical Modeling Project depends upon on the Platform and other projects, which are mostly "pure" Java. The X.X release of the Eclipse Platform Project is written and compiled against version 1.5 of the Java Platform APIs (i.e., Java SE 5), and targeted to run on version 1.5 of the Java Runtime Environment, Standard Edition. GMF will target the same Java version as the Platform.
Eclipse Platform SDK X.X will be tested and validated on a number of reference platforms. The Eclipse Graphical Modeling Project will be tested and validated against a subset of those listed for the platform. Those available will be presented on the project download site.
The Eclipse Platform is designed as the basis for internationalized products. The user interface elements provided by the Eclipse SDK components, including dialogs and error messages, are externalized. The English strings are provided as the default resource bundles. As a result, the Graphical Modeling Framework project will provide English strings in its default bundles and be localized to a subset of those locales offered by the Platform. This plan will be updated to indicate which locales will be provided and the timeframe for availability.
Compatibility and Dependencies
Compatibility of Release 2.0
The Graphical Modeling Framework Project will be developed in parallel, and released simultaneously, with the following projects. As stated above, each milestone release of the Graphical Modeling Framework Project will be compatible with the corresponding milestones for each of these projects, and delivered the appropriate offset.
- Eclipse Platform SDK version X.X
- Eclipse Modeling Framework (EMF) version X.X
- Graphical Editing Framework (GEF) version X.X
- EMF Technology (OCL, Query, Validation, Transaction) version X.X
Therefore, the Graphical Modeling Framework initial release will be compatible with these versions and will publish binary and source compatibilities with migration guides on subsequent releases.
It is a goal of the Graphical Modeling Framework Project to avoid provisional APIs. APIs published for the 2.0 release will be carefully reviewed prior to release, making use of "internal" packages for unsupported and variable implementation classes. Client plug-ins that directly depend on anything other than what is specified in the published API are inherently unsupportable and receive no guarantees about future compatibility. Refer to How to Use the Eclipse API for information about how to write compliant plug-ins.
Features and Capabilities
A list of project requirements and agreed upon implementation timeframes is found in this document. For the milestones listed in this document, a set of overall themes is used to indicate what major set of functionalities is to be concentrated on for each. These themes are presented below, while the requirements document and associated Bugzilla entries are left to those wanting more detailed information on each.
A number of items related to the GMF API are found in this section.
- 109871 Integrate sort/filter ListCompartmentEditPart capability with CanonicalEditPolicy
- 110332 Provide control over DiagramEditPart creation from Diagram.
- 111920 Canonical Framework should support listening on connector ends for reorientation.
- 112823 Adopt Eclipse 3.2 Action Contribution Improvements
- 113965 User-defined properties for runtime diagram (notation) model elements
- 113966 Custom (specific) runtime diagram model
- 114201 [req] Utilize extensibility options in code generation
- 115145 Global Action Service needs to be revisited.
- 117778 IFileChangeManager does not support filtering of Resource Change Events based on Content Type
- 121755 Need to add support for DropRequest in edit helpers framework
- 125899 Provide API to obtain all sub-ElementTypes of a given EClass
- 126147 IconOperation is in internal package.
- 129158 Ability to bind layout type to diagram type at post-design time
- 129245 Add an extension to IDocumentProvider to support print
- 131691 Rename CompartmentEditPart to InnerEditPart
- 133505 Refactor CanonicalConnectionEditPolicy to update connections without domain element associated
- 134707 Make WrapTextCellEditor(and TextCellEditorEx) public
- 135545 The pathmaps preference page allows me to override path map variables contributed through the extension point
- 138560 Make DirectEditKeyHandler public
- 139823 To prevent unnecessary plugin loading, org.eclipse.gmf.runtime.common.core.util.Log should have static methods that do not require the Plugin parameter
- 140194 <paletteProviders> extension pt. does not resolve <content> correctly
- 143572 Out of box support for diagram without resource
A number of usability items related to runtime and tooling components of GMF are found in this section.
- 109018 Need to document minimal GMF Runtime client
- 110237 Support multiple element creation from the palette
- 110338 Diagram links support for diagram based on a resource
- 110798 Ability to configure sides of the shape that the connector handles can appear on
- 110971 Compartment Scrolling Issues
- 111221 Items from Default ContributionItemProvider do not scale
- 111785 Show inner element in their own compartments
- 111892 Group/Ungroup support
- 111895 Paste of images / text into diagram from outside applications
- 111899 Auto-scrolling improvements
- 111901 Ability to move shapes using cursors keys. (by default)
- 111903 Provide 1-touch command to clean unresolved elements / connectors from diagram
- 111906 Improve removal of a bendpoint from a connector (Press ALT and click on the bendpoint)
- 111909 Default layout providers enhancements
- 111911 Contribution Item Service needs to support dynamic updates of tool-bar
- 111916 A suggestion on how to "grow" our diagram work area
- 111925 Support different line styles and arrow heads for geometric shapes / lines
- 111929 Arrange edges without arrange the nodes
- 111933 Layout commands - Distribute horizontal/vert, change vertial/horitzontal spacing
- 111934 Ability to drag page breaks view to affect offset / page size
- 111951 Color drop-down should support "no-fill" mode.
- 111956 Ability to have connections respect z-order and having shape overlap
- 112795 Pan / scroll tool
- 112818 Generic Project Explorer Framework for GMF
- 112996 Attaching a rectilinear routed line to a connection connects to space...
- 114107 [req] Provide a GMF Project wizard
- 114117 Expose "Customize" palette capability from GEF
- 114181 [req] Provide a Graphical Definition wizard
- 114182 [req] Provide a graphical definition wizard with "interview" capability
- 114194 [req] Allow for derived elements in graphical definition
- 114195 [req] Provide a set of jumpstart templates
- 114198 [req] Provide support for maintaining model synchronicity
- 114199 [req] Provide a graphical surface for mapping definitions.
- 114202 [req] Provide generation option to target view
- 114208 [req] Generate domain code with diagrams
- 114209 [req] Generate with builders
- 114216 [req] Support keyboard bindings
- 114225 [req] Support filtered views
- 114234 [req] Support feedback in status line
- 116499 PropertiesBrowserPage should support Undo/Redo from shared views
- 117917 Palette should remember the side it was attached to
- 118327 Service provider and policy error log message requires more detail
- 119248 Snap to Grid should allow snapping from any side
- 119252 Useability: diagram arrange all should snap to grid if snap to grid is on
- 123112 Tutorial: Creating diagram assistants for an action-bar
- 123760 Palette selection in group is not registered the first time using keyboard
- 124977 Bad location of the inplace editor for the new list compartment item
- 125282 Initialize ecore_diagram diagram file is redundant
- 125876 Rubberband selection tool should only select parent edit parts
- 126531 [Wizards] Wizards that infer tooling and graph definitions should be able to add results to the existing models
- 127491 Support external node labels in runtime
- 127908 Build should properly package example projects
- 128426 Tutorial: GMF diagram runtime tutorial and example for SVG display
- 129676 Allow the association of diagrams to arbitrary domain
- 130643 Duplicate wires in when creating from top of Circuit to bottom
- 131960 More layouts needed
- 132574 Automatically add shortcuts to external linked elements
- 133465 Wizards to reload GMF
- 133838 Snap-to-grid does not work for a child node *immediately* inside a top level node
- 134107 Provide preferences for the generated diagram editors
- 134115 Invert label text colour when it is selected
- 134119 It should be possible to change link label font
- 134495 Use workbench keybinding to delete element on diagram
- 134767 Printing: Fit to page makes the diagram too small
- 135271 problem with creating a figure with snap-on-grid enabled
- 135676 Logic shapes example does not prevent illegal reconnections
- 136410 Make connection handles easier to grab
- 136866 Resize constraint should be respected when node is created on diagram
- 136927 Guide GMFMap creation: Resource Selection: please preselect folder
- 137006 Request for moving figures from one container to another
- 137506 Select Element Service should filter based on capabilities
- 137807 Update clipboard support for SWT ImageTransfer type
- 138255 Support heterogeneous selections in copy/paste framework
- 139574 DPI of Jpeg files obtained with Save as Image File is too low (actual: 96, acceptable: 200)
- 139767 Model View for the UML editor example
- 139951 Support Layout for Canvas
- 141430 ACC: Print Dialog has fields that are not properly read by a screen reader
- 141558 GMF Developers Guide should not distiguish between Common and Diagram
- 141762 Avoid obstructions does not work well for rectilinear routing
- 141789 call "Arrange ALL" function in generation code for initialize the diagram
- 142336 more advanced mouse controls
Theme: Model[ing] Citizen
As a project within the Eclipse Modeling Project, a number of build dependency and interoperability items exist with other Modeling projects, as found in this section.
- 114200 [req] Provide an option to generate RCP application
- 127835 ECore sample: Represent EReference with specified EOpposite reference as a single diagram link
- 127909 Download pages need to adopt new look and feel
- 127911 Build schedule needs to be posted
- 134724 Build notes link on a GMF build download page
A number of items related to the implementation and support of standards is found in this section.
- 114190 [req] Support multiple languages in definition
- 114207 [req] Method of generation should be flexible.
- 114207 [req] Support diagram interchange
- 114233 [req] Provide alternative persistence mechanism
A number of performance issues are found in this section.
- 110496 Painting Performance enhancements
- 115829 Performance: Consider making DecorationService optimized
- 120106 Improve performance of AbstractProviderConfiguration
- 129344 ModelingAssistantService provides() method can be optimized
- 132261 Project explorer : when you scroll using up/down keys, is slow : GMF tree selection change listener takes time
- 138665 Performance: Copy Operation could be optimized
- 139313 Performance issues with Element Selection Service
- 140894 Performnace: Services use IConfigurationElement repeatedly to retrieve info
- 140898 Services need to revisit the question of using internal caches
- 141061 Performance: Notation metamodel can reduce its memory usage
- 141075 Performance DeleteFromModelAction is too slow calculating its enablement
- 141621 Performance TextCompartmentEditPart, LabelEditPart and WrapLabel figure are relatively slow refreshing