SCA/Components/SCA Form Editor
Project - Subproject: Eclipse STP - SCA Composite Tools
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.
Contributor: EBM WebSourcing.
SCA Composite Textual Editor
As firstly proposed here previously (not by EBM WebSourcing), we plan to extend the XML Editor of the WTP Eclipse project. 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.
- 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.
- 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
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. 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.
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.
- 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.
TODO: provide some screenshots later.