~tapaal-contributor/tapaal/label-shifting-when-zooming-1849782

« back to all changes in this revision

Viewing changes to src/dk/aau/cs/gui/DeleteSharedPlaceOrTransition.java

  • Committer: Jiri Srba
  • Date: 2019-03-15 19:19:11 UTC
  • mfrom: (993.4.1 tapaal)
  • Revision ID: srba@cs.aau.dk-20190315191911-fajcguzg36amc53p
merged in branch lp:~tapaal-contributor/tapaal/unshare-transitions-in-all-components-1820014 fixing deletion of shared transitions across different components

Show diffs side-by-side

added added

removed removed

Lines of Context:
91
91
                messageShown = false;
92
92
                if(list.getSelectedValuesList() != null){
93
93
                        ArrayList<String> affectedComponents = new ArrayList<String>();
 
94
                        ArrayList<String> affectedComponentsWithDupes = new ArrayList<String>();
94
95
                        if(sharedPlacesAndTransitionsPanel.isDisplayingTransitions()){
95
96
                                for(Object transition : list.getSelectedValuesList()) {
96
 
                                        for(TimedTransition t : ((SharedTransition)transition).transitions()){
97
 
                                                if(!(affectedComponents.contains(t.model().name())))
98
 
                                                        affectedComponents.add(t.model().name());
 
97
                                        affectedComponentsWithDupes.addAll(((SharedTransition)transition).getComponentsUsingThisTransition());
 
98
                                }
 
99
                                for(String component : affectedComponentsWithDupes) {
 
100
                                        if(!(affectedComponents.contains(component))) {
 
101
                                                affectedComponents.add(component);
99
102
                                        }
100
103
                                }
101
104
                        } else {
102
 
                                ArrayList<String> affectedComponentsWithDupes = new ArrayList<String>();
103
105
                                for(Object place : list.getSelectedValuesList()) {
104
106
                                        affectedComponentsWithDupes.addAll(((SharedPlace)place).getComponentsUsingThisPlace());
105
107
                                }
296
298
                        sharedTransitionsListModel.removeElement(sharedTransition);
297
299
                        undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));
298
300
                }else{
299
 
                        Collection<TimedTransition> copy = sharedTransition.transitions();
300
 
                        for(TimedTransition transition : copy){
 
301
                        
 
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
309
                                transition.unshare();
302
310
                                undoManager.addEdit(new UnshareTransitionCommand(sharedTransition, transition));
303
311
                        }
304
312
                        sharedTransitionsListModel.removeElement(sharedTransition);
305
313
                        undoManager.addEdit(new DeleteSharedTransitionCommand(sharedTransition, sharedTransitionsListModel));
306
 
                        for(TimedTransition transition : copy){
 
314
                        for(TimedTransition transition : transitions){
307
315
                                String name = nameGenerator.getNewTransitionName(transition.model());
308
316
                                // 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
        }