Back to top
EMF.cloud

EMF.cloud - evolve your modeling tools to the web!

The Eclipse Modeling Framework in the cloud!

EMF.cloud is the umbrella project for components and technologies making the Eclipse Modeling Framework (EMF) and its benefits available in the web and cloud. This includes new web-specific frameworks, but also solutions, which allow you to reuse existing tool components based on EMF in the cloud.

Components

Theia Ecore tools

Theia Ecore tools

The GLSP-based Ecore editor integrated in the Eclipse Theia IDE provides a web-based version of the popular Ecore tools. It allows you to graphically create and modify Ecore Models using a diagram editor integrated in the web-based IDE Eclipse Theia. We are currently working on a model project creation wizard as well as work on integrating the existing EMF code generator.

The model server

The model server

The existing EMF implementation already supports loading, model manipulation, and serialization out-of-the-box. The EMF.cloud model server adds a facade on top of existing technologies to connect web-based clients. It manages the runtime state of loaded models (“shared editing domain”). It allows applying changes using a command pattern and and register for changes. Finally, it provides a Java and JavaScript REST API including multiple formats (JSON or XMI).

The 'coffee editor'

The ‘coffee editor’

The “coffee editor” is a comprehensive example of a web-based modeling tool based on EMF.cloud, including a form-based editor based on JSON Forms, a diagram based on GLSP, a textual DSL, a code generator and a graphical visualization of an analysis result using D3. The coffee editor uses the model sever for synchronizing all editors and it is embedded into the Eclipse Theia IDE

EMF-JSON Jackson mapper

EMF-JSON Jackson mapper

JSON binding for EMF models, that allows serialization and deserialization of EMF Resources in JSON. You can either change the file format to store your model instances or use the JSON serialiation to transfer model data, e.g. to a web client. The EMF-JSON mapper is used by the EMF.cloud model server, but can be used independantly, too.

Tree Editor for eclipse Theia

Tree Editor for eclipse Theia

The EMF.cloud tree editor framework allows to efficiently build data-centric editors in Eclipse Theia. The framework provides all the basic requirements out-of-the-box so you only need to implement the domain-specific part, e.g. what icons to use, how the hierarchy of the tree is derived from the data or how the detail form is layouted.

Your component!?

Your component!?

EMF.cloud is the place for new components supporting the implementation of web-based modeling tools in the cloud. If you have a solution, which would be useful for others, we are open to any contributions! If you are missing a technology for your cloud modeling use case, get our support to create it.

Projects

Graphical Language Server Platform (GLSP)

Graphical Language Server Platform (GLSP)

The Graphical Language Server Platform (GLSP) supports the development of web-based diagram editors. It transfer the advantages of the language server protocol (LSP) to graphical modeling languages. GLSP is well integrated with other EMF.cloud components, such as the model server and is used as a basis for the coffee editor and the Theia Ecore extension.

JSON Forms

JSON Forms

JSON Forms is a framework for the efficient development of form-based UIs. These allow to display and modify model instances in data-centric UIs such as trees, tables and field editors. JSON Forms is the web-version of EMF Forms. It is the basis of the tree-master-detail model editor of the coffee editor.

Coffee Editor Overview

An example web-based modeling tool using EMF.cloud technologies used for demonstration and documentation.

Coffee Editor Overview

Coffee Editor Features

Custom Theia Application Frame

Custom Theia Application Frame

The coffee editor is based on Eclipse Theia and adds a number of custom extensions to it. This includes client and server extensions. therefore, it is a good blueprint on how to create your own tool based on Eclipse Theia.

Tree/form-based property editor

Tree/form-based property editor

The coffee editor includes a form-based editor with a tree showing the hierarchy of the model instances. This allows to efficiently browse the model and enter data. The form editor is based on JSON Forms. Double click the file “superbrewer3000.coffee” in the coffee editor to try out the editor!

Diagram editor

Diagram editor

The coffee editor provides a graphical diagram editor. The example editor allows specifying the behavior of a coffee maching using a flow chart like notation. The diagram editor is based on the graphical language server platform (Eclipse GLSP). Double click the file “superbrewer3000.coffeenotation” in the coffee editor to try out the diagram editor!

Textual DSL

Textual DSL

The coffee editor integrates a textual DSL. A corresponding code editor supports syntaxt highlighting and auto completion. The DSL editor is based on Xtext. Double click the file “superbrewer3000.wfconfig” in the coffee editor to try out the textual DSl!

Model Analysis and Chart Visualization

Model Analysis and Chart Visualization

The coffee editor provides an example model analysis, the result is visualized as a “sun burst” chart. The analysis is an external component written in Kotlin, the chart is based on D3. Select the file “superbrewer3000.wfconfig” in the coffee editor, press F1, type “Analyze workflow model” and hit enter to see the model analysis in action!

Code Generator

Code Generator

The coffee editor allows generating example code based on the current model. The code generator itself is written using Xtend. Right click the file “superbrewer3000.coffee” in the coffee editor and select “Generate Workflow code”. Browse the generated code in the “src” and “src-gen” folder, the coffee editor also provides extensive language support for Java!