Research Article

Graph Drawing and Analysis Library and Its Domain-Specific Language for Graphs’ Layout Specifications

Listing 10

JAVA code corresponding to the layout specification from Listing 9.
List<AestheticCriteria> criteria = new  ArrayList<AestheticCriteria>();
criteria.add(AestheticCriteria.PLANAR);
criteria.add(AestheticCriteria.SYMMETRIC);
criteria.add(AestheticCriteria.UNIFORM_FLOW);
LayoutAlgorithms algorithm = LayoutPicker.pickAlgorithm(graph, criteria)
  ;
GraphLayoutPropertieslayoutProperties = DefaultGraphLayoutProperties.
         getDefaultLayoutProperties(algorithm, graph);
Layouter<GraphVertex, GraphEdge> layouter = new  Layouter<>(
         vertices, edges, algorithm, layoutProperties);
Drawing<GraphVertex, GraphEdge> drawing = layouter.layout();