[Jiemamy-notify:1654] commit [2853]

Zurück zum Archiv-Index

svnno****@sourc***** svnno****@sourc*****
2009年 3月 9日 (月) 21:58:03 JST


Revision: 2853
          http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2853
Author:   daisuke_m
Date:     2009-03-09 21:58:03 +0900 (Mon, 09 Mar 2009)

Log Message:
-----------


Modified Paths:
--------------
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/AutoLayoutAction.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/ChangeNodeBackgroundColorAction.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/AbstractMovePositionCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeColorCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeConstraintCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateBendpointCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateConnectionCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DeleteBendpointCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DirectEditNodeCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/MoveBendpointCommand.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmBendpointEditPolicy.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmGraphicalNodeEditPolicy.java
    vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmLayoutEditPolicy.java


-------------- next part --------------
Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/AutoLayoutAction.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/AutoLayoutAction.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/AutoLayoutAction.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -133,7 +133,7 @@
 		new DirectedGraphLayout().visit(graph);
 		for (Object obj : graph.nodes) {
 			EntityNode node = (EntityNode) obj;
-			commands.add(new LayoutCommand(rootModel, node.model, node.x, node.y));
+			commands.add(new LayoutCommand(rootModel, Migration.DIAGRAM_INDEX, node.model, node.x, node.y));
 		}
 		getViewer().getEditDomain().getCommandStack().execute(commands);
 	}
@@ -171,6 +171,8 @@
 		
 		private RootModel rootModel;
 		
+		private final int diagramIndex;
+		
 		private NodeAdapter target;
 		
 		private int x;
@@ -188,17 +190,19 @@
 		 * インスタンスを生成する。
 		 * 
 		 * @param rootModel 
+		 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 		 * @param target 
 		 * @param x X座標
 		 * @param y Y座標
 		 */
-		public LayoutCommand(RootModel rootModel, NodeAdapter target, int x, int y) {
+		public LayoutCommand(RootModel rootModel, int diagramIndex, NodeAdapter target, int x, int y) {
 			this.rootModel = rootModel;
+			this.diagramIndex = diagramIndex;
 			this.target = target;
 			this.x = x;
 			this.y = y;
 			DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-			DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+			DiagramPresentationModel presentation = diagramPresentations.get(diagramIndex);
 			NodeProfile nodeProfile = presentation.getFigureProfiles().get(target);
 			JmRectangle boundary = nodeProfile.getBoundary();
 			oldX = boundary.x;
@@ -208,7 +212,7 @@
 		@Override
 		public void execute() {
 			DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-			DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+			DiagramPresentationModel presentation = diagramPresentations.get(diagramIndex);
 			PresentationUtil.setBoundary(presentation, target, new JmRectangle(x, y, -1, -1));
 			oldBendpoints.clear();
 			for (ConnectionAdapter conn : target.getSourceConnections()) {
@@ -222,7 +226,7 @@
 		@Override
 		public void undo() {
 			DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-			DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+			DiagramPresentationModel presentation = diagramPresentations.get(diagramIndex);
 			for (ConnectionAdapter conn : target.getSourceConnections()) {
 				ConnectionProfile connectionProfile = presentation.getConnectionProfiles().get(conn);
 				List<JmPoint> bendpoints = connectionProfile.getBendpoints();

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/ChangeNodeBackgroundColorAction.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/ChangeNodeBackgroundColorAction.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/action/ChangeNodeBackgroundColorAction.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -28,6 +28,7 @@
 import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.ColorDialog;
 
+import org.jiemamy.Migration;
 import org.jiemamy.eclipse.editor.command.ChangeNodeColorCommand;
 import org.jiemamy.eclipse.editor.editpart.diagram.AbstractJmNodeEditPart;
 import org.jiemamy.eclipse.utils.ConvertUtil;
@@ -67,7 +68,9 @@
 				for (AbstractJmNodeEditPart editPart : editParts) {
 					NodeAdapter nodeAdapter = editPart.getModel();
 					CommandStack stack = getViewer().getEditDomain().getCommandStack();
-					Command command = new ChangeNodeColorCommand(rootModel, nodeAdapter, ConvertUtil.convert(rgb));
+					Command command =
+							new ChangeNodeColorCommand(rootModel, Migration.DIAGRAM_INDEX, nodeAdapter, ConvertUtil
+								.convert(rgb));
 					
 					stack.execute(command);
 				}

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/AbstractMovePositionCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/AbstractMovePositionCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/AbstractMovePositionCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -23,7 +23,6 @@
 
 import org.eclipse.gef.commands.Command;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.editor.JiemamyEditor;
 import org.jiemamy.eclipse.utils.EditorUtil;
 import org.jiemamy.model.ConnectionProfile;
@@ -45,8 +44,20 @@
 	
 	private JmPoint shift;
 	
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private int diagramIndex;
+	
 
 	/**
+	 * インスタンスを生成する。
+	 * 
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
+	 */
+	public AbstractMovePositionCommand(int diagramIndex) {
+		this.diagramIndex = diagramIndex;
+	}
+	
+	/**
 	 * shiftを取得する。
 	 * 
 	 * @return shift
@@ -74,7 +85,7 @@
 		RootModel rootModel = editor.getRootModel();
 		
 		DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-		DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+		DiagramPresentationModel presentation = diagramPresentations.get(diagramIndex);
 		for (NodeAdapter node : presentation.getFigureProfiles().keySet()) {
 			// エンティティの移動
 			NodeProfile nodeProfile = presentation.getFigureProfiles().get(node);

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeColorCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeColorCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeColorCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -20,7 +20,6 @@
 
 import org.eclipse.gef.commands.Command;
 
-import org.jiemamy.Migration;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
 import org.jiemamy.facade.SavePoint;
@@ -35,6 +34,9 @@
  */
 public class ChangeNodeColorCommand extends Command {
 	
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private int diagramIndex;
+	
 	private NodeAdapter nodeAdapter;
 	
 	private JmColor newColor;
@@ -48,10 +50,12 @@
 	 * インスタンスを生成する。
 	 * 
 	 * @param rootModel 
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 	 * @param nodeAdapter 変更対象のエンティティ
 	 * @param newColor newColor
 	 */
-	public ChangeNodeColorCommand(RootModel rootModel, NodeAdapter nodeAdapter, JmColor newColor) {
+	public ChangeNodeColorCommand(RootModel rootModel, int diagramIndex, NodeAdapter nodeAdapter, JmColor newColor) {
+		this.diagramIndex = diagramIndex;
 		this.nodeAdapter = nodeAdapter;
 		this.newColor = newColor;
 		
@@ -61,7 +65,7 @@
 	@Override
 	public void execute() {
 		save = jiemamyFacade.save();
-		jiemamyFacade.changeNodeColor(Migration.DIAGRAM_INDEX, nodeAdapter, newColor);
+		jiemamyFacade.changeNodeColor(diagramIndex, nodeAdapter, newColor);
 	}
 	
 	@Override

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeConstraintCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeConstraintCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/ChangeNodeConstraintCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -27,7 +27,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.utils.ConvertUtil;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
@@ -80,11 +79,12 @@
 	 */
 	public ChangeNodeConstraintCommand(RootModel rootModel, int diagramIndex, NodeAdapter nodeAdapter,
 			JmRectangle boundary, EditPartViewer viewer) {
+		super(diagramIndex);
 		this.rootModel = rootModel;
 		this.diagramIndex = diagramIndex;
 		this.nodeAdapter = nodeAdapter;
 		DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-		DiagramPresentationModel presentationModel = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+		DiagramPresentationModel presentationModel = diagramPresentations.get(diagramIndex);
 		oldBoundary = presentationModel.getFigureProfiles().get(nodeAdapter).getBoundary();
 		this.boundary = boundary;
 		this.viewer = viewer;
@@ -117,7 +117,7 @@
 		
 		save = jiemamyFacade.save();
 		// 本体の移動
-		jiemamyFacade.changeNodeBoundary(Migration.DIAGRAM_INDEX, nodeAdapter, boundary);
+		jiemamyFacade.changeNodeBoundary(diagramIndex, nodeAdapter, boundary);
 		
 		// ベンドポイントの移動
 		shiftBendpoints(false);
@@ -147,7 +147,7 @@
 		for (ConnectionAdapter connection : nodeAdapter.getSourceConnections()) {
 			if (selectedModels.contains(connection.getSource()) && selectedModels.contains(connection.getTarget())) {
 				DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-				DiagramPresentationModel presentationModel = diagramPresentations.get(Migration.DIAGRAM_INDEX);
+				DiagramPresentationModel presentationModel = diagramPresentations.get(diagramIndex);
 				List<JmPoint> bendpoints = presentationModel.getConnectionProfiles().get(connection).getBendpoints();
 				for (JmPoint bendpoint : bendpoints) {
 					if (positive) {

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateBendpointCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateBendpointCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateBendpointCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -20,7 +20,6 @@
 
 import org.eclipse.draw2d.geometry.Point;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.utils.ConvertUtil;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
@@ -40,25 +39,33 @@
 	
 	private Point location;
 	
-	private int index;
+	/** source側からtarget側に向かって数えたベンドポイントのインデックス */
+	private int bendpointIndex;
 	
 	private JiemamyViewFacade jiemamyFacade;
 	
 	private SavePoint save;
 	
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private int diagramIndex;
+	
 
 	/**
 	 * インスタンスを生成する。
 	 * 
 	 * @param rootModel 
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 	 * @param connectionAdapter ベンドポイント追加対象のrelation
-	 * @param location ベンドポイントの位置
-	 * @param index ベンドポイントのindex
+	 * @param location ベンドポイントの座標
+	 * @param bendpointIndex source側からtarget側に向かって数えたベンドポイントのインデックス
 	 */
-	public CreateBendpointCommand(RootModel rootModel, ConnectionAdapter connectionAdapter, Point location, int index) {
+	public CreateBendpointCommand(RootModel rootModel, int diagramIndex, ConnectionAdapter connectionAdapter,
+			Point location, int bendpointIndex) {
+		super(diagramIndex);
+		this.diagramIndex = diagramIndex;
 		this.connectionAdapter = connectionAdapter;
 		this.location = location;
-		this.index = index;
+		this.bendpointIndex = bendpointIndex;
 		
 		// 移動量の計算
 		int shiftX = location.x < 0 ? Math.abs(location.x) : 0;
@@ -71,7 +78,7 @@
 	@Override
 	public void execute() {
 		save = jiemamyFacade.save();
-		jiemamyFacade.addBendpoint(Migration.DIAGRAM_INDEX, connectionAdapter, index, ConvertUtil.convert(location));
+		jiemamyFacade.addBendpoint(diagramIndex, connectionAdapter, bendpointIndex, ConvertUtil.convert(location));
 		shiftPosition(false);
 	}
 	

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateConnectionCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateConnectionCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateConnectionCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -26,7 +26,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.JiemamyUIPlugin;
 import org.jiemamy.exception.ElementNotFoundException;
 import org.jiemamy.facade.JiemamyViewFacade;
@@ -54,6 +53,9 @@
 	/** 接続元ノード */
 	private NodeAdapter source;
 	
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private int diagramIndex;
+	
 	/** 接続先ノード */
 	private NodeAdapter target;
 	
@@ -73,9 +75,11 @@
 	 * インスタンスを生成する。
 	 * 
 	 * @param rootModel 
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 	 * @param connection 作成するコネクションモデル
 	 */
-	public CreateConnectionCommand(RootModel rootModel, ConnectionAdapter connection) {
+	public CreateConnectionCommand(RootModel rootModel, int diagramIndex, ConnectionAdapter connection) {
+		this.diagramIndex = diagramIndex;
 		this.connection = connection;
 		
 		jiemamyFacade = new JiemamyViewFacadeImpl(rootModel.getJiemamy());
@@ -143,7 +147,7 @@
 			TableModel sourceTable = (TableModel) source.unwrap();
 			TableModel targetTable = (TableModel) target.unwrap();
 			save = jiemamyFacade.save();
-			jiemamyFacade.createConnection(Migration.DIAGRAM_INDEX, connection, sourceTable, targetTable);
+			jiemamyFacade.createConnection(diagramIndex, connection, sourceTable, targetTable);
 		} else {
 			// TODO wrapping connectionしか対応していない。
 		}

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -23,7 +23,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.utils.ConvertUtil;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
@@ -40,7 +39,8 @@
 	
 	private static Logger logger = LoggerFactory.getLogger(CreateNodeCommand.class);
 	
-	private RootModel rootModel;
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private final int diagramIndex;
 	
 	private NodeAdapter nodeAdapter;
 	
@@ -55,11 +55,12 @@
 	 * インスタンスを生成する。
 	 * 
 	 * @param rootModel 作成ノードの親モデル
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 	 * @param nodeAdapter 作成するノード
 	 * @param rectangle 作成する位置サイズ
 	 */
-	public CreateNodeCommand(RootModel rootModel, NodeAdapter nodeAdapter, Rectangle rectangle) {
-		this.rootModel = rootModel;
+	public CreateNodeCommand(RootModel rootModel, int diagramIndex, NodeAdapter nodeAdapter, Rectangle rectangle) {
+		this.diagramIndex = diagramIndex;
 		this.nodeAdapter = nodeAdapter;
 		this.rectangle = rectangle;
 		
@@ -70,7 +71,7 @@
 	public void execute() {
 		if (nodeAdapter.unwrap() != null) {
 			savePoint = jiemamyFacade.save();
-			jiemamyFacade.addEntity(Migration.DIAGRAM_INDEX, nodeAdapter, ConvertUtil.convert(rectangle));
+			jiemamyFacade.addEntity(diagramIndex, nodeAdapter, ConvertUtil.convert(rectangle));
 		} else {
 			logger.debug("EntityModel以外は未実装状態");
 		}

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DeleteBendpointCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DeleteBendpointCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DeleteBendpointCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -20,7 +20,6 @@
 
 import org.eclipse.gef.commands.Command;
 
-import org.jiemamy.Migration;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
 import org.jiemamy.facade.SavePoint;
@@ -34,6 +33,9 @@
  */
 public class DeleteBendpointCommand extends Command {
 	
+	/** ダイアグラムエディタのインデックス(エディタ内のタブインデックス) */
+	private int diagramIndex;
+	
 	/** 削除元のコネクション */
 	private ConnectionAdapter connectionAdapter;
 	
@@ -48,10 +50,13 @@
 	/**
 	 * インスタンスを生成する。
 	 * @param rootModel 
+	 * @param diagramIndex ダイアグラムエディタのインデックス(エディタ内のタブインデックス)
 	 * @param connectionAdapter ベンドポイント削除対象のコネクション
 	 * @param bendpointIndex source側からtarget側に向かって数えたベンドポイントのインデックス
 	 */
-	public DeleteBendpointCommand(RootModel rootModel, ConnectionAdapter connectionAdapter, int bendpointIndex) {
+	public DeleteBendpointCommand(RootModel rootModel, int diagramIndex, ConnectionAdapter connectionAdapter,
+			int bendpointIndex) {
+		this.diagramIndex = diagramIndex;
 		this.connectionAdapter = connectionAdapter;
 		this.bendpointIndex = bendpointIndex;
 		
@@ -61,7 +66,7 @@
 	@Override
 	public void execute() {
 		save = jiemamyFacade.save();
-		jiemamyFacade.removeBendpoint(Migration.DIAGRAM_INDEX, connectionAdapter, bendpointIndex);
+		jiemamyFacade.removeBendpoint(diagramIndex, connectionAdapter, bendpointIndex);
 	}
 	
 	@Override

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DirectEditNodeCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DirectEditNodeCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/DirectEditNodeCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -54,7 +54,7 @@
 	
 	private JiemamyViewFacade jiemamyFacade;
 	
-	private SavePoint save;
+	private SavePoint savePoint;
 	
 
 	/**
@@ -71,17 +71,17 @@
 		EntityModel entityModel = nodeAdapter.unwrap();
 		if (entityModel != null) {
 			if (displayStatus.getMode() == Mode.PHYSICAL) {
-				save = jiemamyFacade.save();
+				savePoint = jiemamyFacade.save();
 				jiemamyFacade.changeModelProperty(entityModel, EntityProperty.name, newValue);
 			} else if (displayStatus.getMode() == Mode.LOGICAL) {
-				save = jiemamyFacade.save();
+				savePoint = jiemamyFacade.save();
 				jiemamyFacade.changeModelProperty(entityModel, EntityProperty.logicalName, newValue);
 			} else {
 				JiemamyUIPlugin.log("想定外のenum要素", Status.ERROR);
 			}
 		} else if (nodeAdapter instanceof StickyModel) {
 			StickyModel stickyModel = (StickyModel) nodeAdapter;
-			save = jiemamyFacade.save();
+			savePoint = jiemamyFacade.save();
 			jiemamyFacade.changeModelProperty(stickyModel, StickyProperty.contents, newValue);
 		} else {
 			throw new IllegalImplementationException(nodeAdapter, "Unknown node: " + nodeAdapter.getClass());
@@ -119,18 +119,6 @@
 	
 	@Override
 	public void undo() {
-		if (nodeAdapter instanceof EntityModel) {
-			if (displayStatus.getMode() == Mode.PHYSICAL) {
-				jiemamyFacade.rollback(save);
-			} else if (displayStatus.getMode() == Mode.LOGICAL) {
-				jiemamyFacade.rollback(save);
-			} else {
-				JiemamyUIPlugin.log("想定外のenum要素", Status.ERROR);
-			}
-		} else if (nodeAdapter instanceof StickyModel) {
-			jiemamyFacade.rollback(save);
-		} else {
-			throw new IllegalImplementationException(nodeAdapter, "Unknown node");
-		}
+		jiemamyFacade.rollback(savePoint);
 	}
 }

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/MoveBendpointCommand.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/MoveBendpointCommand.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/command/MoveBendpointCommand.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -20,13 +20,10 @@
 
 import org.eclipse.draw2d.geometry.Point;
 
-import org.jiemamy.Migration;
 import org.jiemamy.eclipse.utils.ConvertUtil;
 import org.jiemamy.facade.JiemamyViewFacade;
 import org.jiemamy.facade.JiemamyViewFacadeImpl;
-import org.jiemamy.model.ConnectionProfile;
-import org.jiemamy.model.DiagramPresentationModel;
-import org.jiemamy.model.DiagramPresentations;
+import org.jiemamy.facade.SavePoint;
 import org.jiemamy.model.RootModel;
 import org.jiemamy.model.connection.ConnectionAdapter;
 import org.jiemamy.model.geometory.JmPoint;
@@ -40,8 +37,7 @@
 	
 	private ConnectionAdapter connectionAdapter;
 	
-	private Point oldLocation;
-	
+	/** ベンドポイントの移動先座標 */
 	private Point newLocation;
 	
 	/** source側からtarget側に向かって数えたベンドポイントのインデックス */
@@ -49,24 +45,26 @@
 	
 	private JiemamyViewFacade jiemamyFacade;
 	
+	private SavePoint savePoint;
+	
+	private int diagramIndex;
+	
 
 	/**
 	 * インスタンスを生成する。
 	 * 
 	 * @param rootModel 
+	 * @param diagramIndex 
 	 * @param connectionAdapter 操作対象のコネクション
-	 * @param newLocation 新しい位置
+	 * @param newLocation 新しい座標
 	 * @param bendpointIndex source側からtarget側に向かって数えたベンドポイントのインデックス
 	 */
-	public MoveBendpointCommand(RootModel rootModel, ConnectionAdapter connectionAdapter, int bendpointIndex,
-			Point newLocation) {
-		DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class);
-		DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX);
-		ConnectionProfile connectionProfile = presentation.getConnectionProfiles().get(connectionAdapter);
-		
+	public MoveBendpointCommand(RootModel rootModel, int diagramIndex, ConnectionAdapter connectionAdapter,
+			int bendpointIndex, Point newLocation) {
+		super(diagramIndex);
+		this.diagramIndex = diagramIndex;
 		this.connectionAdapter = connectionAdapter;
 		this.bendpointIndex = bendpointIndex;
-		oldLocation = ConvertUtil.convert(connectionProfile.getBendpoints().get(bendpointIndex));
 		this.newLocation = newLocation;
 		
 		int shiftX = newLocation.x < 0 ? Math.abs(newLocation.x) : 0;
@@ -78,15 +76,14 @@
 	
 	@Override
 	public void execute() {
-		jiemamyFacade.moveBendpoint(Migration.DIAGRAM_INDEX, connectionAdapter, bendpointIndex, ConvertUtil
-			.convert(newLocation));
+		savePoint = jiemamyFacade.save();
+		jiemamyFacade.moveBendpoint(diagramIndex, connectionAdapter, bendpointIndex, ConvertUtil.convert(newLocation));
 		shiftPosition(false);
 	}
 	
 	@Override
 	public void undo() {
 		shiftPosition(true);
-		jiemamyFacade.moveBendpoint(Migration.DIAGRAM_INDEX, connectionAdapter, bendpointIndex, ConvertUtil
-			.convert(oldLocation));
+		jiemamyFacade.rollback(savePoint);
 	}
 }

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmBendpointEditPolicy.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmBendpointEditPolicy.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmBendpointEditPolicy.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -23,6 +23,7 @@
 import org.eclipse.gef.editpolicies.BendpointEditPolicy;
 import org.eclipse.gef.requests.BendpointRequest;
 
+import org.jiemamy.Migration;
 import org.jiemamy.eclipse.editor.command.CreateBendpointCommand;
 import org.jiemamy.eclipse.editor.command.DeleteBendpointCommand;
 import org.jiemamy.eclipse.editor.command.MoveBendpointCommand;
@@ -45,7 +46,7 @@
 		ConnectionAdapter connection = (ConnectionAdapter) getHost().getModel();
 		ForeignKey foreignKey = connection.unwrap();
 		RootModel rootModel = foreignKey.getJiemamy().getFactory().getRootModel();
-		return new CreateBendpointCommand(rootModel, connection, point, request.getIndex());
+		return new CreateBendpointCommand(rootModel, Migration.DIAGRAM_INDEX, connection, point, request.getIndex());
 		
 	}
 	
@@ -54,7 +55,7 @@
 		ConnectionAdapter connection = (ConnectionAdapter) getHost().getModel();
 		ForeignKey foreignKey = connection.unwrap();
 		RootModel rootModel = foreignKey.getJiemamy().getFactory().getRootModel();
-		return new DeleteBendpointCommand(rootModel, connection, request.getIndex());
+		return new DeleteBendpointCommand(rootModel, Migration.DIAGRAM_INDEX, connection, request.getIndex());
 	}
 	
 	@Override
@@ -64,6 +65,6 @@
 		getConnection().translateToRelative(location);
 		
 		ConnectionAdapter connection = (ConnectionAdapter) getHost().getModel();
-		return new MoveBendpointCommand(rootModel, connection, request.getIndex(), location);
+		return new MoveBendpointCommand(rootModel, Migration.DIAGRAM_INDEX, connection, request.getIndex(), location);
 	}
 }

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmGraphicalNodeEditPolicy.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmGraphicalNodeEditPolicy.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmGraphicalNodeEditPolicy.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -23,6 +23,7 @@
 import org.eclipse.gef.requests.CreateConnectionRequest;
 import org.eclipse.gef.requests.ReconnectRequest;
 
+import org.jiemamy.Migration;
 import org.jiemamy.eclipse.editor.command.CreateConnectionCommand;
 import org.jiemamy.model.JiemamyElement;
 import org.jiemamy.model.RootModel;
@@ -47,8 +48,8 @@
 	protected Command getConnectionCreateCommand(CreateConnectionRequest request) {
 		JiemamyElement model = (JiemamyElement) request.getNewObject();
 		RootModel rootModel = (RootModel) getHost().getRoot().getContents().getModel();
-		CreateConnectionCommand command =
-				new CreateConnectionCommand(rootModel, model.getAdapter(ConnectionAdapter.class));
+		ConnectionAdapter connection = model.getAdapter(ConnectionAdapter.class);
+		CreateConnectionCommand command = new CreateConnectionCommand(rootModel, Migration.DIAGRAM_INDEX, connection);
 		command.setSource((NodeAdapter) getHost().getModel());
 		command.setFigureSize(getHostFigure().getSize());
 		request.setStartCommand(command);

Modified: vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmLayoutEditPolicy.java
===================================================================
--- vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmLayoutEditPolicy.java	2009-03-09 12:38:30 UTC (rev 2852)
+++ vesta/trunk/org.jiemamy.eclipse.ui/src/main/java/org/jiemamy/eclipse/editor/editpolicy/JmLayoutEditPolicy.java	2009-03-09 12:58:03 UTC (rev 2853)
@@ -73,7 +73,7 @@
 			node = stickyModel;
 		}
 		
-		return new CreateNodeCommand(rootModel, node, (Rectangle) getConstraintFor(request));
+		return new CreateNodeCommand(rootModel, Migration.DIAGRAM_INDEX, node, (Rectangle) getConstraintFor(request));
 	}
 	
 	@Override



Jiemamy-notify メーリングリストの案内
Zurück zum Archiv-Index