Skip to content
 
 

Repository files navigation

Gentleman

Build Status

Gentleman is a lightweight web-based projectional editor generator.
Gentleman aims to to close the gap between models and domain experts.

Concept defintion Projection definition
Concept definition screenshot Projection definition screenshot

Features

  • Platform agnostic: Gentleman target the web (no installation required)
  • Support textual and tabular notations and multimedia content
  • Projections are defined with specialized UI elements for layouts and fields
  • Integration with Ecore: Define an Ecore model and use it with Gentleman projections

Workflow

Metamodelling

The metamodelling workflow is reserved for the creation of concepts and projections.

Required scripts: gentleman.mod.js + gentleman.app.js

Modelling

The modelling workflow is reserved for the creation of concept instances using a projection ensemble.

Required scripts: gentleman.app.js

Integration

Gentleman can be added to any web application in 2 steps:

  1. Add the required scripts to your page
  2. Decorate an HTML Tag OR Dynamically create an instance

Decorate an HTML Tag

<html>
    <body>
        ...
        <div data-gentleman="editor"></div>
        ...
        <script src="gentleman.mod.js"></script>  <!-- required for << metamodelling workflow >> -->
        <script src="gentleman.app.js"></script>
    </body>
</html>

Dynamically create an instance

const options = {
    concept: null,
    projection: null, 
    config: null, 
    handlers: null
};

let editor = Gentleman.createEditor();
editor.init(options)

Demonstration

Take a look at the demonstration (MODELS 2020) and see the tool in action.

⭐⭐⭐ Play with Gentleman ⭐⭐⭐

Documentation

Installation

Building the Code

To build the code, follow these steps.

  1. Ensure that NodeJS is installed. This provides the platform on which the build tooling runs.
  2. From the project folder, execute the following command to install the dependencies
$ npm install

Development

When working on the code, execute the following command

$ npm run start

This will start a development server (webpack-dev-server) that provides live reloading.

Production

To deploy the code or test in a production environment, follow these steps.

  1. Update the build file with newly created css files
  2. From the project folder, execute the following command to build the code for production
$ npm run build

Publication

[1] L-E Lafontant, E. Syriani. Gentleman: a light-weight web-based projectional editor generator PDF

Distribution

This distribution contains the following files and folders:

  • src: the source code
  • dist: the distributed library
  • docs: the app documentation
  • assets: contains static files

License

The source code is licensed under a GNU GENERAL PUBLIC LICENSE 3 GNU GPL v3

About

Gentleman is a web-based projectional editor generator. It allows you to express and interact with your DSL.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages