Graph shapes

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


Node label controls

Graph node label

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

Display node label properties box

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


Create new relationship type

Graph create relationship type icon 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.


Change size of node label circle

Graph change size of node label iconThis icon toggles the display of a circle size picker:


Graph node label size palette

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.


Change color of node label circle

Graph change color of node label icon This icon toggles the display of a color picker:

Graph node label color palette


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.


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

Graph node label pin  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.


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.


Graph subclasses


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

Graph subclass label




Relationship type line controls


Graph relationship type


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.


Change relationship type line thickness

Graph relationship line thickness icon This icon toggles the display of a line thickness picker



Graph relationship line thickness palette

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.


Display relationship type properties box

Graph relationship type property box icon This icon toggles the display of the properties for the selected relationship type


Graph relationship properties


Reverse relationship

Graph relationship type reverse direction ico 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:


Graph recursive loop and  Graph recursive node label



View controls

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

Graph view controls toolbar icons


- 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.


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 Graph node label pin

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

Graph shapes - toggle force-directed layout