Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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

< SCA
 
(9 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.
  
__TOC__
 
  
==SCA Composite Textual Editor==
+
== Screenshots ==
  
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.
+
<center>
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:
+
[[Image:ScaFormEditorOverviewPage.gif]]<br />
 +
<u>Overview of the SCA Form Editor</u>
 +
</center>
  
* Register composite files as an XML content type.
 
* Register sca.xsd to schema validator.
 
  
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.
+
<center>
 +
[[Image:ScaFormEditorComponentOverviewPage.gif]]<br />
 +
<u>Component page of the SCA Form Editor</u>
 +
</center>
  
* 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). Hence, we will support auto-completion for the values of:
 
** service promotion (using the composite and the included composites);
 
** reference promotion;
 
** wire targets and wire sources;
 
** reference targets;
 
** include names (by browsing the project in the workspace);
 
* Handle recursive inclusions (a composite which includes composites which include...).
 
* Customize the outline view, by adding SCA icons and providing filters (show components, services, references, properties...) and reordering actions (order alphabetically, hierarchically...).
 
* Add a builder to validate the composite file with the EMF meta-model of SCA. This will improve the as-you-type validation since the meta-model embeds additional validation rules which are not in the XML schemas.
 
* Synchronize the underlying model of the editor with the EMF SCA model used by the SCA Composite Designer. This will be the key point to allow a synchronization between this editor and the SCA Composite Designer.
 
  
==SCA Composite Form Editor==
+
<center>
 +
[[Image:ScaFormEditorComponentServicePage.gif]]<br />
 +
<u>Edit the services of an SCA component</u>
 +
</center>
  
  
The second editor is a form editor (or wizard editor), such as the PDE Manifest editor.
+
<center>
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...).
+
[[Image:ScaFormEditorComponentReferencePage.gif]]<br />
 +
<u>Edit the references of an SCA component</u>
 +
</center>
  
We can see this editor as an intermediate level between the text editor and the graphical designer.
 
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 ?).
 
  
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.
+
<center>
 +
[[Image:ScaFormEditorServicesPage.gif]]<br />
 +
<u>Edit the services of an SCA composite</u>
 +
</center>
  
In terms of design and code, this is what we plan to do for the form editor:
 
  
* Design and create the multi-page editor using Eclipse forms.
+
<center>
* Embed the textual editor (see above) in this editor.
+
[[Image:ScaFormEditorIncludesPage.gif]]<br />
* Provide an associated outline view.
+
<u>The SCA Resource Explorer in action to manage composite inclusions</u>
* Reuse the parser of the text editor and / or reuse the EMF model to validate user inputs.
+
</center>
  
A first overview of this editor: [[Image:ScaFormEditor_References.jpg||100px]]
 
  
TODO: provide some screenshots later.
+
<center>
 +
[[Image:ScaFormEditorPoliciesIntentsPage.gif]]<br />
 +
<u>Define policies and intents for SCA elements</u>
 +
</center>
 +
 
 +
 
 +
<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

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.


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


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.


Technical Information

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

Copyright © Eclipse Foundation, Inc. All Rights Reserved.