<sub>An example of a diagram created by the JPA editor:</sub><br> [[Image:D1.jpg]]

+

[[Image:D1.jpg|frame|An example of a diagram created by the JPA editor]]

−

The power of the modern computers doesn’t allow the developers to deprive the users of a smooth graphical UI. Why the user has to implement her own Java EE business model by writing Java source code, instead of just creating a cute, smooth diagram with just a few mouse clicks.

+

The power of the modern computers doesn't allow the developers to deprive the users of a smooth graphical UI. Why the user has to implement her own Java EE business model by writing Java source code, instead of just creating a cute, smooth diagram with just a few mouse clicks.

Besides, if an user unfamiliar with an already created model wants to review it has to review every single JPA entity class and every relation attribute. What if this JPA entities are more than hundred in a project? It’s not uncommon in a real commercial project. What an ease it would be just to see a nice clean diagram! This way getting acquainted with the business model may become ten times faster.

Besides, if an user unfamiliar with an already created model wants to review it has to review every single JPA entity class and every relation attribute. What if this JPA entities are more than hundred in a project? It’s not uncommon in a real commercial project. What an ease it would be just to see a nice clean diagram! This way getting acquainted with the business model may become ten times faster.

−

It would be much better if the user is not only able to ‘see’ the business model, but also to be able to easily edit it directly through the diagram.

+

It would be much better if the user is not only able to ''see'' the business model, but also to be able to easily edit it directly through the diagram.

−

Well, all this is provided by the JPA editor. The user may easily create a diagram (and the corresponding business model along with it) as part of any JPA enabled project and may view and edit the model through this diagram.

+

Well, all this is provided by the JPA editor. The user may easily create a diagram (and the corresponding business model along with it) as part of any JPA enabled project and may view and edit the model through this diagram.

−

== Scope ==

+

== Scope ==

The project is based on the [http://www.eclipse.org/proposals/graphiti/ Graphiti], which is also a proposed open source project. [http://www.eclipse.org/proposals/graphiti/ Graphiti] is a framework based on GEF and EMF for creating graphical diagram tools. The JPA editor project provides a graphical diagram editor as part of the Eclipse IDE, which allows the user to create, view and edit her business model as part of Java EE application project.

The project is based on the [http://www.eclipse.org/proposals/graphiti/ Graphiti], which is also a proposed open source project. [http://www.eclipse.org/proposals/graphiti/ Graphiti] is a framework based on GEF and EMF for creating graphical diagram tools. The JPA editor project provides a graphical diagram editor as part of the Eclipse IDE, which allows the user to create, view and edit her business model as part of Java EE application project.

Line 23:

Line 23:

Extending the existing Dali API is out of the scope of this proposal. The editor will use the Dali API, but it won’t change and/or extend it.

Extending the existing Dali API is out of the scope of this proposal. The editor will use the Dali API, but it won’t change and/or extend it.

−

This editor is targeted to Java EE (and particularly JPA) developers who use Eclipse and provides them with a graphical tool for visualizing and manipulating Java EE application business model.

+

This editor is targeted to Java EE (and particularly JPA) developers who use Eclipse and provides them with a graphical tool for visualizing and manipulating Java EE application business model.

== Description ==

== Description ==

Line 29:

Line 29:

The JPA editor will support the ‘open-save-close’ Eclipse IDE editor model. Every single moment when the diagram is opened it’ll be in synch with the business model. This means that changes in the model will be immediately reflected by the diagram and vice versa.

The JPA editor will support the ‘open-save-close’ Eclipse IDE editor model. Every single moment when the diagram is opened it’ll be in synch with the business model. This means that changes in the model will be immediately reflected by the diagram and vice versa.

The editor will avoid as much as possible opening of dialogs and wizards. The idea is to use simple operations as ‘drag-and-drop’ and ‘in-diagram’ direct editing (of text). The palette on the right side will allow the user to create entities and relations between them with ‘drag-and-drop’ and ‘point-and-click’. The user will be allowed to create from the palette new entities which inherit java.lang.Object, mapped superclasses or some other entities. The user will be able also to create XML defined entities. The JPA entities will be presented by rectangles and attributes will appear in these rectangles with their names and icons. On mouse over context buttons will appear providing basic operations. The operations which are not available through context buttons will be available through context menus.

−

The editor will avoid as much as possible opening of dialogs and wizards. The idea is to use simple operations as ‘drag-and-drop’ and ‘in-diagram’ direct editing (of text). The palette on the right side will allow the user to create entities and relations between them with ‘drag-and-drop’ and ‘point-and-click’. The user will be allowed to create from the palette new entities which inherit java.lang.Object, mapped superclasses or some other entities. The user will be able also to create XML defined entities. The JPA entities will be presented by rectangles and attributes will appear in these rectangles with their names and icons. On mouse over context buttons will appear providing basic operations. The editor will show validation markers and messages

+

{| border="0"

+

|-

+

| valign="top"|

+

[[Image:D3.jpg|frame|Context buttons for basic operations]]

+

| valign="top"|

+

[[Image:D6.jpg|frame|Additional operations available in context menus]]

+

|}

−

The attributes will be separated in different compartments and any different entity or compartment can be collapsed or expanded.

+

The editor will show validation markers and messages. The attributes will be separated in different compartments and any different entity or compartment can be collapsed or expanded.

The operations which are not available through context buttons will be available through context menus.

+

−

+

−

[[Image:D6.jpg]]

+

The diagram will be persisted in a file in xml format.

The diagram will be persisted in a file in xml format.

Line 46:

Line 46:

The JPA details view will be integrated with the JPA Diagram editor. It would be possible to open it through a context menu command and it will reflect the selected diagram objects – entities or attributes.

The JPA details view will be integrated with the JPA Diagram editor. It would be possible to open it through a context menu command and it will reflect the selected diagram objects – entities or attributes.

+

+

{| border="0"

+

| valign="bottom"|

+

[[Image:D4.jpg|frame|A fragment of the diagram presenting various visual features]]

+

| valign="bottom"|

+

[[Image:D5.jpg|frame|Some of the compartments or the whole entity can be collapsed]]

+

|}

A miniature view will be available for opening through a context menu command and will allow the user to see a miniaturized image of the diagram.

A miniature view will be available for opening through a context menu command and will allow the user to see a miniaturized image of the diagram.

Line 54:

Line 61:

The diagram will visualize the merged Java annotated classes/XML model and will allow the user transparently to modify the both.

The diagram will visualize the merged Java annotated classes/XML model and will allow the user transparently to modify the both.

+

+

=== Screencast ===

+

+

Watch the short introductory screencast: http://www.youtube.com/watch?v=xZf6pOHX178

== Relationship with Other Eclipse Projects ==

== Relationship with Other Eclipse Projects ==

Line 61:

Line 72:

== Initial Contribution ==

== Initial Contribution ==

−

The initial code contribution will come from [http://www.sap.com/ SAP] where the JPA editor was originally developed. It will be based on the new [http://www.eclipse.org/proposals/graphiti/ <span style="text-decoration: underline;">Graphiti</span>] framework. It will provide most of the functionality described in the ‘Description’ section with the following exceptions:

+

The initial code contribution will come from [http://www.sap.com/ SAP] where the JPA Diagram Editor has been originally developed. It will be based on the new [http://www.eclipse.org/proposals/graphiti/ Graphiti] framework. It will provide most of the functionality described in the '''Description''' section with the following exceptions:

* The diagram will work with Java annotated classes only – no XML or Java mixed with XML.

* The diagram will work with Java annotated classes only – no XML or Java mixed with XML.

Line 85:

Line 96:

* WTP Dali JPA Tools

* WTP Dali JPA Tools

* SAP

* SAP

+

* Werner Keil, emergn

== Project Scheduling ==

== Project Scheduling ==

* March - April 2010 – Project proposal

* March - April 2010 – Project proposal

−

* April - May 2010 – Infrastructure setup, initial contribution

+

* May - August 2010 – Infrastructure setup, initial contribution

−

* June 2010 – First Milestone release (depends on the first Milestone release of [http://www.eclipse.org/proposals/graphiti/ Graphiti])

+

* September 2010 – First Milestone release (depends on the first Milestone release of [http://www.eclipse.org/proposals/graphiti/ Graphiti])

−

* July 2010 – December 2010 – respond on community feedback, graduate in the JPA Dali Tools project (depends on the graduation of the [http://www.eclipse.org/proposals/graphiti/ Graphiti] project)

+

* September 2010 – December 2010 – respond on community feedback, graduate in the JPA Dali Tools project (depends on the graduation of the [http://www.eclipse.org/proposals/graphiti/ Graphiti] project)

* June 2011 – Release as part of the 2011 simultaneous release train

* June 2011 – Release as part of the 2011 simultaneous release train

Latest revision as of 07:27, 8 March 2011

The JPA Diagram Editor project is a proposed open source project under the WTP Incubator project.

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the Eclipse community. Please send all feedback to the Webtools incubator forum.

Contents

Background

An example of a diagram created by the JPA editor

The power of the modern computers doesn't allow the developers to deprive the users of a smooth graphical UI. Why the user has to implement her own Java EE business model by writing Java source code, instead of just creating a cute, smooth diagram with just a few mouse clicks.

Besides, if an user unfamiliar with an already created model wants to review it has to review every single JPA entity class and every relation attribute. What if this JPA entities are more than hundred in a project? It’s not uncommon in a real commercial project. What an ease it would be just to see a nice clean diagram! This way getting acquainted with the business model may become ten times faster.

It would be much better if the user is not only able to see the business model, but also to be able to easily edit it directly through the diagram.

Well, all this is provided by the JPA editor. The user may easily create a diagram (and the corresponding business model along with it) as part of any JPA enabled project and may view and edit the model through this diagram.

Scope

The project is based on the Graphiti, which is also a proposed open source project. Graphiti is a framework based on GEF and EMF for creating graphical diagram tools. The JPA editor project provides a graphical diagram editor as part of the Eclipse IDE, which allows the user to create, view and edit her business model as part of Java EE application project.

Providing the JPA Diagram editor as integral part of the JPA Dali tools is in the scope of this proposal.

Extending the existing Dali API is out of the scope of this proposal. The editor will use the Dali API, but it won’t change and/or extend it.

This editor is targeted to Java EE (and particularly JPA) developers who use Eclipse and provides them with a graphical tool for visualizing and manipulating Java EE application business model.

Description

The JPA editor will support the ‘open-save-close’ Eclipse IDE editor model. Every single moment when the diagram is opened it’ll be in synch with the business model. This means that changes in the model will be immediately reflected by the diagram and vice versa.

The editor will avoid as much as possible opening of dialogs and wizards. The idea is to use simple operations as ‘drag-and-drop’ and ‘in-diagram’ direct editing (of text). The palette on the right side will allow the user to create entities and relations between them with ‘drag-and-drop’ and ‘point-and-click’. The user will be allowed to create from the palette new entities which inherit java.lang.Object, mapped superclasses or some other entities. The user will be able also to create XML defined entities. The JPA entities will be presented by rectangles and attributes will appear in these rectangles with their names and icons. On mouse over context buttons will appear providing basic operations. The operations which are not available through context buttons will be available through context menus.

Context buttons for basic operations

Additional operations available in context menus

The editor will show validation markers and messages. The attributes will be separated in different compartments and any different entity or compartment can be collapsed or expanded.

The diagram will be persisted in a file in xml format.

A certain preference page on the global level and a property page on project level will allow the user to set some specific JPA diagram options.

The JPA details view will be integrated with the JPA Diagram editor. It would be possible to open it through a context menu command and it will reflect the selected diagram objects – entities or attributes.

A fragment of the diagram presenting various visual features

Some of the compartments or the whole entity can be collapsed

A miniature view will be available for opening through a context menu command and will allow the user to see a miniaturized image of the diagram.

It will be possible to create one (or more) diagrams per JPA enabled project. It will also be possible to create diagrams which unite entities from more than one project.

Since it’s possible for a diagram to become very big the user will be allowed to define logical areas in a diagram. It will be possible for the user easily to visualize/hide only those parts of a diagram which she/he wants to.

The diagram will visualize the merged Java annotated classes/XML model and will allow the user transparently to modify the both.

Screencast

Relationship with Other Eclipse Projects

The JPA Diagram Editor is a graphical editor based on the Graphiti framework. It’s tightly integrated with the JPA Dali tools. It uses the Java Persistence API and is visually integrated with the JPA details view. As a final goal we intend the JPA diagram editor to become one of the JPA Dali tools.

Initial Contribution

The initial code contribution will come from SAP where the JPA Diagram Editor has been originally developed. It will be based on the new Graphiti framework. It will provide most of the functionality described in the Description section with the following exceptions:

The diagram will work with Java annotated classes only – no XML or Java mixed with XML.

The user will be able to create from the palette new entities represented by Java annotated classes which inherit java.lang.Object only.

It will be allowed no more than one diagram per JPA project.

No diagrams uniting entities from more than one project.

The user won’t be able to define areas.

Committers

The following individuals are proposed as initial committers to the project:

Stefan Dimov

Mentors

The following Architecture Council members will mentor this project:

Neil Hauge

TBD

Interested Parties

The following individuals, organizations, companies and projects have expressed interest in this project:

WTP Dali JPA Tools

SAP

Werner Keil, emergn

Project Scheduling

March - April 2010 – Project proposal

May - August 2010 – Infrastructure setup, initial contribution

September 2010 – First Milestone release (depends on the first Milestone release of Graphiti)

September 2010 – December 2010 – respond on community feedback, graduate in the JPA Dali Tools project (depends on the graduation of the Graphiti project)