Difference between revisions of "SCA/Components/SCA Form Editor"

From Eclipsepedia

< SCA
Jump to: navigation, search
(A SCA Composite Form Editor)
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
'''Project - Subproject:''' Eclipse STP - SCA Composite Tools
+
== Introduction ==
  
'''Proposal:''' two SCA Composite editors to complete the SCA tools of Eclipse STP, and in particular, the SCA Composite Designer contributed by Obeo and SAP.
+
The SCA Form Editor is a multi-page editor where each page represents a concept of an SCA application (general information, components, services, references, wires...).
 +
<br />In terms of usability and simplicity, it can be seen as at an intermediate level between the SCA XML editor and the SCA Composite Designer.
  
'''Contributor:''' EBM WebSourcing.
+
Each page allows to visualize and edit the elements and attributes relative to the page concept.<br />
 +
In general, pages are made of two parts: a list on the left, and sub-elements and attributes of the the list elements on the right.<br />
 +
However, some pages are more complex, like the <b>component</b> page, where you have to select which sub-elements you want to edit. This is achieved through an action bar.
  
 +
This editor aims at covering all the aspects of SCA.<br />
 +
In particular, it will bring some useful help to use component types, constraining types, policies, intents, complex properties and composite inclusions.
 +
This will be achieved by overview mechanisms and embedded widget editors.
  
==A SCA Composite Textual Editor==
 
  
As firstly proposed [[SCA_Java_support_in_STP|here]] previously (not by EBM WebSourcing), we plan to extend the XML Editor of the WTP Eclipse project.
+
== Screenshots ==
Since the composite files are XML files, it does make sense to reuse an already-existing and robust XML editor. What we have to do is to specialize it for composite files. Thus, here are the actions to undertake:
+
  
* Register composite files as an XML content type.
+
<center>
* Register sca.xsd to schema validator.
+
[[Image:ScaFormEditorOverviewPage.gif]]<br />
 +
<u>Overview of the SCA Form Editor</u>
 +
</center>
  
This already makes our editor inherit from the features of the WTP editor, such as syntax highlighting, auto-completion for markups and attributes, syntax and schema validation, text formatting and a default outline view.
 
  
* Extend the auto-completion mechanism to provide auto-completion for attribute values (by using the composite itself, the included composites and by using the workspace composites in some cases).
+
<center>
* Customize the outline view, by adding SCA / Eclipse icons and providing filters and reordering actions.
+
[[Image:ScaFormEditorComponentOverviewPage.gif]]<br />
* Synchronize the underlying model of the editor with the EMF SCA model used by the SCA Composite Designer. This synchronization might be in fact a full replacement of the model by the EMF model. WTP supports some connections with EMF, but we have to explore it a little more before we can say exactly what is the best solution.
+
<u>Component page of the SCA Form Editor</u>
* Using the synchronization with the EMF model...
+
</center>
** extend / replace the composite validation by the EMF validation, to include the constraints of the meta-model in the validation (constraints that are not part of the XML schema).
+
** synchronize the source with the graphical representation of the composite in the SCA Composite Designer.
+
  
  
 +
<center>
 +
[[Image:ScaFormEditorComponentServicePage.gif]]<br />
 +
<u>Edit the services of an SCA component</u>
 +
</center>
  
==A SCA Composite Form Editor==
 
  
 +
<center>
 +
[[Image:ScaFormEditorComponentReferencePage.gif]]<br />
 +
<u>Edit the references of an SCA component</u>
 +
</center>
  
The second editor is a form editor (or wizard editor), such as the PDE Manifest editor.
 
In fact, this is a multi-page editor, where each page is used to manage a part of the composite (general information, services, references, components, wires and so on...).
 
  
We can see this editor as an intermediate level between the text editor and the graphical designer.
+
<center>
It may be really interesting to manage really big composites or important lists (such as the policy intents, policy sets...). The important criteria for this editor are readability (am I going to find what I'm looking for fastly ?) and usability (is it really convenient to use ? is it easier for me to work with this editor than with the others ?).
+
[[Image:ScaFormEditorServicesPage.gif]]<br />
 +
<u>Edit the services of an SCA composite</u>
 +
</center>
  
Of course, the choice of one editor will depend on the composite you are working on and depend on the actions you have to perform on it. In fact, all the editors are complementary, providing convenient ways to edit or model (some aspects of) the SCA composite.
 
  
In terms of design and code, this is what we plan to do for the form editor:
+
<center>
 +
[[Image:ScaFormEditorIncludesPage.gif]]<br />
 +
<u>The SCA Resource Explorer in action to manage composite inclusions</u>
 +
</center>
  
* Design and create the multi-page editor using Eclipse forms.
 
* Embed the textual editor (see above) in this editor.
 
* Provide an associated outline view.
 
* Reuse the parser of the text editor and / or reuse the EMF model to validate user inputs.
 
  
A first overview of this editor: [[Image:ScaFormEditor_References.PNG||100px]]
+
<center>
 +
[[Image:ScaFormEditorPoliciesIntentsPage.gif]]<br />
 +
<u>Define policies and intents for SCA elements</u>
 +
</center>
  
TODO: provide some screenshots later.
+
 
 +
<center>
 +
[[Image:ScaFormEditorSourcePage.gif]]<br />
 +
<u>The source page</u>
 +
</center>
 +
 
 +
 
 +
== Features ==
 +
 
 +
Here are the main features expected for this editor.
 +
 
 +
 
 +
<u>Short-term (before Galileo):</u>
 +
* Web-form interface to edit SCA composites. <span style="color: green; font-weight: bold">Done</span>
 +
* Synchronisation with the SCA Composite XML Editor. <span style="color: green; font-weight: bold">Done</span>
 +
* Edit all the elements of a composite. <span style="color: orange; font-weight: bold">Partially done</span>
 +
* Visualize elements as lists with filtering by name. <span style="color: green; font-weight: bold">Done</span>
 +
* Simple vs. Expert mode to edit wires (there are three ways of wiring). <span style="color: red; font-weight: bold">Delayed</span>
 +
* Edit complex properties. <span style="color: red; font-weight: bold">Delayed</span>
 +
* Browse and visualize other SCA composites for inclusion. <span style="color: green; font-weight: bold">Done</span>
 +
* Browse and visualize SCA constraining types. <span style="color: orange; font-weight: bold">Partially done</span>
 +
* Browse and visualize SCA component types. <span style="color: green; font-weight: bold">Done</span>
 +
* Edit basic implementations, bindings and interfaces. <span style="color: red; font-weight: bold">Delayed</span>
 +
 
 +
 
 +
<u>Mid-term and long-term (after Galileo):</u>
 +
* Edit constraining types and component types.
 +
* Refactoring capabilities (e.g. rename a component service renames also the wire attributes using it). <span style="color: green; font-weight: bold">Done</span>
 +
* Browse and visualize policies and intents.
 +
* Display validation error and warning markers in the editor.
 +
* Edit implementations, bindings and interfaces specified in the preference page for <b>XML-based editors</b>.
 +
* SCA Composite analysis (find unused dependencies, find cycles in dependencies...).
 +
* Handle constraints set up by component types and constraining types when editing.
 +
 
 +
 
 +
== Technical Information ==
 +
 
 +
This editor uses Eclipse Forms for the graphical part, and the WTP XML model as the underlying model.
 +
 
 +
[[Category:SOA_Tools]]
 +
[[Category:SOA]]
 +
[[Category:STP]]
 +
[[Category:SCA]]

Latest revision as of 11:00, 8 July 2010

Contents

[edit] Introduction

The SCA Form Editor is a multi-page editor where each page represents a concept of an SCA application (general information, components, services, references, wires...).
In terms of usability and simplicity, it can be seen as at an intermediate level between the SCA XML editor and the SCA Composite Designer.

Each page allows to visualize and edit the elements and attributes relative to the page concept.
In general, pages are made of two parts: a list on the left, and sub-elements and attributes of the the list elements on the right.
However, some pages are more complex, like the component page, where you have to select which sub-elements you want to edit. This is achieved through an action bar.

This editor aims at covering all the aspects of SCA.
In particular, it will bring some useful help to use component types, constraining types, policies, intents, complex properties and composite inclusions. This will be achieved by overview mechanisms and embedded widget editors.


[edit] Screenshots

ScaFormEditorOverviewPage.gif
Overview of the SCA Form Editor


ScaFormEditorComponentOverviewPage.gif
Component page of the SCA Form Editor


ScaFormEditorComponentServicePage.gif
Edit the services of an SCA component


ScaFormEditorComponentReferencePage.gif
Edit the references of an SCA component


ScaFormEditorServicesPage.gif
Edit the services of an SCA composite


ScaFormEditorIncludesPage.gif
The SCA Resource Explorer in action to manage composite inclusions


ScaFormEditorPoliciesIntentsPage.gif
Define policies and intents for SCA elements


ScaFormEditorSourcePage.gif
The source page


[edit] Features

Here are the main features expected for this editor.


Short-term (before Galileo):

  • Web-form interface to edit SCA composites. Done
  • Synchronisation with the SCA Composite XML Editor. Done
  • Edit all the elements of a composite. Partially done
  • Visualize elements as lists with filtering by name. Done
  • Simple vs. Expert mode to edit wires (there are three ways of wiring). Delayed
  • Edit complex properties. Delayed
  • Browse and visualize other SCA composites for inclusion. Done
  • Browse and visualize SCA constraining types. Partially done
  • Browse and visualize SCA component types. Done
  • Edit basic implementations, bindings and interfaces. Delayed


Mid-term and long-term (after Galileo):

  • Edit constraining types and component types.
  • Refactoring capabilities (e.g. rename a component service renames also the wire attributes using it). Done
  • Browse and visualize policies and intents.
  • Display validation error and warning markers in the editor.
  • Edit implementations, bindings and interfaces specified in the preference page for XML-based editors.
  • SCA Composite analysis (find unused dependencies, find cycles in dependencies...).
  • Handle constraints set up by component types and constraining types when editing.


[edit] Technical Information

This editor uses Eclipse Forms for the graphical part, and the WTP XML model as the underlying model.