/** * layoutCombinedFragment * * @param fragmentNodeList void */ private void layoutCombinedFragment(List<NotationNode> fragmentNodeList) { if (fragmentNodeList.size() <= 0) { return; } NotationNode fragmentNode; for (int i = 0; i < fragmentNodeList.size(); i++) { fragmentNode = fragmentNodeList.get(i); if (isMoveFragment(fragmentNode)) { fragmentNode.setX(fragmentNode.getX() + (newX - oldX)); } else if (isResizeFragment(fragmentNode)) { fragmentNode.setWidth(fragmentNode.getWidth() + (newX - oldX)); if (fragmentNode.getCompartmentList().size() > 0) { List<NotationNode> list = new ArrayList<NotationNode>(); for (AbstractNode abstractNode : fragmentNode.getCompartmentList()) { ContainerNode operandNode = (ContainerNode) abstractNode; List<NotationNode> combindFragmentNodeList = SequenceUtil.getOnlyCombindFragmentNodeList(operandNode.getNodeList()); list.addAll(combindFragmentNodeList); } layoutCombinedFragment(list); } } } }
/** Move 되는 위치에 따라서 다이어그램 내의 다른 LifeLine의 위치를 조정한다. void */ private void setLifeLineLayout() { LifeLineNode lifeLineNode; LifeLineNode otherLifeLineNode; for (int i = 0; i < lifeLineNodeList.size(); i++) { lifeLineNode = (LifeLineNode) lifeLineNodeList.get(i); if (node.equals(lifeLineNode)) { for (int k = i + 1; k < lifeLineNodeList.size(); k++) { otherLifeLineNode = (LifeLineNode) lifeLineNodeList.get(k); otherLifeLineNode.setX(otherLifeLineNode.getX() + (newX - oldX)); } break; } } layoutCombinedFragment(SequenceUtil.getOnlyCombindFragmentNodeList(diagram.getNodeList())); }