Merge lp:~tapaal-contributor/tapaal/unshare-transitions-in-all-components-1820014 into lp:tapaal

Proposed by Peter Haahr Taankvist
Status: Merged
Approved by: Jiri Srba
Approved revision: 994
Merged at revision: 997
Proposed branch: lp:~tapaal-contributor/tapaal/unshare-transitions-in-all-components-1820014
Merge into: lp:tapaal
Diff against target: 104 lines (+32/-9)
3 files modified
src/dk/aau/cs/gui/DeleteSharedPlaceOrTransition.java (+18/-8)
src/dk/aau/cs/model/tapn/SharedTransition.java (+12/-0)
src/dk/aau/cs/model/tapn/TimedArcPetriNet.java (+2/-1)
To merge this branch: bzr merge lp:~tapaal-contributor/tapaal/unshare-transitions-in-all-components-1820014
Reviewer Review Type Date Requested Status
Jiri Srba Approve
Review via email: mp+364458@code.launchpad.net

Commit message

Transitions shared via the error dialog (when every transition with the same name is shared as well) will now correctly be removed when removing them in the sidepanel.

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

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/dk/aau/cs/gui/DeleteSharedPlaceOrTransition.java'
--- src/dk/aau/cs/gui/DeleteSharedPlaceOrTransition.java 2019-01-24 14:23:06 +0000
+++ src/dk/aau/cs/gui/DeleteSharedPlaceOrTransition.java 2019-03-14 19:45:52 +0000
@@ -91,15 +91,17 @@
91 messageShown = false;91 messageShown = false;
92 if(list.getSelectedValuesList() != null){92 if(list.getSelectedValuesList() != null){
93 ArrayList<String> affectedComponents = new ArrayList<String>();93 ArrayList<String> affectedComponents = new ArrayList<String>();
94 ArrayList<String> affectedComponentsWithDupes = new ArrayList<String>();
94 if(sharedPlacesAndTransitionsPanel.isDisplayingTransitions()){95 if(sharedPlacesAndTransitionsPanel.isDisplayingTransitions()){
95 for(Object transition : list.getSelectedValuesList()) {96 for(Object transition : list.getSelectedValuesList()) {
96 for(TimedTransition t : ((SharedTransition)transition).transitions()){97 affectedComponentsWithDupes.addAll(((SharedTransition)transition).getComponentsUsingThisTransition());
97 if(!(affectedComponents.contains(t.model().name())))98 }
98 affectedComponents.add(t.model().name());99 for(String component : affectedComponentsWithDupes) {
100 if(!(affectedComponents.contains(component))) {
101 affectedComponents.add(component);
99 }102 }
100 }103 }
101 } else {104 } else {
102 ArrayList<String> affectedComponentsWithDupes = new ArrayList<String>();
103 for(Object place : list.getSelectedValuesList()) {105 for(Object place : list.getSelectedValuesList()) {
104 affectedComponentsWithDupes.addAll(((SharedPlace)place).getComponentsUsingThisPlace());106 affectedComponentsWithDupes.addAll(((SharedPlace)place).getComponentsUsingThisPlace());
105 }107 }
@@ -296,17 +298,25 @@
296 sharedTransitionsListModel.removeElement(sharedTransition);298 sharedTransitionsListModel.removeElement(sharedTransition);
297 undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));299 undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));
298 }else{300 }else{
299 Collection<TimedTransition> copy = sharedTransition.transitions();301
300 for(TimedTransition transition : copy){302 ArrayList<TimedTransition> transitions = new ArrayList<TimedTransition> ();
303 for(Template template : tab.allTemplates()) {
304 TimedTransition timedTransition = template.model().getTransitionByName(sharedTransition.name());
305 if(timedTransition != null)
306 transitions.add(timedTransition);
307 }
308 for(TimedTransition transition : transitions){
301 transition.unshare();309 transition.unshare();
302 undoManager.addEdit(new UnshareTransitionCommand(sharedTransition, transition));310 undoManager.addEdit(new UnshareTransitionCommand(sharedTransition, transition));
303 }311 }
304 sharedTransitionsListModel.removeElement(sharedTransition);312 sharedTransitionsListModel.removeElement(sharedTransition);
305 undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));313 undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));
306 for(TimedTransition transition : copy){314 for(TimedTransition transition : transitions){
307 String name = nameGenerator.getNewTransitionName(transition.model());315 String name = nameGenerator.getNewTransitionName(transition.model());
308 // We add this invisible transition renaming to avoid problems with undo316 // We add this invisible transition renaming to avoid problems with undo
309 undoManager.addEdit(new RenameTimedTransitionCommand(tab, transition, name, transition.name())); 317 Command renameCommand = new RenameTimedTransitionCommand(tab, transition, name, transition.name());
318 renameCommand.redo();
319 undoManager.addEdit(renameCommand);
310 }320 }
311 }321 }
312 }322 }
313323
=== modified file 'src/dk/aau/cs/model/tapn/SharedTransition.java'
--- src/dk/aau/cs/model/tapn/SharedTransition.java 2016-04-28 13:18:00 +0000
+++ src/dk/aau/cs/model/tapn/SharedTransition.java 2019-03-14 19:45:52 +0000
@@ -7,6 +7,8 @@
77
8import dk.aau.cs.util.IntervalOperations;8import dk.aau.cs.util.IntervalOperations;
9import dk.aau.cs.util.Require;9import dk.aau.cs.util.Require;
10import pipe.dataLayer.Template;
11import pipe.gui.CreateGui;
1012
11public class SharedTransition {13public class SharedTransition {
12 private static final Pattern namePattern = Pattern.compile("^[a-zA-Z_][a-zA-Z0-9_]*$");14 private static final Pattern namePattern = Pattern.compile("^[a-zA-Z_][a-zA-Z0-9_]*$");
@@ -152,4 +154,14 @@
152 }154 }
153 return true;155 return true;
154 }156 }
157 public ArrayList<String> getComponentsUsingThisTransition(){
158 ArrayList<String> components = new ArrayList<String>();
159 for(Template t : CreateGui.getCurrentTab().allTemplates()){
160 TimedTransition tt = t.model().getTransitionByName(this.name);
161 if(tt != null){
162 components.add(t.model().name());
163 }
164 }
165 return components;
166 }
155}167}
156168
=== modified file 'src/dk/aau/cs/model/tapn/TimedArcPetriNet.java'
--- src/dk/aau/cs/model/tapn/TimedArcPetriNet.java 2019-02-03 11:41:57 +0000
+++ src/dk/aau/cs/model/tapn/TimedArcPetriNet.java 2019-03-14 19:45:52 +0000
@@ -5,6 +5,8 @@
5import java.util.Collection;5import java.util.Collection;
6import java.util.List;6import java.util.List;
77
8import pipe.gui.CreateGui;
9import pipe.gui.GuiFrame;
8import pipe.gui.undo.AddArcPathPointEdit;10import pipe.gui.undo.AddArcPathPointEdit;
9import pipe.gui.widgets.PlaceEditorPanel;11import pipe.gui.widgets.PlaceEditorPanel;
10import dk.aau.cs.model.tapn.Bound.InfBound;12import dk.aau.cs.model.tapn.Bound.InfBound;
@@ -63,7 +65,6 @@
63 public void add(TimedTransition transition) {65 public void add(TimedTransition transition) {
64 Require.that(transition != null, "Argument must be a non-null transition");66 Require.that(transition != null, "Argument must be a non-null transition");
65 Require.that(!isNameUsed(transition.name()) || transition.isShared(), "A place or transition with the specified name already exists in the petri net.");67 Require.that(!isNameUsed(transition.name()) || transition.isShared(), "A place or transition with the specified name already exists in the petri net.");
66
67 transition.setModel(this);68 transition.setModel(this);
68 transitions.add(transition);69 transitions.add(transition);
69 }70 }

Subscribers

People subscribed via source and target branches