Perforce JViews Diagrammer Code Example: Hierarchical Constraints
Description
This sample shows how to use Hierarchical Layout algorithm in the Diagrammer. In particular, it shows how how constraints can be specified in CSS and in a separate constraint file.
How to Use the Code Example
- The Hierarchical Layout algorithm supports the specification of constraints. For instance, you can specify which nodes must be at the same level, and which node must be to the left or right of another node.
- This application shows a diagrammer component that displays a graph rendererd from an XML file.
- The selector on top allows to choose how constraints are provided: either no constraints, or the constraints are loaded from a CSS file, or the constraints are loaded from an URL specifying a separate constraint file.
- The application also has interactor buttons on the top side: select, zoom, unzoom, zoom box, zoom level 1, zoom to show all (fit to contents) and pan.
- On the bottom, there are two buttons: Random (performs a Random Layout) and Layout (uses the Hierarchical Layout algorithm). Layout is only performed when you press these buttons.
How to Run the Code Example as an Application
This code example can
be run as an application.
The installation directory contains
an executable JAR file,
diagrammer-hierconstraints.jar
,
that allows you to execute the code example with a double click from a
file browser. Note that if you are using Internet Explorer, you can
open the installation directory
and execute the JAR file from the browser. This
technique may not work in other Web browsers.
Alternatively, you
can run the code example application from the command line.
First check that the Ant utility is properly configured. If not, see the
instructions on how to configure Ant for Perforce JViews.
Then, go to the installation directory
of the code example and type:
ant run
Topics Covered
- Diagrammer
- Graph Layout
- Hierarchical Layout
- Hierarchical Layout Constraints
Installation Directory
The Hierarchical Constraints code example is installed here.
Classes Involved
- ilog.views.graphlayout.hierarchical.IlvHierarchicalLayout
- ilog.views.graphlayout.random.IlvRandomLayout
- ilog.views.IlvGrapher
- ilog.views.IlvManagerView