svnno****@sourc*****
svnno****@sourc*****
2009年 3月 6日 (金) 18:11:19 JST
Revision: 2828 http://svn.sourceforge.jp/view?root=jiemamy&view=rev&rev=2828 Author: shin1 Date: 2009-03-06 18:11:19 +0900 (Fri, 06 Mar 2009) Log Message: ----------- [CORE-103]CreateNodeCommandの処理をFacadeメソッドに任せてシンプルに修正し、SavePointも適用した。 ViewEditPartでモデルが削除された時の考慮が無かったので、追加。 Modified Paths: -------------- vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/TableEditPart.java vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/ViewEditPart.java -------------- next part -------------- Modified: vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java =================================================================== --- vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java 2009-03-06 08:40:43 UTC (rev 2827) +++ vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/command/CreateNodeCommand.java 2009-03-06 09:11:19 UTC (rev 2828) @@ -27,7 +27,7 @@ import org.jiemamy.eclipse.utils.ConvertUtil; import org.jiemamy.facade.JiemamyViewFacade; import org.jiemamy.facade.JiemamyViewFacadeImpl; -import org.jiemamy.model.NodeProfile; +import org.jiemamy.facade.SavePoint; import org.jiemamy.model.RootModel; import org.jiemamy.model.node.NodeAdapter; @@ -48,6 +48,8 @@ private JiemamyViewFacade jiemamyFacade; + private SavePoint savePoint; + /** * インスタンスを生成する。 @@ -67,11 +69,8 @@ @Override public void execute() { if (nodeAdapter.unwrap() != null) { - jiemamyFacade.addEntity(nodeAdapter.unwrap()); - - NodeProfile nodeProfile = rootModel.getJiemamy().getFactory().newModel(NodeProfile.class); - jiemamyFacade.addNodeProfile(Migration.DIAGRAM_INDEX, nodeAdapter, nodeProfile); - jiemamyFacade.changeNodeBoundary(Migration.DIAGRAM_INDEX, nodeAdapter, ConvertUtil.convert(rectangle)); + savePoint = jiemamyFacade.save(); + jiemamyFacade.addEntity(Migration.DIAGRAM_INDEX, nodeAdapter, ConvertUtil.convert(rectangle)); } else { logger.debug("EntityModel以外は未実装状態"); } @@ -79,8 +78,6 @@ @Override public void undo() { - jiemamyFacade.undo(); - jiemamyFacade.undo(); - jiemamyFacade.undo(); + jiemamyFacade.rollback(savePoint); } } Modified: vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/TableEditPart.java =================================================================== --- vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/TableEditPart.java 2009-03-06 08:40:43 UTC (rev 2827) +++ vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/TableEditPart.java 2009-03-06 09:11:19 UTC (rev 2828) @@ -132,14 +132,14 @@ super.refreshVisuals(); GraphicalEditPart editPart = (GraphicalEditPart) getParent(); if (editPart == null) { + // モデルが削除された場合にeditPart=nullとなる。その時は描画処理は行わない。 return; } RootModel rootModel = (RootModel) editPart.getModel(); - NodeAdapter node = getModel(); - DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class); DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX); + NodeAdapter node = getModel(); NodeProfile nodeProfile = presentation.getFigureProfiles().get(node); if (nodeProfile == null) { // TODO 表示しない Modified: vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/ViewEditPart.java =================================================================== --- vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/ViewEditPart.java 2009-03-06 08:40:43 UTC (rev 2827) +++ vesta/trunk/org.jiemamy.eclipse/src/main/java/org/jiemamy/eclipse/editor/editpart/diagram/ViewEditPart.java 2009-03-06 09:11:19 UTC (rev 2828) @@ -118,12 +118,18 @@ @Override protected void refreshVisuals() { - RootModel rootModel = (RootModel) getParent().getModel(); - NodeAdapter node = getModel(); + logger.debug(LogMarker.LIFECYCLE, "refreshVisuals"); + super.refreshVisuals(); GraphicalEditPart editPart = (GraphicalEditPart) getParent(); + if (editPart == null) { + // モデルが削除された場合にeditPart=nullとなる。その時は描画処理は行わない。 + return; + } + RootModel rootModel = (RootModel) getRoot().getContents().getModel(); DiagramPresentations diagramPresentations = rootModel.getAdapter(DiagramPresentations.class); DiagramPresentationModel presentation = diagramPresentations.get(Migration.DIAGRAM_INDEX); + NodeAdapter node = getModel(); NodeProfile nodeProfile = presentation.getFigureProfiles().get(node); if (nodeProfile == null) { // TODO 表示しない