Getting started
Requirement
Gentleman is a modelling tool that combines concepts (model structure) and projections (interface) to create a personnalized dynamic experience for all. Every modelling activity, begins by loading the concepts and projections, stored as separate JSON-CP files, which activates the editor. The concepts will allow you that you to define your model

Metamodel
The metamodelling workflow is reserved for the creation of concepts and projections. This unique workflow has one key step: the build step where the artefacts (metamodel or projections) are generated as JSON-CP files.
Task
-
Create concepts
- Open the editor
- New or edit existing?
- 1. New concepts (from scratch): Select `[Create a metamodel]`
- 2. Edit existing: Load the saved model in the model area (on the left)
- Start metamodelling
- Build the concepts: Select `[Build]` from the floating menu
-
Create projections
- Open the editor
- New or edit existing?
- 1. New projections (from scratch): Select `[Create a projection]`
- 2. Edit existing: Load the saved model in the model area (on the left)
- Start metamodelling
- Preview the projections: Select `[Preview]` in the header
- Build the projections: Select `[Build]` in the header
When Build is selected, it validates the model and generates a metamodel or a collection of projections depending on the task, which can then be used in the modelling workflow
User interface
Gentleman adopts a minimalistic approach to its design. The UI is divided between a header which contains support elements (in [Ribbon](#ribbon)) and a body where you will play with your instances.

Header
The header's main component is the concepts found in the loaded model, ready to be instanciated - The expanded view gives you an overview of the concept structure - The `[CREATE]` button creates an instance of the conceptSettings
The settings button toggles the home page where you can change the loaded concepts and projections.Export
The export button saves the state of the model and download it so you can get back to this version later.Breadcrumbs
The editor has a navigation bar at the top of the body called Breadcrumbs, telling you the current location in an active instance.
Instances
Every concept instance created have a corresponding window with a header containing its name and a toolbar- Collapse: Toggle between collapsed and expanded window
- Maximize: Toggle between fullscreen and normal
- Close: delete the instance except for linked instances where it is simply removed

Interaction
Create an instance
Every editor exposes the concepts available for instanciation in the Ribbon concept tab. To create a new instance, select `[CREATE]` on the desired concept.
Linked instance
An instance can quickly become too crowded as you modify it. Fortunately, because the view is a composition of projections, they can each be manipulated separetely. To open part of an instance in a separate window (linked instance),
- Select an element
- Open in new window:
Ctrl + E
Note: As this is a projection window and not an actual instance, closing it will have no side effects on your values.
Navigation
Gentleman supports both mouse and keyboard navigation. With the mouse it's simply a matter of clicking on the element you want to focus on. With the keyboard you can use the arrows to access close-by elements or the `Tab` key to iterate over the elements. When the focus element has children elements, press `Enter` to focus on its children and `Esc` to exit the container.
Search and Filter
In Gentleman you can use the browser searching functionality as well as the editor's filtering tool.
- Focus on any part of the editor
- Press
Ctrl + F
- Type in the search box the name of the instance
Note: As you type, the instances' name that do not match the query will be hidden until you close the filter or change the query.
Copy/Paste
In Gentleman copy/paste works just as with any editor.
- Select source element
- Copy value:
Ctrl + C
- Select target element
- Copy value:
Ctrl + V
Note: A value is attached to a concept, not a projection. Therefore copying does not include the projection (visuals) but only the value attached to the concept.
Configuration
The editor configuration is done through a JSON file. It can be used to define elements of the Ribbon and register actions that will be made available in the floating menu.
- name (string)
- name of the editor (displayed in the header)
- concepts (array:concept)
- list of concepts available for instanciation