private void addExecutionVertices( Map<ManagementGroupVertex, SWTGroupVertex> groupMap, ManagementGraph managementGraph, GraphVisualizationData visualizationData) { ManagementGraphIterator iterator = new ManagementGraphIterator(managementGraph, true); final Map<ManagementVertex, SWTVertex> vertexMap = new HashMap<ManagementVertex, SWTVertex>(); final Map<ManagementGate, SWTGate> gateMap = new HashMap<ManagementGate, SWTGate>(); while (iterator.hasNext()) { final ManagementVertex mv = iterator.next(); final SWTGroupVertex parent = groupMap.get(mv.getGroupVertex()); final SWTVertex visualVertex = new SWTVertex(parent, mv); vertexMap.put(mv, visualVertex); for (int i = 0; i < mv.getNumberOfOutputGates(); i++) { final ManagementGate outputGate = mv.getOutputGate(i); final SWTGate visualGate = new SWTGate(visualVertex, outputGate); gateMap.put(outputGate, visualGate); } for (int i = 0; i < mv.getNumberOfInputGates(); i++) { final ManagementGate inputGate = mv.getInputGate(i); final SWTGate visualGate = new SWTGate(visualVertex, inputGate); gateMap.put(inputGate, visualGate); } } iterator = new ManagementGraphIterator(managementGraph, true); // Setup connections while (iterator.hasNext()) { final ManagementVertex source = iterator.next(); final SWTVertex visualSource = vertexMap.get(source); for (int i = 0; i < source.getNumberOfOutputGates(); i++) { final ManagementGate sourceGate = source.getOutputGate(i); final SWTGate visualSourceGate = gateMap.get(sourceGate); for (int j = 0; j < sourceGate.getNumberOfForwardEdges(); j++) { final ManagementEdge forwardEdge = sourceGate.getForwardEdge(j); final SWTVertex visualTarget = vertexMap.get(forwardEdge.getTarget().getVertex()); final SWTGate visualTargetGate = gateMap.get(forwardEdge.getTarget()); visualSource.connectTo(visualTarget); visualSourceGate.connectTo(visualTargetGate); } } } }