diff --git a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java index 5a25d2d..662e6be 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java +++ b/AlgebraicDataflowArchitectureModel/src/application/editor/stages/DependencyModelingStage.java @@ -189,8 +189,7 @@ mxCell oldChild = (mxCell) oldCell.getChildAt(i); mxCell newChild = cloneResourceCellHierarchy(oldChild, newCell, resNodeCells); - //拡張DTRAMに対する依存関係の追加を行う用 - insertTopAnchorEdge(newParent, newCell, newChild); + InsertDependencyEdgeResourceCellHierarchy(newParent, newCell, newChild, i); } return newCell; @@ -209,18 +208,32 @@ return null; } - private void insertTopAnchorEdge(mxCell parentLayer, mxCell outerCell, mxCell innerCell) { + private void InsertDependencyEdgeResourceCellHierarchy(mxCell parentLayer, mxCell outerCell, mxCell innerCell, int index) { mxGeometry gOuter = outerCell.getGeometry(); mxGeometry gInner = innerCell.getGeometry(); if (gOuter == null || gInner == null) return; - mxGeometry geoSrc = new mxGeometry(0.5, 0.0, 0, 0); - geoSrc.setRelative(true); + String exitDir; + String entryDir; - mxGeometry geoDst = new mxGeometry(0.5, 0.0, 0, 0); - geoDst.setRelative(true); + if (index == 0) { + exitDir = "exitX=0.7;exitY=0;"; + entryDir = "entryX=0.5;entryY=0;"; + } + else { + exitDir = "exitX=1;exitY=0;"; + entryDir = "entryX=1;entryY=0;"; + } - graph.insertEdge(parentLayer, null, null, outerCell, innerCell, dependencyEdgeStyle); + mxCell edge = (mxCell) graph.insertEdge( + parentLayer, null, null, + outerCell, innerCell, + dependencyEdgeStyle + ";" + exitDir + entryDir + ); + + mxGeometry eGeo = new mxGeometry(); + eGeo.setRelative(true); + edge.setGeometry(eGeo); } private Map createEventChannelCells() {