// node 2 and node 5 should be at the same level SameLevelConstraint { firstNode: node2 secondNode: node5 } // node 5 should be at a lower level than node 9, with priority 50 RelativeLevelConstraint { lowerSubject: { node5 } higherSubject: { node9 } priority: 50.0 } // node 10 should be at a lower level than node 9, with priority 50 RelativeLevelConstraint { lowerSubject: { node10 } higherSubject: { node9 } priority: 50.0 } // node 11 and 12 should be at level range 3-4 LevelRangeConstraint { subject: { node11, node12 } minLevel: 3 maxLevel: 4 } // node 13, 14 and 15 should be in a group at maximum 2 levels GroupSpreadConstraint { group: { node13, node14, node15 } spreadSize: 1 } // node 11, 13 and 3 should be at the same level. As an alternative to // the same-level constraint, there is the group-spread // constraint. GroupSpreadConstraint { group: { node3, node11, node13 } spreadSize: 0 } // node 16 should be at the highest level ExtremityConstraint { node: node16 side: SOUTH } // node 11 should be close to node 3 SideBySideConstraint { group: { node3, node11 } priority: 100.0 } // node 2 should be to the right of node 5 RelativePositionConstraint { lowerSubject: { node5 } higherSubject: { node2 } priority: 50.0 }