Merge lp:~sgaflv/workcraft/trunk-bug-1321714 into lp:workcraft

Proposed by Danil Sokolov
Status: Merged
Merged at revision: 520
Proposed branch: lp:~sgaflv/workcraft/trunk-bug-1321714
Merge into: lp:workcraft
Diff against target: 280 lines (+74/-20)
15 files modified
CircuitPlugin/src/org/workcraft/plugins/circuit/VisualCircuitComponent.java (+6/-0)
WorkcraftCore/src/org/workcraft/Framework.java (+4/-1)
WorkcraftCore/src/org/workcraft/dom/AbstractGroup.java (+12/-2)
WorkcraftCore/src/org/workcraft/dom/DefaultHangingConnectionRemover.java (+1/-1)
WorkcraftCore/src/org/workcraft/dom/math/MathConnection.java (+2/-1)
WorkcraftCore/src/org/workcraft/dom/math/MathGroup.java (+13/-9)
WorkcraftCore/src/org/workcraft/dom/visual/AbstractVisualModel.java (+1/-5)
WorkcraftCore/src/org/workcraft/dom/visual/VisualGroup.java (+4/-0)
WorkcraftCore/src/org/workcraft/dom/visual/VisualPage.java (+4/-0)
WorkcraftCore/src/org/workcraft/dom/visual/connections/Polyline.java (+5/-1)
WorkcraftCore/src/org/workcraft/dom/visual/connections/VisualConnection.java (+6/-0)
WorkcraftCore/src/org/workcraft/observation/ObservableHierarchy.java (+1/-0)
WorkcraftCore/src/org/workcraft/observation/ObservableHierarchyImpl.java (+4/-0)
XmasPlugin/src/org/workcraft/plugins/xmas/components/VisualXmasComponent.java (+6/-0)
XmasPlugin/src/org/workcraft/plugins/xmas/components/XmasComponent.java (+5/-0)
To merge this branch: bzr merge lp:~sgaflv/workcraft/trunk-bug-1321714
Reviewer Review Type Date Requested Status
Danil Sokolov Approve
Review via email: mp+226887@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Danil Sokolov (danilovesky) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'CircuitPlugin/src/org/workcraft/plugins/circuit/VisualCircuitComponent.java'
2--- CircuitPlugin/src/org/workcraft/plugins/circuit/VisualCircuitComponent.java 2014-07-08 11:51:21 +0000
3+++ CircuitPlugin/src/org/workcraft/plugins/circuit/VisualCircuitComponent.java 2014-07-15 17:41:02 +0000
4@@ -631,5 +631,11 @@
5 public void removeObserver(HierarchyObserver obs) {
6 groupImpl.removeObserver(obs);
7 }
8+
9+ @Override
10+ public void removeAllObservers() {
11+ groupImpl.removeAllObservers();
12+ }
13+
14
15 }
16
17=== modified file 'WorkcraftCore/src/org/workcraft/Framework.java'
18--- WorkcraftCore/src/org/workcraft/Framework.java 2014-06-25 19:35:02 +0000
19+++ WorkcraftCore/src/org/workcraft/Framework.java 2014-07-15 17:41:02 +0000
20@@ -682,7 +682,10 @@
21 vmodel1.reparent(vmodel1.getCurrentLevel(), vmodel2, vmodel2.getRoot(), null);
22 vmodel1.select(children);
23
24- return me1;
25+ // dirty hack! to avoid any hanging observers
26+ Memento memo = save(me1);
27+ ModelEntry me3 = load(memo);
28+ return me3;
29
30
31 }
32
33=== modified file 'WorkcraftCore/src/org/workcraft/dom/AbstractGroup.java'
34--- WorkcraftCore/src/org/workcraft/dom/AbstractGroup.java 2014-06-29 17:47:02 +0000
35+++ WorkcraftCore/src/org/workcraft/dom/AbstractGroup.java 2014-07-15 17:41:02 +0000
36@@ -103,6 +103,10 @@
37 public void removeObserver(HierarchyObserver obs) {
38 observableHierarchyImpl.removeObserver(obs);
39 }
40+
41+ public void removeAllObservers() {
42+ observableHierarchyImpl.removeAllObservers();
43+ }
44
45 @Override
46 public void add(Node node) {
47@@ -154,9 +158,15 @@
48
49 }
50
51- if (differentModels)
52+ if (differentModels) {
53+ // remove all listeners as well
54+ for (Node n: nodes) {
55+ if (n instanceof ObservableHierarchy) {
56+ ((ObservableHierarchy) n).removeAllObservers();
57+ }
58+ }
59 newParent.add(nodes);
60- else
61+ } else
62 newParent.reparent(nodes);
63
64 observableHierarchyImpl.sendNotification(new NodesReparentedEvent(groupRef, newParent, nodes));
65
66=== modified file 'WorkcraftCore/src/org/workcraft/dom/DefaultHangingConnectionRemover.java'
67--- WorkcraftCore/src/org/workcraft/dom/DefaultHangingConnectionRemover.java 2013-10-31 11:44:01 +0000
68+++ WorkcraftCore/src/org/workcraft/dom/DefaultHangingConnectionRemover.java 2014-07-15 17:41:02 +0000
69@@ -53,7 +53,7 @@
70
71 for (Node node : e.getAffectedNodes())
72 findHangingConnections(node, hangingConnections, hanging);
73-
74+
75 for (Connection con : hangingConnections)
76 if (con.getParent() instanceof Container)
77 ((Container)con.getParent()).remove(con);
78
79=== modified file 'WorkcraftCore/src/org/workcraft/dom/math/MathConnection.java'
80--- WorkcraftCore/src/org/workcraft/dom/math/MathConnection.java 2013-09-10 09:54:55 +0000
81+++ WorkcraftCore/src/org/workcraft/dom/math/MathConnection.java 2014-07-15 17:41:02 +0000
82@@ -23,6 +23,7 @@
83
84 import org.workcraft.annotations.VisualClass;
85 import org.workcraft.dom.Connection;
86+import org.workcraft.dom.Node;
87
88 @VisualClass(org.workcraft.dom.visual.connections.VisualConnection.class)
89 public class MathConnection extends MathNode implements Connection {
90@@ -36,7 +37,7 @@
91 super();
92 setDependencies(first, second);
93 }
94-
95+
96 final public MathNode getFirst() {
97 return first;
98 }
99
100=== modified file 'WorkcraftCore/src/org/workcraft/dom/math/MathGroup.java'
101--- WorkcraftCore/src/org/workcraft/dom/math/MathGroup.java 2014-04-28 18:05:39 +0000
102+++ WorkcraftCore/src/org/workcraft/dom/math/MathGroup.java 2014-07-15 17:41:02 +0000
103@@ -22,17 +22,16 @@
104 package org.workcraft.dom.math;
105
106 import java.util.ArrayList;
107-import java.util.Collection;
108-
109-import org.workcraft.dom.Container;
110-import org.workcraft.dom.DefaultGroupImpl;
111-import org.workcraft.dom.Node;
112+import java.util.Collection;
113+
114+import org.workcraft.dom.Container;
115+import org.workcraft.dom.DefaultGroupImpl;
116+import org.workcraft.dom.Node;
117 import org.workcraft.dom.hierarchy.NamespaceProvider;
118 import org.workcraft.dom.references.HierarchicalUniqueNameReferenceManager;
119 import org.workcraft.dom.references.ReferenceManager;
120-import org.workcraft.dom.visual.TransformHelper;
121-import org.workcraft.observation.HierarchyObserver;
122-import org.workcraft.observation.ObservableHierarchy;
123+import org.workcraft.observation.HierarchyObserver;
124+import org.workcraft.observation.ObservableHierarchy;
125 import org.workcraft.util.Hierarchy;
126
127 public class MathGroup extends MathNode implements NamespaceProvider, ObservableHierarchy, Container {
128@@ -66,7 +65,12 @@
129 @Override
130 public void removeObserver(HierarchyObserver obs) {
131 groupImpl.removeObserver(obs);
132- }
133+ }
134+
135+ @Override
136+ public void removeAllObservers() {
137+ groupImpl.removeAllObservers();
138+ }
139
140 @Override
141 public void setParent(Node parent) {
142
143=== modified file 'WorkcraftCore/src/org/workcraft/dom/visual/AbstractVisualModel.java'
144--- WorkcraftCore/src/org/workcraft/dom/visual/AbstractVisualModel.java 2014-07-11 09:28:08 +0000
145+++ WorkcraftCore/src/org/workcraft/dom/visual/AbstractVisualModel.java 2014-07-15 17:41:02 +0000
146@@ -627,11 +627,7 @@
147
148 Collection<Node> children = new HashSet<Node>();
149
150- if (sourceChildren==null) {
151- children.addAll(sourceRoot.getChildren());
152- } else {
153- children.addAll(sourceChildren);
154- }
155+ children.addAll(sourceChildren);
156
157 sourceRoot.reparent(children, targetContainer);
158
159
160=== modified file 'WorkcraftCore/src/org/workcraft/dom/visual/VisualGroup.java'
161--- WorkcraftCore/src/org/workcraft/dom/visual/VisualGroup.java 2014-06-29 17:47:02 +0000
162+++ WorkcraftCore/src/org/workcraft/dom/visual/VisualGroup.java 2014-07-15 17:41:02 +0000
163@@ -223,6 +223,10 @@
164 groupImpl.removeObserver(obs);
165 }
166
167+ @Override
168+ public void removeAllObservers() {
169+ groupImpl.removeAllObservers();
170+ }
171
172 @Override
173 public void setParent(Node parent) {
174
175=== modified file 'WorkcraftCore/src/org/workcraft/dom/visual/VisualPage.java'
176--- WorkcraftCore/src/org/workcraft/dom/visual/VisualPage.java 2014-06-26 08:11:52 +0000
177+++ WorkcraftCore/src/org/workcraft/dom/visual/VisualPage.java 2014-07-15 17:41:02 +0000
178@@ -170,6 +170,10 @@
179 groupImpl.removeObserver(obs);
180 }
181
182+ @Override
183+ public void removeAllObservers() {
184+ groupImpl.removeAllObservers();
185+ }
186
187 @Override
188 public void setParent(Node parent) {
189
190=== modified file 'WorkcraftCore/src/org/workcraft/dom/visual/connections/Polyline.java'
191--- WorkcraftCore/src/org/workcraft/dom/visual/connections/Polyline.java 2013-10-21 17:36:57 +0000
192+++ WorkcraftCore/src/org/workcraft/dom/visual/connections/Polyline.java 2014-07-15 17:41:02 +0000
193@@ -276,7 +276,11 @@
194
195 public void removeObserver(HierarchyObserver obs) {
196 groupImpl.removeObserver(obs);
197- }
198+ }
199+
200+ public void removeAllObservers() {
201+ groupImpl.removeAllObservers();
202+ }
203
204 public void reparent(Collection<Node> nodes, Container newParent) {
205 groupImpl.reparent(nodes, newParent);
206
207=== modified file 'WorkcraftCore/src/org/workcraft/dom/visual/connections/VisualConnection.java'
208--- WorkcraftCore/src/org/workcraft/dom/visual/connections/VisualConnection.java 2014-06-05 11:46:41 +0000
209+++ WorkcraftCore/src/org/workcraft/dom/visual/connections/VisualConnection.java 2014-07-15 17:41:02 +0000
210@@ -457,6 +457,12 @@
211 public void removeObserver(HierarchyObserver obs) {
212 observableHierarchyImpl.removeObserver(obs);
213 }
214+
215+ public void removeAllObservers() {
216+ observableHierarchyImpl.removeAllObservers();
217+ }
218+
219+
220 @Override
221 public Point2D getFirstCenter() {
222 return componentsTransformObserver.getFirstCenter();
223
224=== modified file 'WorkcraftCore/src/org/workcraft/observation/ObservableHierarchy.java'
225--- WorkcraftCore/src/org/workcraft/observation/ObservableHierarchy.java 2009-09-22 21:01:45 +0000
226+++ WorkcraftCore/src/org/workcraft/observation/ObservableHierarchy.java 2014-07-15 17:41:02 +0000
227@@ -24,4 +24,5 @@
228 public interface ObservableHierarchy {
229 public void addObserver (HierarchyObserver obs);
230 public void removeObserver (HierarchyObserver obs);
231+ public void removeAllObservers();
232 }
233
234=== modified file 'WorkcraftCore/src/org/workcraft/observation/ObservableHierarchyImpl.java'
235--- WorkcraftCore/src/org/workcraft/observation/ObservableHierarchyImpl.java 2009-09-22 21:01:45 +0000
236+++ WorkcraftCore/src/org/workcraft/observation/ObservableHierarchyImpl.java 2014-07-15 17:41:02 +0000
237@@ -34,6 +34,10 @@
238 observers.remove(obs);
239 }
240
241+ public void removeAllObservers() {
242+ observers.clear();
243+ }
244+
245 public void sendNotification (HierarchyEvent e) {
246 for (HierarchyObserver obs : observers)
247 obs.notify(e);
248
249=== modified file 'XmasPlugin/src/org/workcraft/plugins/xmas/components/VisualXmasComponent.java'
250--- XmasPlugin/src/org/workcraft/plugins/xmas/components/VisualXmasComponent.java 2014-01-07 16:03:24 +0000
251+++ XmasPlugin/src/org/workcraft/plugins/xmas/components/VisualXmasComponent.java 2014-07-15 17:41:02 +0000
252@@ -213,6 +213,12 @@
253 groupImpl.removeObserver(obs);
254 }
255
256+ @Override
257+ public void removeAllObservers() {
258+ groupImpl.removeAllObservers();
259+ }
260+
261+
262 abstract public Shape getShape();
263
264 @Override
265
266=== modified file 'XmasPlugin/src/org/workcraft/plugins/xmas/components/XmasComponent.java'
267--- XmasPlugin/src/org/workcraft/plugins/xmas/components/XmasComponent.java 2013-11-05 18:01:19 +0000
268+++ XmasPlugin/src/org/workcraft/plugins/xmas/components/XmasComponent.java 2014-07-15 17:41:02 +0000
269@@ -52,6 +52,11 @@
270 public void removeObserver(HierarchyObserver obs) {
271 groupImpl.removeObserver(obs);
272 }
273+
274+ public void removeAllObservers() {
275+ groupImpl.removeAllObservers();
276+ }
277+
278
279 @Override
280 public void add(Node node) {

Subscribers

People subscribed via source and target branches