~tapaal-contributor/tapaal/disappearing-tokens-1940098

« back to all changes in this revision

Viewing changes to src/pipe/dataLayer/TimedInhibitorArcComponent.java

  • Committer: Kenneth Yrke Jørgensen
  • Date: 2011-04-12 09:50:16 UTC
  • mfrom: (329.1.188 tapaal-1.5)
  • Revision ID: mail@yrke.dk-20110412095016-e4hqdgab5596ja09
Merged with branch addning support for new 1.5 features

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
import java.awt.Graphics2D;
6
6
import java.awt.RenderingHints;
7
7
import java.awt.geom.AffineTransform;
8
 
import java.math.BigDecimal;
 
8
import java.util.Hashtable;
9
9
 
 
10
import pipe.gui.DrawingSurfaceImpl;
10
11
import pipe.gui.Pipe;
11
12
import pipe.gui.Zoomer;
 
13
import pipe.gui.handler.TimedArcHandler;
 
14
import pipe.gui.undo.ArcTimeIntervalEdit;
 
15
import dk.aau.cs.gui.undo.Command;
 
16
import dk.aau.cs.model.tapn.TimeInterval;
 
17
import dk.aau.cs.model.tapn.TimedArcPetriNet;
 
18
import dk.aau.cs.model.tapn.TimedInhibitorArc;
12
19
 
13
 
public class TAPNInhibitorArc extends TimedArc {
14
 
        
15
 
        /**
16
 
         * 
17
 
         */
 
20
public class TimedInhibitorArcComponent extends TimedInputArcComponent {
18
21
        private static final long serialVersionUID = 5492180277264669192L;
19
 
 
20
 
 
21
 
        public TAPNInhibitorArc(NormalArc arc)
22
 
        {
 
22
        private TimedInhibitorArc inhibitorArc;
 
23
 
 
24
        public TimedInhibitorArcComponent(TimedOutputArcComponent arc) {
23
25
                super(arc);
24
26
        }
25
 
        public TAPNInhibitorArc(NormalArc arc, String guard)
26
 
        {
27
 
                super(arc,guard);
 
27
 
 
28
        public TimedInhibitorArcComponent(TimedOutputArcComponent arc, String guard) {
 
29
                super(arc, guard);
28
30
        }
29
 
        
30
 
        
31
 
        public TAPNInhibitorArc(PlaceTransitionObject source) {
 
31
 
 
32
        public TimedInhibitorArcComponent(PlaceTransitionObject source) {
32
33
                super(source);
33
34
        }
34
 
        @Override
35
 
        public boolean satisfiesGuard(BigDecimal token)
36
 
        {
37
 
                return !super.satisfiesGuard(token);
38
 
        }
39
 
        
40
 
        
41
 
        /**
42
 
         * @version 1.0
43
 
         * @author Pere Bonet
44
 
         */
 
35
 
 
36
        public void setUnderlyingArc(TimedInhibitorArc arc) {
 
37
                this.inhibitorArc = arc;
 
38
                updateWeightLabel(true);
 
39
        }
 
40
 
 
41
        public TimedInhibitorArc underlyingTimedInhibitorArc() {
 
42
                return inhibitorArc;
 
43
        }
 
44
 
 
45
        @Override
 
46
        public void delete() {
 
47
                if (inhibitorArc != null)
 
48
                        inhibitorArc.delete();
 
49
                super.delete();
 
50
        }
 
51
 
 
52
        @Override
 
53
        public void updateWeightLabel(boolean displayConstantNames) {
 
54
                weightLabel.setText("");
 
55
                this.setWeightLabelPosition();
 
56
        }
 
57
 
 
58
        @Override
 
59
        public String getGuardAsString() {
 
60
                return inhibitorArc.interval().toString();
 
61
        }
 
62
 
 
63
        @Override
 
64
        public Command setGuard(TimeInterval guard) {
 
65
 
 
66
                TimeInterval oldTimeInterval = inhibitorArc.interval();
 
67
                inhibitorArc.setTimeInterval(guard);
 
68
 
 
69
                // hacks - I use the weight to display the TimeInterval
 
70
                updateWeightLabel(true);
 
71
                repaint();
 
72
 
 
73
                return new ArcTimeIntervalEdit(this, oldTimeInterval, inhibitorArc.interval());
 
74
        }
 
75
 
 
76
        @Override
 
77
        public TimeInterval getGuard() {
 
78
                return inhibitorArc.interval();
 
79
        }
 
80
 
45
81
        @Override
46
82
        public void paintComponent(Graphics g) {
47
 
              //super.paintComponent(g);
48
 
              Graphics2D g2 = (Graphics2D)g;   
49
 
              
50
 
              g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 
51
 
                                  RenderingHints.VALUE_ANTIALIAS_ON);
52
 
              
53
 
              g2.translate(COMPONENT_DRAW_OFFSET + zoomGrow - myPath.getBounds().getX(),
54
 
                       COMPONENT_DRAW_OFFSET + zoomGrow - myPath.getBounds().getY());
55
 
              
56
 
              if (selected && !ignoreSelection){
57
 
                 g2.setPaint(Pipe.SELECTION_LINE_COLOUR);
58
 
              } else{
59
 
                 g2.setPaint(Pipe.ELEMENT_LINE_COLOUR);
60
 
              }
61
 
             
62
 
              g2.setStroke(new BasicStroke(0.01f * zoom));
63
 
              g2.draw(myPath);
64
 
              
65
 
              g2.translate(myPath.getPoint(myPath.getEndIndex()).getX(),
66
 
                       myPath.getPoint(myPath.getEndIndex()).getY());
67
 
                
68
 
              g2.rotate(myPath.getEndAngle()+Math.PI);
69
 
              g2.setColor(java.awt.Color.WHITE);
70
 
                    
71
 
              AffineTransform reset = g2.getTransform();
72
 
              g2.transform(Zoomer.getTransform(zoom));   
73
 
          
74
 
              g2.setStroke(new BasicStroke(0.8f));      
75
 
              g2.fillOval(-4,-8, 8, 8);
76
 
          
77
 
              if (selected && !ignoreSelection){
78
 
                 g2.setPaint(Pipe.SELECTION_LINE_COLOUR);
79
 
              } else{
80
 
                 g2.setPaint(Pipe.ELEMENT_LINE_COLOUR);
81
 
              }
82
 
              g2.drawOval(-4,-8, 8, 8);
83
 
              
84
 
              g2.setTransform(reset);
85
 
           }   
 
83
                // super.paintComponent(g);
 
84
                Graphics2D g2 = (Graphics2D) g;
 
85
 
 
86
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
 
87
                                RenderingHints.VALUE_ANTIALIAS_ON);
 
88
 
 
89
                g2.translate(COMPONENT_DRAW_OFFSET + zoomGrow
 
90
                                - myPath.getBounds().getX(), COMPONENT_DRAW_OFFSET + zoomGrow
 
91
                                - myPath.getBounds().getY());
 
92
 
 
93
                if (selected && !ignoreSelection) {
 
94
                        g2.setPaint(Pipe.SELECTION_LINE_COLOUR);
 
95
                } else {
 
96
                        g2.setPaint(Pipe.ELEMENT_LINE_COLOUR);
 
97
                }
 
98
 
 
99
                g2.setStroke(new BasicStroke(0.01f * zoom));
 
100
                g2.draw(myPath);
 
101
 
 
102
                g2.translate(myPath.getPoint(myPath.getEndIndex()).getX(), myPath
 
103
                                .getPoint(myPath.getEndIndex()).getY());
 
104
 
 
105
                g2.rotate(myPath.getEndAngle() + Math.PI);
 
106
                g2.setColor(java.awt.Color.WHITE);
 
107
 
 
108
                AffineTransform reset = g2.getTransform();
 
109
                g2.transform(Zoomer.getTransform(zoom));
 
110
 
 
111
                g2.setStroke(new BasicStroke(0.8f));
 
112
                g2.fillOval(-4, -8, 8, 8);
 
113
 
 
114
                if (selected && !ignoreSelection) {
 
115
                        g2.setPaint(Pipe.SELECTION_LINE_COLOUR);
 
116
                } else {
 
117
                        g2.setPaint(Pipe.ELEMENT_LINE_COLOUR);
 
118
                }
 
119
                g2.drawOval(-4, -8, 8, 8);
 
120
 
 
121
                g2.setTransform(reset);
 
122
        }
 
123
        
 
124
        public TimedInhibitorArcComponent copy(TimedArcPetriNet tapn, DataLayer guiModel, Hashtable<PlaceTransitionObject, PlaceTransitionObject> oldToNewMapping) {
 
125
                TimedInhibitorArcComponent arc = new TimedInhibitorArcComponent(this);
 
126
                arc.setSource(oldToNewMapping.get(this.getSource()));
 
127
                arc.setTarget(oldToNewMapping.get(this.getTarget()));
 
128
                
 
129
                arc.getSource().addConnectFrom(arc);
 
130
                arc.getTarget().addConnectTo(arc);
 
131
                
 
132
                arc.setUnderlyingArc(tapn.getInhibitorArcFromPlaceAndTransition(tapn.getPlaceByName(inhibitorArc.source().name()), tapn.getTransitionByName(inhibitorArc.destination().name())));
 
133
                
 
134
                TimedArcHandler timedArcHandler = new TimedArcHandler((DrawingSurfaceImpl)getParent(), arc);
 
135
                arc.addMouseListener(timedArcHandler);
 
136
                arc.addMouseWheelListener(timedArcHandler);
 
137
                arc.addMouseMotionListener(timedArcHandler);
 
138
                
 
139
                arc.setGuiModel(guiModel);
 
140
                
 
141
                return arc;
 
142
        }
86
143
}