5
5
import java.awt.Graphics2D;
6
6
import java.awt.RenderingHints;
7
7
import java.awt.Shape;
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10
8
import java.awt.geom.AffineTransform;
11
9
import java.awt.geom.GeneralPath;
12
10
import java.awt.geom.Point2D;
59
57
String idInput, double nameOffsetXInput,
60
58
double nameOffsetYInput,
61
59
boolean infServer, int angleInput, int priority) {
60
this((int)positionXInput, (int)positionYInput, idInput, (int)nameOffsetXInput, (int)nameOffsetYInput, angleInput);
64
* Create Petri-Net Transition object
62
74
super(positionXInput, positionYInput, idInput, nameOffsetXInput, nameOffsetYInput);
63
75
componentWidth = TRANSITION_HEIGHT; // sets width
64
76
componentHeight = TRANSITION_HEIGHT;// sets height
65
77
constructTransition();
67
setCentre((int) positionX, (int) positionY);
68
79
rotate(angleInput);
80
91
public Transition(double positionXInput, double positionYInput) {
81
super(positionXInput, positionYInput);
82
componentWidth = TRANSITION_HEIGHT; // sets width
83
componentHeight = TRANSITION_HEIGHT;// sets height
84
constructTransition();
85
setCentre((int) positionX, (int) positionY);
87
this.updateEndPoints();
92
this((int)positionXInput, (int)positionYInput,null, 0,0, 0);
127
132
.toRadians(angleInc), componentWidth / 2, componentHeight / 2));
128
133
outlineTransition();
130
Iterator<ArcAngleCompare> arcIterator = arcAngleList.iterator();
131
while (arcIterator.hasNext()) {
132
(arcIterator.next()).calcAngle();
135
for (ArcAngleCompare arcAngleCompare : arcAngleList) {
136
arcAngleCompare.calcAngle();
134
138
Collections.sort(arcAngleList);
229
231
public boolean contains(int x, int y) {
230
int zoomPercentage = zoom;
232
double unZoomedX = (x - COMPONENT_DRAW_OFFSET)
233
/ (zoomPercentage / 100.0);
234
double unZoomedY = (y - COMPONENT_DRAW_OFFSET)
235
/ (zoomPercentage / 100.0);
237
Arc someArc = CreateGui.getDrawingSurface().createArc;
238
if (someArc != null) { // Must be drawing a new Arc if non-NULL.
239
if ((proximityTransition.contains((int) unZoomedX, (int) unZoomedY) || transition
240
.contains((int) unZoomedX, (int) unZoomedY))
241
&& areNotSameType(someArc.getSource())) {
242
// assume we are only snapping the target...
243
if (someArc.getTarget() != this) {
244
someArc.setTarget(this);
246
someArc.updateArcPosition();
249
if (someArc.getTarget() == this) {
251
someArc.setTarget(null);
252
removeArcCompareObject(someArc);
232
int zoomPercentage = getZoom();
234
double unZoomedX = (x - COMPONENT_DRAW_OFFSET) / (zoomPercentage / 100.0);
235
double unZoomedY = (y - COMPONENT_DRAW_OFFSET) / (zoomPercentage / 100.0);
237
Arc createArc = CreateGui.getDrawingSurface().createArc;
238
if (createArc != null) { // Must be drawing a new Arc if non-NULL.
239
return (proximityTransition.contains((int) unZoomedX, (int) unZoomedY) ||
240
transition.contains((int) unZoomedX, (int) unZoomedY));
258
242
return transition.contains((int) unZoomedX, (int) unZoomedY);
323
308
.toRadians(angle + Math.PI));
324
309
Point2D.Double transformed = new Point2D.Double();
326
transform.concatenate(Zoomer.getTransform(zoom));
311
transform.concatenate(Zoomer.getTransform(getZoom()));
328
313
arcIterator = top.iterator();
329
314
transform.transform(new Point2D.Double(1, 0.5 * TRANSITION_HEIGHT),
400
public void addedToGui() {
405
384
private String getText() {
410
public void setCentre(double x, double y) {
411
super.setCentre(x, y);
416
public void toggleAttributesVisible() {
417
attributesVisible = !attributesVisible;
422
389
public void update(boolean displayConstantNames) {
423
pnName.setText(getText());
424
pnName.zoomUpdate(zoom);
390
getNameLabel().setText(getText());
425
392
super.update(displayConstantNames);
443
410
public int compareTo(ArcAngleCompare arg0) {
444
double angle2 = arg0.angle;
446
return (angle < angle2 ? -1 : (angle == angle2 ? 0 : 1));
411
return (Double.compare(this.angle, arg0.angle));
449
414
private void calcAngle() {
489
454
private void initBlinkTimer(){
490
blinkTimer = new Timer(150, new ActionListener() {
491
public void actionPerformed(ActionEvent evt) {
492
if(blinkCount <= 2 ){
493
setVisible(!isVisible());
496
setVisible(true); // Ensures that transition is always visible after last blink
455
blinkTimer = new Timer(150, evt -> {
456
if(blinkCount <= 2 ){
457
setVisible(!isVisible());
460
setVisible(true); // Ensures that transition is always visible after last blink