From e44d89f889f710aff1aa4c8b7906caaa706d8b4a Mon Sep 17 00:00:00 2001 From: "s.feenstra" Date: Thu, 30 Sep 2010 22:03:49 +0200 Subject: [PATCH] Fixed Actions. (Constructor should NOT call Redo, so changed to RedoAction.) Also added calls to Super.Redo and Super.Undo to change the state! --- .../src/controllers/actions/AddEdge.java | 22 +++++++++++++----- .../src/controllers/actions/AddNode.java | 22 ++++++++++++++---- .../src/controllers/actions/DeleteNode.java | 22 +++++++++++++----- .../Graph Editor/src/controllers/actions/Move.java | 21 ++++++++++++----- .../src/controllers/actions/Rename.java | 21 ++++++++++++----- java/Graph Editor/src/interfaces/GraphFrame.java | 26 +++++++++------------- 6 files changed, 92 insertions(+), 42 deletions(-) diff --git a/java/Graph Editor/src/controllers/actions/AddEdge.java b/java/Graph Editor/src/controllers/actions/AddEdge.java index 46e9cae..d228a23 100644 --- a/java/Graph Editor/src/controllers/actions/AddEdge.java +++ b/java/Graph Editor/src/controllers/actions/AddEdge.java @@ -10,23 +10,35 @@ public class AddEdge extends AbstractUndoableEdit { private GraphEdge o; private SelectionController selectionController; - protected static String RedoName = "Kant toevoegen.";// NO_UCD - protected static String UndoName = "Kant toevoegen.";// NO_UCD - public AddEdge(GraphVertex a, GraphVertex b,SelectionController selectionController) { o = new GraphEdge(a,b); this.selectionController = selectionController; - redo(); + redoAction(); } - public void redo() + private void redoAction() { selectionController.getModel().addEdge(o); } + public void redo() + { + super.redo(); + redoAction(); + } + public void undo() { + super.undo(); selectionController.getModel().removeEdge(o); } + + public boolean isSignificant(){ + return true; + } + + public String getPresentationName(){ + return "Edge toevoegen."; + } } diff --git a/java/Graph Editor/src/controllers/actions/AddNode.java b/java/Graph Editor/src/controllers/actions/AddNode.java index 76dd6cd..bf5590c 100644 --- a/java/Graph Editor/src/controllers/actions/AddNode.java +++ b/java/Graph Editor/src/controllers/actions/AddNode.java @@ -10,24 +10,38 @@ public class AddNode extends AbstractUndoableEdit { private static final long serialVersionUID = -7929100929760152271L; private SelectionController selectionController; private GraphVertex o; - protected static String RedoName = "Vertex toevoegen."; // NO_UCD - protected static String UndoName = "Vertex toevoegen.";// NO_UCD + + + public AddNode(SelectionController selectionController) { this.selectionController = selectionController; o = new GraphVertex(); + redoAction(); + } + private void redoAction(){ selectionController.getModel().addGraph(o); + selectionController.setSelected(o); } public void redo() { - selectionController.getModel().addGraph(o); - selectionController.setSelected(o); + super.redo(); + redoAction(); } public void undo() { + super.undo(); selectionController.getModel().removeGraph(o); selectionController.removeSelected(); } + + public boolean isSignificant(){ + return true; + } + + public String getPresentationName(){ + return "Vertex toevoegen."; + } } diff --git a/java/Graph Editor/src/controllers/actions/DeleteNode.java b/java/Graph Editor/src/controllers/actions/DeleteNode.java index 2e325ba..6bdf07d 100644 --- a/java/Graph Editor/src/controllers/actions/DeleteNode.java +++ b/java/Graph Editor/src/controllers/actions/DeleteNode.java @@ -12,14 +12,11 @@ public class DeleteNode extends AbstractUndoableEdit { private SelectionController selectionController; private GraphEdge[] affectedEdges; - protected static String RedoName = "Vertex verwijderen";// NO_UCD - protected static String UndoName = "Vertex verwijderen";// NO_UCD - public DeleteNode(SelectionController selectionController) { this.selectionController = selectionController; this.o = selectionController.getSelectedVertex(); - redo(); + redoAction(); } private void removeAffectedEdges() @@ -45,8 +42,7 @@ public class DeleteNode extends AbstractUndoableEdit { affectedEdges[count++] = arr[i]; } - - public void redo() + private void redoAction() { getAffectedEdges(); removeAffectedEdges(); @@ -54,10 +50,24 @@ public class DeleteNode extends AbstractUndoableEdit { selectionController.getModel().removeGraph(o); } + public void redo() + { + super.redo(); + redoAction(); + } + public void undo() { + super.undo(); addAffectedEdges(); selectionController.getModel().addGraph(o); selectionController.setSelected(o); } + public boolean isSignificant(){ + return true; + } + + public String getPresentationName(){ + return "Vertex verwijderen."; + } } diff --git a/java/Graph Editor/src/controllers/actions/Move.java b/java/Graph Editor/src/controllers/actions/Move.java index 102fe3c..57d40b4 100644 --- a/java/Graph Editor/src/controllers/actions/Move.java +++ b/java/Graph Editor/src/controllers/actions/Move.java @@ -6,8 +6,6 @@ public class Move extends AbstractUndoableEdit { private static final long serialVersionUID = -7929100929760152271L; private GraphVertex o; private int originalX, originalY, newX, newY; - protected static String RedoName = "Verplaatsen";// NO_UCD - protected static String UndoName = "Verplaatsen";// NO_UCD public Move(int originalX, int originalY, int newX, int newY, GraphVertex o) @@ -17,18 +15,31 @@ public class Move extends AbstractUndoableEdit { this.originalY = originalY; this.newX = newX; this.newY = newY; - redo(); + redoAction(); } - public void redo() - { + private void redoAction(){ o.setX(newX); o.setY(newY); } + public void redo() + { + super.redo(); + redoAction(); + } public void undo() { + super.undo(); o.setX(originalX); o.setY(originalY); } + + public boolean isSignificant(){ + return true; + } + + public String getPresentationName(){ + return "Vertex verplaatsen."; + } } diff --git a/java/Graph Editor/src/controllers/actions/Rename.java b/java/Graph Editor/src/controllers/actions/Rename.java index 5e29566..0347b09 100644 --- a/java/Graph Editor/src/controllers/actions/Rename.java +++ b/java/Graph Editor/src/controllers/actions/Rename.java @@ -11,20 +11,16 @@ public class Rename extends AbstractUndoableEdit { private int originalWidth; private SelectionController selectionController; - protected static String RedoName = "Hernoemen";// NO_UCD - protected static String UndoName = "Hernoemen";// NO_UCD - public Rename(String name, SelectionController selectionController) { this.selectionController = selectionController; this.savedName = name; this.o = selectionController.getSelectedVertex(); originalWidth = o.getWidth(); - this.redo(); + this.redoAction(); } - public void redo() - { + private void redoAction(){ int width = 20 + this.selectionController.getPanel().getDrawTextWidth(savedName); if(width > o.getWidth()) o.setWidth(width); @@ -33,12 +29,25 @@ public class Rename extends AbstractUndoableEdit { o.setName(savedName); savedName = objectName; } + public void redo() + { + super.redo(); + redoAction(); + } public void undo() { + super.undo(); String objectName = o.getName(); o.setName(savedName); o.setWidth(originalWidth); savedName = objectName; } + public boolean isSignificant(){ + return true; + } + + public String getPresentationName(){ + return "Vertex Hernoemen."; + } } diff --git a/java/Graph Editor/src/interfaces/GraphFrame.java b/java/Graph Editor/src/interfaces/GraphFrame.java index 2afedc3..1951826 100644 --- a/java/Graph Editor/src/interfaces/GraphFrame.java +++ b/java/Graph Editor/src/interfaces/GraphFrame.java @@ -43,7 +43,7 @@ public class GraphFrame extends JFrame { private ActionListener onMenuEditDeleteNode; public GraphFrame(GraphModel model){ - undoManager = new UndoManager(); + this.setTitle("Graph Editor"); this.setSize(500, 500); menubar = new JMenuBar(); @@ -154,6 +154,9 @@ public class GraphFrame extends JFrame { panel = new GraphPanel(model); add(panel); + undoManager = new UndoManager(); + this.notifyUndoManagerChanged(); + setVisible(true); } @@ -167,21 +170,11 @@ public class GraphFrame extends JFrame { } private void notifyUndoManagerChanged(){ - if(this.undoManager.canRedo()){ - menuOptionsEditRedo.setText("Opnieuw " + this.undoManager.getRedoPresentationName()); - menuOptionsEditRedo.setEnabled(true); - }else{ - menuOptionsEditRedo.setText("Opnieuw"); - menuOptionsEditRedo.setEnabled(false); - } - if(this.undoManager.canUndo()){ - menuOptionsEditRedo.setText("Ongedaan maken " + this.undoManager.getUndoPresentationName()); - menuOptionsEditRedo.setEnabled(true); - }else{ - menuOptionsEditRedo.setText("Ongedaan maken"); - menuOptionsEditRedo.setEnabled(false); - } + menuOptionsEditRedo.setEnabled(undoManager.canRedo()); + menuOptionEditUndo.setEnabled(undoManager.canUndo()); + menuOptionsEditRedo.setText(this.undoManager.getRedoPresentationName()); + menuOptionEditUndo.setText(this.undoManager.getUndoPresentationName()); } @@ -216,7 +209,8 @@ public class GraphFrame extends JFrame { } public void addAction(UndoableEdit action){ - this.undoManager.addEdit(action); + undoManager.addEdit(action); + notifyUndoManagerChanged(); } public void selectedObject(boolean selected) { -- 2.11.4.GIT