Relation map is a type of note which visualizes notes and their relations.

## Interaction

- To create a new note and add it to the board, press the plus button in the Floating buttons.
  - Afterwards, click anywhere on the map to place it there.
  - The note will be placed as a sub-child of the map.
- An existing note can also be dragged from the Note Tree. It will be placed at the position it's dragged on.
  - Multiple notes can also be dragged via Multiple selection. The notes will be positioned near the dragged position without overlapping.
  - The dragged note can be a sub-child of the map, or it can be at any arbitrary position.
- To create a relationship, hold the mouse on the box on the right of a note and then:
  - Drag it over another note to create a relationship pointing from the first note to the second one.
  - Drag over the same note to create a self-referencing relationship (represented as a loop).
  - Once dragged, enter the name of the relationship to create. To cancel, simply dismiss the dialog or press `Esc`.
- To open a note, either click on the note (opening it in the current view) or use the right click menu to open in a new tab.
- To edit the title of a note or to delete it (either from the map, or delete it completely), right click the note.
- To delete a relationship, right click it and select the corresponding option.

## Development process demo

This is a basic example how you can create simple diagram using relation maps:

And this is how you can create it:

We start completely from scratch by first creating new note called "Development process" and changing its type to "Relation map". After that we create new notes one by one and place them by clicking into the map. We also drag relationsbetween notes and name them. That's all!

Items on the map - "Specification", "Development", "Testing" and "Demo" are actually notes which have been created under "Development process" note - you can click on them and write some content. Connections between notes are called "relations".

## Family demo

This is more complicated demo using some advanced concepts. Resulting diagram is here:

This is how you get to it:

There are several steps here:

- we start with empty relation map and two existing notes representing Prince Philip and Queen Elizabeth II. These two notes already have `isPartnerOf` relationsdefined.
  - There are actually two "inverse" relations (one from Philip to Elizabeth and one from Elizabeth to Philip)
- we drag both notes to relation map and place to suitable position. Notice how the existing `isPartnerOf` relations are displayed.
- now we create new note - we name it "Prince Charles" and place it on the relation map by clicking on the desired position. The note is by default created under the relation map note (visible in the note tree on the left).
- we create two new relations `isChildOf` targeting both Philip and Elizabeth
  - now there's something unexpected - we can also see the relation to display another `hasChild` relation. This is because there's a relation definition which puts `isChildOf`as an "inverse" relation of `hasChildOf` (and vice versa) and thus it is created automatically.
- we create another note for Princess Diana and create `isPartnerOf` relation from Charles. Again notice how the relation has arrows both ways - this is because `isPartnerOf` definition specifies its inverse relation as again "isPartnerOf" so the opposite relation is created automatically.
- as the last step we pan & zoom the map to fit better to window dimensions.

Relation definitions mentioned above come from "Person template" note which is assigned to any child of "My Family Tree" relation note. You can play with the whole thing in the demo notes.

## Details

You can specify which relations should be displayed with comma delimited names of relations in `displayRelations` label.

Alternatively, you can specify comma delimited list of relation names in `hideRelations` which will display all relations, except for the ones defined in the label.

## See also

- Note Map is a similar concept.