~jonathan-r-beaumont/workcraft/trunk-bug-1537854

« back to all changes in this revision

Viewing changes to PetriNetPlugin/src/org/workcraft/plugins/petri/PetriNetUtils.java

  • Committer: Danil Sokolov
  • Date: 2016-01-15 19:01:38 UTC
  • Revision ID: danilovesky@gmail.com-20160115190138-nvjgqw3f4eeh8r9m
Tools for working with place proxies in STG and Petri nets

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
public class PetriNetUtils {
28
28
 
29
29
 
30
 
        public static void convertSelectedDualArcsToReadArcs(final VisualModel visualModel) {
31
 
                convertDualArcsToReadArcs(visualModel, getSelectedDualArcs(visualModel));
32
 
        }
33
 
 
34
 
        public static HashSet<Pair<VisualConnection, VisualConnection>> getSelectedDualArcs(final VisualModel visualModel) {
 
30
        public static HashSet<Pair<VisualConnection, VisualConnection>> getSelectedOrAllDualArcs(final VisualModel visualModel) {
35
31
                HashSet<Pair<VisualConnection /* consuming arc */, VisualConnection /* producing arc */>> dualArcs = new HashSet<>();
36
32
                HashSet<VisualConnection> consumingArcs = PetriNetUtils.getVisualConsumingArcs(visualModel);
37
33
                HashSet<VisualConnection> producingArcs = PetriNetUtils.getVisualProducingArcs(visualModel);
75
71
                                place = copyReplicaPlace(visualModel, (VisualReplicaPlace)place);
76
72
                        }
77
73
                        VisualNode transition = connection.getSecond();
78
 
 
 
74
                        
 
75
                        boolean needsShapeInversion = !visualModel.getSelection().contains(connection);
 
76
                        if (needsShapeInversion) {
 
77
                                connection = producingArc;
 
78
                        }
 
79
                        
79
80
                        visualModel.remove(consumingArc);
80
81
                        visualModel.remove(producingArc);
81
82
                        try {
84
85
                                        readArc = (VisualReadArc)undirectedConnection;
85
86
                                        readArc.copyStyle(connection);
86
87
                                        readArc.copyShape(connection);
 
88
                                        if (needsShapeInversion) {
 
89
                                                readArc.inverseShape();
 
90
                                        }
87
91
                                }
88
92
                        } catch (InvalidConnectionException e) {
89
93
                        }