
WE ARE MOVING
- HierarchicalVisualizations => https://github.com/moosetechnology/HierarchicalVisualizations
This project provide a small API to build hierarchical visualization using the Pharo programming language. HierarchicalVisualizations uses Roassal.
Execute the following code snippet in a Playground:
[ Metacellonewbaseline:'HierarchicalVisualizations';
repository:'github://ObjectProfile/HierarchicalVisualizations:main';
load ] on:MCMergeOrLoadWarningdo: [:warning | warning load ]Consider the following code snippet:
node1 :=HNodenewname:'Node1'.
node1 color:Color blue translucent.
node2 :=HNodenewname:'Node2'.
node2 color:Color green lighter lighter.
subnode1 :=HNodenewname:'Sub1'.
subnode2 :=HNodenewname:'Sub2'.
subnode3 :=HNodenewname:'Sub3'.
subnode4 :=HNodenewname:'Sub4'.
node1 addAll: {subnode1. subnode2}.
node2 addAll: {subnode3. subnode4}.
rootNode :=HNodenewname:'Root'.
rootNode addAll: { node1. node2 }.
subnode3 dependenciesToNodes: { subnode1. subnode2 }.
rootNode open.The code above defines four nodes in total, structured as a hierarchy. Executing the code should shows:

Node can be collapsed or expanded:
New menu items can be defined by creating a subclass of HAbstractMenuItem. The package Hierarchical-Roassal3-Menu contains many examples on how to define a new menu item.
Roassal's layouts may be set in a HNode, as for example:
node1 :=HNodenewname:'Node1'.
node1 layout:RSVerticalLineLayoutnew.
node2 :=HNodenewname:'Node2'.
subnode1 :=HNodenewname:'Sub1'.
subnode2 :=HNodenewname:'Sub2'.
subnode3 :=HNodenewname:'Sub3'.
subnode4 :=HNodenewname:'Sub4'.
node1 addAll: {subnode1. subnode2}.
node2 addAll: {subnode3. subnode4}.
rootNode :=HNodenewname:'Root'.
rootNode addAll: { node1. node2 }.
subnode3 dependenciesToNodes: { subnode1. subnode2 }.
rootNode add:HNodenew.
rootNode open.
