Development of forms editors based on Ecore metamodels

  • 1,796 views
Uploaded on

 

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,796
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1.
    • Mario Cervera Úbeda – Prodevelop
    • (mcervera@prodevelop.es)
    • José Manuel García Valladolid – Indra
    • ( jmgarciav@indra.es)
    Development of forms editors based on Ecore metamodels
  • 2. Contents
    • Introduction
    • Technology used
    • Framework structure
    • Additional features
    • Demo
    • Future of the framework
    • Conclusions
  • 3. Introduction
    • FEFEM (Forms Editors Framework for Ecore Models) is a framework whose main goal is to make easier the development of form-based editors which manipulate models based on Ecore metamodels.
  • 4. Introduction
    • FEFEM facilitates this task by implementing a series of patterns that are usually found when developing form-based editors.
        • Editors core: contributor, pages, ...
        • GUI: widgets, composites, ...
    • Forms editor development = pattern composition
  • 5. Introduction
    • Example of pattern: The need to show and edit in a textbox the value of a property of type String.
  • 6. Introduction
    • Example (cont): How to use the composite in your editor?
      • Creating a composite that subclasses EMFPropertyStringComposite and implementing its abstract methods.
  • 7. Introduction
    • Pattern composition
  • 8. Technology used
    • EMF (Eclipse Modeling Framework)
      • FEFEM's purpose is to facilitate the development of forms editors that manipulate EMF models.
      • http://www.eclipse.org/modeling/emf/
  • 9. Technology used
    • SWT (Standard Widget Toolkit) and JFace
      • FEFEM's composites have been created using the widgets that SWT and JFace provide.
      • http://www.eclipse.org/swt/
  • 10. Technology used
    • Databinding
      • Databinding is used to bind widgets and model properties so that their states are synchronized and to allow the user to modify the properties through the widgets.
        • Widgets
          • org.eclipse.jface.databinding.swt
        • Model
          • org.eclipse.emf.databinding
          • org.eclipse.emf.databinding.edit
  • 11. Framework Structure
    • FEFEM's core
      • FEFEM defines four basic classes that must be extended to create a new form-based editor.
        • FEFEMEditor
        • FEFEMEditorContributor
        • FEFEMEditorPlugin
        • FEFEMPage
  • 12. Framework Structure
    • FEFEM's core (cont)
      • FEFEMEditor
        • This class contains the editing domain and the resource associated to the editor.
        • The class extending FEFEMEditor must be set as the property class of the new editor added in the extension point org.eclipse.ui.editors.
  • 13. Framework Structure
    • FEFEM's core (cont)
      • FEFEMEditorContributor
        • This class takes on the installation / uninstallation of global actions.
        • The class extending FEFEMEditorContributor must be set as the property contributorClass of the new editor added in the extension point org.eclipse.ui.editors.
  • 14. Framework Structure
    • FEFEM's core (cont)
      • FEFEMEditorPlugin
        • This class represents the whole plug-in. By extending this class, the plug-in gets the most common eclipse plug-in capabilities.
        • The class extending FEFEMEditorPlugin must be set as the property Activator in the tab Overview of the file MANIFEST.MF
  • 15. Framework Structure
    • FEFEM's core (cont)
      • FEFEMPage
        • Contains the functionality that every page of a form-based editor must have.
        • Every form-based editor must have one class extending FEFEMPage for each page that it has.
  • 16. Framework Structure
    • Composites to manage properties
      • EMFPropertyBooleanComposite
        • Management of a property of type Boolean of an EObject.
  • 17. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyStringComposite
        • Management of a property of type String of an EObject.
  • 18. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyStringTextComposite
        • Management of a property of type String of an EObject through a multiline text box.
  • 19. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyStringStyledTextComposite
        • Management of a property of type String of an EObject through a formatable multiline text box.
  • 20. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyEEnumComposite
        • Management of a property of type Enumeration of an EObject.
  • 21. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyMultipleEEnumComposite
        • Management of a property of type Enumeration of an EObject with multiplicity higher than one.
  • 22. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyEReferenceComposite
        • Management of a property of type EReference of an EObject.
  • 23. Framework Structure
    • Composites to manage properties (cont)
      • EMFPropertyMultipleEReferenceComposite
        • Management of a property of type EReference of an EObject with multiplicity higher than one.
  • 24. Framework Structure
    • Composites to manage objects
      • EMFEObjectComposite
        • Management of an EObject.
  • 25. Framework Structure
    • Composites to manage objects (cont)
      • EMFContainedCollectionEditionComposite
        • Edition of collections of EObjects
  • 26. Framework Structure
    • Composites to manage objects (cont)
      • EMFHierarchyEditionComposite
        • Edition of hierarchical collections of EObjects
  • 27. Additional features
    • Data Input Validation I
      • Databinding: MVC Pattern
      • Changes are commited to both ends following an UpdateValueStrategy managed by the Controller (Databinding core).
  • 28. Additional features
    • Data Input Validation II
      • Every FEFEM Composite can customize its UpdateValueStrategy by giving to it:
        • A set of custom data Validators (IValidators) and/or data Convertors (Iconvertor).
        • The moment when those validations and conversions must be applied: before/after, read/write, to/from, source/target.
  • 29. Additional features
    • Internationalization
      • NLS-Enabled editor plugin using Eclipse String Externalization tools.
      • Distribute the language specific traslation files as a Eclipse plug-in Fragment project.
  • 30. Additional features
    • Master / detail
      • FEFEM composites can be either master or detail, depending on whether you pass a Viewer or an EObject as parameter in the constructor.
      • Supported by databinding.
        • emf.databinding / jface.databinding.viewers
  • 31. Demo
  • 32. Future of the framework
    • Improvement / creation of composites:
      • Image and binary data.
      • Usability.
      • Support for more model patterns.
    • Integration with EMF Validation framework: model constraints would be managed by forms editors.
    • Make easier the management of FEFEM composites in interface layout (UI Designer).
  • 33. Conclusions
    • FEFEM provides a series of classes that can be used to make the development of form-based editors much faster than it would be if the editors were developed from scratch.
    • These classes implement common patterns that have been found developing this kind of editors.
    • The framework is still evolving.
  • 34.
    • Mario Cervera Úbeda – Prodevelop
    • (mcervera@prodevelop.es)
    • José Manuel García Valladolid – Indra
    • ( jmgarciav@indra.es)
    Development of forms editors based on Ecore metamodels