Merge lp:~tapaal-contributor/tapaal/undo-namelabel-movement-1834783 into lp:tapaal

Proposed by Peter Haahr Taankvist
Status: Merged
Approved by: Jiri Srba
Approved revision: 1014
Merged at revision: 1013
Proposed branch: lp:~tapaal-contributor/tapaal/undo-namelabel-movement-1834783
Merge into: lp:tapaal
Diff against target: 209 lines (+89/-39)
5 files modified
src/dk/aau/cs/gui/smartDraw/SmartDrawWorker.java (+3/-3)
src/dk/aau/cs/gui/undo/ChangeNameOffsetCommand.java (+0/-35)
src/dk/aau/cs/gui/undo/SetNameLabelPositionCommand.java (+35/-0)
src/dk/aau/cs/gui/undo/UpdateNameLabelOffsetCommand.java (+31/-0)
src/pipe/gui/handler/LabelHandler.java (+20/-1)
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/undo-namelabel-movement-1834783
Reviewer Review Type Date Requested Status
Jiri Srba Approve
Review via email: mp+371425@code.launchpad.net

Commit message

Can now undo movement of name labels

To post a comment you must log in.
Revision history for this message
Jiri Srba (srba) wrote :

Two things to fix:

1. Please, remove the debugging information.

2. ctrl-z does not work after automatic layout was run (it seems that it is not enabled in the menu)

review: Needs Fixing
1014. By Peter Taankvist <email address hidden>

Removed debugging lines

Revision history for this message
Jiri Srba (srba) wrote :

Point 1 is fixed, I could not reproduce point one (maybe I had some problems with keyboard) so the merge is approved.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/dk/aau/cs/gui/smartDraw/SmartDrawWorker.java'
2--- src/dk/aau/cs/gui/smartDraw/SmartDrawWorker.java 2019-08-15 09:32:19 +0000
3+++ src/dk/aau/cs/gui/smartDraw/SmartDrawWorker.java 2019-08-21 12:34:13 +0000
4@@ -9,7 +9,7 @@
5
6 import javax.swing.SwingWorker;
7
8-import dk.aau.cs.gui.undo.ChangeNameOffsetCommand;
9+import dk.aau.cs.gui.undo.SetNameLabelPositionCommand;
10 import dk.aau.cs.gui.undo.Command;
11 import dk.aau.cs.gui.undo.MovePlaceTransitionObject;
12 import dk.aau.cs.util.Require;
13@@ -470,13 +470,13 @@
14 public void resetLabelsToDefault() {
15 for(PetriNetObject pNetObject : drawingSurface.getPNObjects()) {
16 if(pNetObject instanceof PlaceTransitionObject) {
17- Command cmd = new ChangeNameOffsetCommand(pNetObject, pipe.gui.Pipe.DEFAULT_OFFSET_X, pipe.gui.Pipe.DEFAULT_OFFSET_Y);
18+ Command cmd = new SetNameLabelPositionCommand(pNetObject, pipe.gui.Pipe.DEFAULT_OFFSET_X, pipe.gui.Pipe.DEFAULT_OFFSET_Y);
19 cmd.redo();
20 undoManager.addEdit(cmd);
21
22 }
23 else if(pNetObject instanceof Arc) {
24- Command cmd = new ChangeNameOffsetCommand(pNetObject, 0, 0);
25+ Command cmd = new SetNameLabelPositionCommand(pNetObject, 0, 0);
26 cmd.redo();
27 undoManager.addEdit(cmd);
28 }
29
30=== removed file 'src/dk/aau/cs/gui/undo/ChangeNameOffsetCommand.java'
31--- src/dk/aau/cs/gui/undo/ChangeNameOffsetCommand.java 2019-08-15 09:32:19 +0000
32+++ src/dk/aau/cs/gui/undo/ChangeNameOffsetCommand.java 1970-01-01 00:00:00 +0000
33@@ -1,35 +0,0 @@
34-package dk.aau.cs.gui.undo;
35-
36-import pipe.gui.Grid;
37-import pipe.gui.graphicElements.PetriNetObject;
38-
39-public class ChangeNameOffsetCommand extends Command {
40- PetriNetObject object;
41- double newX;
42- double newY;
43- double oldY;
44- double oldX;
45-
46- public ChangeNameOffsetCommand(PetriNetObject object, double xOffset, double yOffset) {
47- this.object = object;
48- this.newX = xOffset;
49- this.newY = yOffset;
50- }
51-
52- @Override
53- public void undo() {
54- object.getNameLabel().setPosition(object.getX() + Grid.getModifiedX(oldX), object.getY() + Grid.getModifiedX(oldY));
55- object.updateOnMoveOrZoom();
56- }
57-
58- @Override
59- public void redo() {
60- oldY = object.getNameOffsetXObject();
61- oldX = object.getNameOffsetYObject();
62-
63- object.getNameLabel().setPosition(object.getX() + Grid.getModifiedX(newX), object.getY() + Grid.getModifiedX(newY));
64- object.updateOnMoveOrZoom();
65- }
66-}
67-
68-
69
70=== added file 'src/dk/aau/cs/gui/undo/SetNameLabelPositionCommand.java'
71--- src/dk/aau/cs/gui/undo/SetNameLabelPositionCommand.java 1970-01-01 00:00:00 +0000
72+++ src/dk/aau/cs/gui/undo/SetNameLabelPositionCommand.java 2019-08-21 12:34:13 +0000
73@@ -0,0 +1,35 @@
74+package dk.aau.cs.gui.undo;
75+
76+import pipe.gui.Grid;
77+import pipe.gui.graphicElements.PetriNetObject;
78+
79+public class SetNameLabelPositionCommand extends Command {
80+ PetriNetObject object;
81+ double newX;
82+ double newY;
83+ double oldY;
84+ double oldX;
85+
86+ public SetNameLabelPositionCommand(PetriNetObject object, double xOffset, double yOffset) {
87+ this.object = object;
88+ this.newX = xOffset;
89+ this.newY = yOffset;
90+ }
91+
92+ @Override
93+ public void undo() {
94+ object.getNameLabel().setPosition(object.getX() + Grid.getModifiedX(oldX), object.getY() + Grid.getModifiedX(oldY));
95+ object.updateOnMoveOrZoom();
96+ }
97+
98+ @Override
99+ public void redo() {
100+ oldY = object.getNameOffsetXObject();
101+ oldX = object.getNameOffsetYObject();
102+
103+ object.getNameLabel().setPosition(object.getX() + Grid.getModifiedX(newX), object.getY() + Grid.getModifiedX(newY));
104+ object.updateOnMoveOrZoom();
105+ }
106+}
107+
108+
109
110=== added file 'src/dk/aau/cs/gui/undo/UpdateNameLabelOffsetCommand.java'
111--- src/dk/aau/cs/gui/undo/UpdateNameLabelOffsetCommand.java 1970-01-01 00:00:00 +0000
112+++ src/dk/aau/cs/gui/undo/UpdateNameLabelOffsetCommand.java 2019-08-21 12:34:13 +0000
113@@ -0,0 +1,31 @@
114+package dk.aau.cs.gui.undo;
115+
116+import pipe.gui.graphicElements.PetriNetObject;
117+
118+public class UpdateNameLabelOffsetCommand extends Command {
119+ double newXOffset, newYOffset, oldXOffset, oldYOffset;
120+ PetriNetObject obj;
121+
122+ public UpdateNameLabelOffsetCommand(double newXOffset, double newYOffset, double oldXOffset, double oldYOffset, PetriNetObject obj) {
123+ this.obj = obj;
124+ this.newXOffset = newXOffset;
125+ this.newYOffset = newYOffset;
126+ this.oldXOffset = oldXOffset;
127+ this.oldYOffset = oldYOffset;
128+ }
129+
130+ @Override
131+ public void undo() {
132+ obj.setNameOffsetX(oldXOffset);;
133+ obj.setNameOffsetY(oldYOffset);
134+ obj.updateOnMoveOrZoom();
135+ }
136+
137+ @Override
138+ public void redo() {
139+ obj.setNameOffsetX(newXOffset);
140+ obj.setNameOffsetY(newYOffset);
141+ obj.updateOnMoveOrZoom();
142+ }
143+
144+}
145
146=== modified file 'src/pipe/gui/handler/LabelHandler.java'
147--- src/pipe/gui/handler/LabelHandler.java 2019-06-22 15:00:18 +0000
148+++ src/pipe/gui/handler/LabelHandler.java 2019-08-21 12:34:13 +0000
149@@ -4,6 +4,9 @@
150 import java.awt.event.MouseEvent;
151 import java.awt.event.MouseWheelEvent;
152 import javax.swing.SwingUtilities;
153+
154+import dk.aau.cs.gui.undo.Command;
155+import dk.aau.cs.gui.undo.UpdateNameLabelOffsetCommand;
156 import pipe.dataLayer.NetType;
157 import pipe.gui.CreateGui;
158 import pipe.gui.graphicElements.Arc;
159@@ -19,7 +22,9 @@
160 private NameLabel nl;
161
162 protected Point dragInit = new Point();
163-
164+
165+ private double originalOffsetX, originalOffsetY;
166+
167 public LabelHandler(NameLabel _nl, PetriNetObject _obj) {
168 obj = _obj;
169 nl = _nl;
170@@ -32,6 +37,7 @@
171
172 @Override
173 public void mousePressed(MouseEvent e) {
174+
175 if(obj instanceof Arc) {
176 if (((Arc) obj).isPrototype()) {
177 return;
178@@ -49,6 +55,8 @@
179 dragInit = e.getPoint(); //
180 // dragInit = e.getLocationOnScreen(); //causes exception in Windows!
181 dragInit = javax.swing.SwingUtilities.convertPoint(nl, dragInit, obj);
182+ originalOffsetX = obj.getNameOffsetXObject();
183+ originalOffsetY = obj.getNameOffsetYObject();
184 }
185
186 @Override
187@@ -65,11 +73,22 @@
188 // obj.setNameOffsetY((e.getYOnScreen() - dragInit.y)); //causes
189 // exception in Windows!
190 // dragInit = e.getLocationOnScreen(); //causes exception in Windows!
191+
192+
193 obj.updateNameOffsetX((p.x - dragInit.x));
194 obj.updateNameOffsetY((p.y - dragInit.y));
195 dragInit = p;
196 obj.updateOnMoveOrZoom();
197 }
198+
199+ @Override
200+ public void mouseReleased(MouseEvent e) {
201+ Point p = javax.swing.SwingUtilities
202+ .convertPoint(nl, e.getPoint(), obj);
203+
204+ CreateGui.getDrawingSurface().getUndoManager().addNewEdit(new UpdateNameLabelOffsetCommand(obj.getNameOffsetXObject(), obj.getNameOffsetYObject(), originalOffsetX, originalOffsetY, obj));
205+
206+ }
207
208 @Override
209 public void mouseWheelMoved(MouseWheelEvent e) {

Subscribers

People subscribed via source and target branches