diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java index afb3904..c12ff85 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java @@ -38,6 +38,7 @@ private HashMap resNodeToCell; private HashMap eventChannelToCell; + private HashMap eventChannelObjNodeToCell; private HashMap cellToInterfaceNode = new HashMap<>(); private String dependencyEdgeStyle = "strokeWidth=1;strokeColor=green;movable=false"; @@ -78,6 +79,7 @@ resNodeToCell = ((PushPullSelectionStage) prevStage).getResNodeToCell(); eventChannelToCell = ((PushPullSelectionStage) prevStage).getEventChannelToCell(); + buildEventChannelObjNodeMap(prevStage); mxCell parent = (mxCell) graph.getDefaultParent(); mxCell layer = (mxCell) parent.getChildAt(DEPENDENCY_LAYER); @@ -114,6 +116,18 @@ // private //-------------------------------------------------- + private void buildEventChannelObjNodeMap(Stage prevStage) { + eventChannelObjNodeToCell = new HashMap<>(); + + for (Map.Entry entry : ((PushPullSelectionStage) prevStage).getEventChannelToCell().entrySet()) { + DataTransferChannel channel = entry.getKey(); + mxCell cell = entry.getValue(); + + EventChannelObjectNode objNode = new EventChannelObjectNode(channel); + eventChannelObjNodeToCell.put(objNode, cell); + } + } + private void clearDependencyGraphCells(mxGraph graph) { mxCell root = (mxCell) graph.getDefaultParent(); mxCell dependencyLayer = (mxCell) root.getChildAt(DEPENDENCY_LAYER); @@ -157,7 +171,8 @@ mxCell dependencyLayer = (mxCell) root.getChildAt(DEPENDENCY_LAYER); // Find top-level resource nodes and recursively copy them - for (ResourceNode resourceNode : dependencyGraph.getDataFlowGraph().getRootResourceNodes()) { + for (StatefulObjectNode statefulObjectNode : dependencyGraph.getRootStatefulObjectNodes()) { + ResourceNode resourceNode = statefulObjectNode.getResource(); mxCell oldCell = resNodeToCell.get(resourceNode); if (oldCell != null) { mxCell newCell = cloneResourceCellHierarchy(oldCell, dependencyLayer, resNodeCells); @@ -232,8 +247,8 @@ mxCell dependencyLayer = (mxCell) root.getChildAt(DEPENDENCY_LAYER); // Recursively copy the EventChannel hierarchy - for (ChannelNode channelNode : dependencyGraph.getDataFlowGraph().getRootChannelNodes()) { - DataTransferChannel channel = channelNode.getChannel(); + for (EventChannelObjectNode eventChannelNode : dependencyGraph.getEventChannelObjectNodes()) { + DataTransferChannel channel = eventChannelNode.getIOChannel(); if (channel.getInputResources().isEmpty()) { mxCell oldCell = eventChannelToCell.get(channel); if (oldCell != null && !eventChannelCells.containsKey(channel)) {