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).
- Customize the outline view, by adding SCA / Eclipse icons and providing filters and reordering actions.
- 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.
- Using the synchronization with the EMF model...
- 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.
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.