With the addition of Neo4j, Hackolade introduced a new Graph Diagram view with circular node labels.  Each node label contains 5 control buttons, and each relationship type line has 2 control buttons.  Depending on the database, nodes are also known as vertex (vertices), while relationships may also be known as edges.

Since version 3.5.4, we implemented force-directed layout algorithms with spring-like attractive forces, see this example.  The controls are details below

1. Node label controls

Since version 3.5.0, the node label controls only appear when you hover the mouse pointer on the node label circle.

1.1 Display node label properties box

This icon lets you toggle the properties for the selected node label.

1.2 Create new relationship type

Use this icon to activate the creation of a relationship type, originating from this node label.  The next node label will be target of the relationship: if you select the same node label, it will create a recursive relationship, otherwise you should select another node label.  

Since version 3.5.0 you may also create a relationship type line plus a new target node label in one single operation, by clicking anywhere in the workspace except on a node label.

1.3 Change size of node label circle

This icon toggles the display of a circle size picker:

If you will want to apply a new size to all node labels in the model, check the box prior to choosing the new size.

1.4 Change color of node label circle

This icon toggles the display of a color picker:

If you will want to apply a new color to all node labels in the model, check the box prior to choosing the new color.

1.5 Pin node in place (only when force-directed layout is enabled)

 This icon allows you to pin in place the node label.  It will not move when other nodes are dragged, using the force-directed layout.

1.6 Create a node label subclass  

For a given node label with its properties, there may be a need to declare additional node labels.  These sub-nodes are a business-driven representation, and do not result in physical storage impacts.  They are not forward-engineered, and cannot be inferred during reverse-engineering.  Also, sub-nodes do have any properties.

You may edit the edge label in the properties pane of the sub-node:

2. Relationship type line controls

Starting with version 3.5.0, you may toggle between 2 positions for the relationship line name: horizontal, or along the line.  You may also toggle the relationship line name ON or OFF.

2.1 Change relationship type line thickness

This icon toggles the display of a line thickness picker

If you will want to apply a new thickness to all relationship types in the model, check the box prior to choosing the new thickness.

2.2 Display relationship type properties box

This icon toggles the display of the properties for the selected relationship type

2.3 Reverse relationship

This icon reverses the direction of the relationship type.  For recursive relationships, this control allows to toggle between 2 modes: a loop or a duplicate node label:


3. View controls

Additional controls are available in the toolbar (and also in the View menu):

- Toggle force-directed layout

- Toggle display of relationship type name

- Show relationship type name along the line vs always horizontal.

- Toggle display of properties boxes.  Once all boxes are displayed, you may individually hide selected boxes.  In order to bring a box to the front, individually hide it then redisplay.

4. Force-directed layout

A force-directed layout tends to arrange nodes in such a way that highly connected nodes are placed more to the center of the visualization, whereas less connected ones are placed in the periphery.  It consists of 3 different forces: edges act as springs, while nodes repel each other, and drag forces ensure that nodes settle.  The forces are interactively applied, resulting in a fluid animation that dynamically positions the nodes. See example here.

Beside the ability to move shapes as seen in the example, you have several additional controls:

a) you may pin selected nodes so they are not affected by the force-directed layout.  This is done by hovering the mouse cursor over the node label and clicking the pin icon

b) you may move a single node label (without the others moving as a result of the forced-directed layout) by holding the shift key while selecting and moving the node label.

c) you may adjust the length of the relationship lines with a slider that appears when you hove the toolbar button