-
Notifications
You must be signed in to change notification settings - Fork 0
/
CircleView3.java
97 lines (84 loc) · 2.54 KB
/
CircleView3.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import javafx.scene.layout.BorderPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.text.Text;
public class CircleView3 extends BorderPane implements CircleEvents {
class RadiusEvent implements MyListener {
public void actionPerformed(MyActionEvent e) {
eventTitle = eventType.RADIUS.toString();
drawCircle();
}
}
class ColorEvent implements MyListener {
public void actionPerformed(MyActionEvent e) {
eventTitle = eventType.COLOR.toString();
drawCircle();
}
}
class FilledEvent implements MyListener {
public void actionPerformed(MyActionEvent e) {
eventTitle = eventType.FILLED.toString();
drawCircle();
}
}
class AreaEvent implements MyListener {
public void actionPerformed(MyActionEvent e) {
eventTitle = eventType.AREA.toString();
drawCircle();
}
}
private CircleModel3 model;
private int circleCounter = 1;
private String eventTitle = "DEFAULT";
public CircleView3(int circleCounter) {
this.circleCounter = circleCounter;
}
public int getcircleCounter() {
return circleCounter;
}
public int setcircleCounter(int circleCounter) {
return this.circleCounter = circleCounter;
}
public void setModel(CircleModel3 newModel) {
model = newModel;
if (model != null) {
model.addListener(new RadiusEvent(), eventType.RADIUS);
model.addListener(new FilledEvent(), eventType.FILLED);
model.addListener(new ColorEvent(), eventType.COLOR);
model.addListener(new AreaEvent(), eventType.AREA);
}
drawCircle();
}
public CircleModel3 getModel() {
return model;
}
public void drawCircle() {
if (model == null)
return;
getChildren().clear();
int rowSpace = SPACE;
int row = SPACE;
int column = SPACE;
int circleNumber = circleCounter + 1;
double radius = model.getRadius();
Text t1 = new Text(column, row, "Event Type: " + eventTitle);
row = row + rowSpace;
Text t2 = new Text(column, row, "Circle number " + circleNumber);
row = row + rowSpace;
Text t3 = new Text(column, row, "Circle raduis " + radius);
row = row + rowSpace;
if (model.calculateArea()) {
double circleArea = radius * radius * Math.PI;
Text t4 = new Text(column, row, "Circle Area " + circleArea);
getChildren().add(t4);
}
getChildren().addAll(t1, t2, t3);
Circle circle = new Circle(radius);
circle.setFill(Color.TRANSPARENT);
if (model.isFilled())
circle.setFill(model.getColor());
else
circle.setStroke(model.getColor());
setCenter(circle);
}
}