t.start();
}
for (Cluster c : cluster) {
ClusterNode n = clusterNodes.get(c);
subManager.doLayout(new LayoutGraph(n.getSubEdges(), n.getSubNodes()), clusterInputSlotSet.get(c), clusterOutputSlotSet.get(c), new HashSet<Link>());
n.updateSize();
}
Set<Vertex> roots = new LayoutGraph(interClusterEdges).findRootVertices();
for (Vertex v : roots) {
assert v instanceof ClusterNode;
((ClusterNode) v).setRoot(true);
}
manager.doLayout(new LayoutGraph(clusterEdges, clusterNodeSet), new HashSet<Vertex>(), new HashSet<Vertex>(), interClusterEdges);
for (Cluster c : cluster) {
ClusterNode n = clusterNodes.get(c);
c.setBounds(new Rectangle(n.getPosition(), n.getSize()));
}