MMEdit - A EMF/ECore metamodel editor based on Concrete

MMEdit is an example of a Concrete based editor. Concrete is a lightweight, web-based model editor which can be configured for different DSLs (Domain Specific Languages).

MMEdit is an editor for metamodels compatible with the Eclipse Modelling Framework (EMF, www.eclipse.org/modeling/emf). In other words, it can edit models which are instances of the ECore meta-metamodel and it can read and write the XMI serialization used by the original Eclipse based metamodel editor. Thus metamodels can be exchanged between both programs in either direction.

Being a Concrete based editor it features:

  • Keyboard based editing with auto completion

  • Rich graphical style with tables, boxes and icons. Use the preferences dialog to switch between the predefined layouts.

In addition to the EMF compatible .ecore XML files, MMEdit can edit ECore metamodels serialized in the RGen Ruby representation. This way it greatly improves the way RGen metamodels can be created and maintained.

MMEdit is only beta (if not alpha), so be sure to create a backup of the metamodels you are going to edit.

Download

You can get the latest version from github.

Installation

MMEdit can be installed as a Ruby gem:

> gem install mmedit

It requires Concrete, RGen and the little “andand” gem which should be installed automatically. Otherwise you can install them using:

> gem install andand rgen concrete

The Ruby part of Concrete should work with any Ruby version starting with Ruby 1.8.6. The Ruby installers can be downloaded from:

ruby-lang.org

Documentation

Start MMEdit and press the “Browse Help” toolbar button to show the Concrete User’s Guide.

Examples

There are two example metamodel files which come with MMEdit. One is serialized using XMI, the other is serialized in the RGen metamodel format.

  • example/statemachine_metamodel.ecore

  • example/statemachine_metamodel.rb

In order to view and edit the metamodels just pass the respective metamodel file to MMEdit:

> mmedit example/statemachine_metamodel.ecore

or

> mmedit example/statemachine_metamodel.rb

You can also pass both metamodel files to mmedit at the same time. However this will lead to errors due to duplicate identifiers since both files contain the same metamodels.

Once MMEdit has started, point your browser to localhost:1234 to start editing. For best results use an up-to-date version of Chrome or Firefox.

License

MMEdit is licensed under the terms of the MIT license, see the included MIT-LICENSE file.