-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStatisticsPane.java
More file actions
143 lines (115 loc) · 6.96 KB
/
StatisticsPane.java
File metadata and controls
143 lines (115 loc) · 6.96 KB
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package project3;
import java.lang.Integer;
import java.util.Iterator;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import project3.Event;
import project3.SportEvent;
import project3.MusicEvent;
import project3.ArtEvent;
import project3.SoccerGame;
import project3.BasketBallGame;
import project3.Concert;
import project3.Orchestra;
public class StatisticsPane extends BorderPane{
private final TextField tfEvents = new TextField();
private final TextField tfSportEvents = new TextField();
private final TextField tfMusicEvents = new TextField();
private final TextField tfArtEvents = new TextField();
private final TextField tfSoccerGames = new TextField();
private final TextField tfBasketBallGames = new TextField();
private final TextField tfConcerts = new TextField();
private final TextField tfOrchestras = new TextField();
private final TextArea taDisplayEvents = new TextArea ();
private final TextField tfTotalcost = new TextField();
private final TextField tfTotalrevenue = new TextField();
private final TextField tfTotalprofit = new TextField();
protected StatisticsPane() {
this.tfEvents .setAlignment(Pos.BOTTOM_RIGHT);
this.tfSportEvents .setAlignment(Pos.BOTTOM_RIGHT);
this.tfMusicEvents .setAlignment(Pos.BOTTOM_RIGHT);
this.tfArtEvents .setAlignment(Pos.BOTTOM_RIGHT);
this.tfSoccerGames .setAlignment(Pos.BOTTOM_RIGHT);
this.tfBasketBallGames.setAlignment(Pos.BOTTOM_RIGHT);
this.tfConcerts .setAlignment(Pos.BOTTOM_RIGHT);
this.tfOrchestras .setAlignment(Pos.BOTTOM_RIGHT);
this.tfTotalcost .setAlignment(Pos.BOTTOM_RIGHT);
this.tfTotalrevenue .setAlignment(Pos.BOTTOM_RIGHT);
this.tfTotalprofit .setAlignment(Pos.BOTTOM_RIGHT);
this.tfEvents .setEditable(false);
this.tfSportEvents .setEditable(false);
this.tfMusicEvents .setEditable(false);
this.tfArtEvents .setEditable(false);
this.tfSoccerGames .setEditable(false);
this.tfBasketBallGames.setEditable(false);
this.tfConcerts .setEditable(false);
this.tfOrchestras .setEditable(false);
this.taDisplayEvents.setPrefColumnCount(40);
this.taDisplayEvents.setPrefRowCount (20);
this.taDisplayEvents.setWrapText (true);
this.taDisplayEvents.setEditable (false);
Button btCount = new Button("Count");
Button btClear = new Button("Clear");
btCount.setOnAction (e -> this.count());
btClear.setOnAction (e -> this.clear());
GridPane.setHalignment(btClear, HPos.LEFT);
GridPane.setHalignment(btCount, HPos.LEFT);
GridPane gridPane = new GridPane();
gridPane.add(new Label("Events:" ), 0, 0); gridPane.add(this.tfEvents , 1, 0);
gridPane.add(new Label("Sport Events:"), 0, 1); gridPane.add(this.tfSportEvents, 1, 1); gridPane.add(new Label("Music Events:" ), 2, 1); gridPane.add(this.tfMusicEvents , 3, 1); gridPane.add(new Label("Art Events:" ), 4, 1); gridPane.add(this.tfArtEvents, 5, 1);
gridPane.add(new Label("Soccer Games:"), 0, 2); gridPane.add(this.tfSoccerGames, 1, 2); gridPane.add(new Label("Basketball Games:"), 2, 2); gridPane.add(this.tfBasketBallGames, 3, 2); gridPane.add(new Label("Total profit:"), 4, 2); gridPane.add(this.tfTotalprofit, 5, 2);
gridPane.add(new Label("Concerts:" ), 0, 3); gridPane.add(this.tfConcerts , 1, 3); gridPane.add(new Label("Orchestras:" ), 2, 3); gridPane.add(this.tfOrchestras , 3, 3);
gridPane.add(new Label("Total Cost:" ), 0, 4); gridPane.add(this.tfTotalcost , 1, 4); gridPane.add(new Label("Totalrevenue" ), 2, 4); gridPane.add(this.tfTotalrevenue , 3, 4);
gridPane.add(btClear , 0, 5); gridPane.add(btCount , 2, 5);
gridPane.setHgap(5);
gridPane.setVgap(5);
gridPane.setAlignment(Pos.CENTER);
gridPane.setPadding (new Insets(5, 5, 5, 5));
ScrollPane scrollPane = new ScrollPane(this.taDisplayEvents);
scrollPane.setPadding(new Insets(5, 5, 5, 5));
super.setCenter (gridPane );
super.setBottom (scrollPane);
super.setPadding(new Insets(5, 5, 5, 5));
BorderPane.setAlignment(gridPane, Pos.CENTER);
BorderPane.setAlignment(scrollPane, Pos.BOTTOM_CENTER);
} // StatisticsPane()
public void count() {
this.tfEvents .setText(Integer.toString(Event .getNumberOfObjects()));
this.tfSportEvents .setText(Integer.toString(SportEvent .getNumberOfObjects()));
this.tfMusicEvents .setText(Integer.toString(MusicEvent .getNumberOfObjects()));
this.tfArtEvents .setText(Integer.toString(ArtEvent .getNumberOfObjects()));
this.tfSoccerGames .setText(Integer.toString(SoccerGame .getNumberOfObjects()));
this.tfBasketBallGames.setText(Integer.toString(BasketBallGame.getNumberOfObjects()));
this.tfConcerts .setText(Integer.toString(Concert .getNumberOfObjects()));
this.tfOrchestras .setText(Integer.toString(Orchestra .getNumberOfObjects()));
String events = (Event.getEventList().isEmpty()) ? "" : "Events:\n" + Event.getEventList().toString() + "\n\n";
Iterator<Event> eventListIterator = Event.getEventList().iterator();
Event event;
int eventNumber;
while (eventListIterator.hasNext()) {
event = eventListIterator.next();
eventNumber = Event.getEventList().indexOf(event) + 1;
events = events + "Event " + String.valueOf(eventNumber) + ": Class: " + event.getClass().getSimpleName() + ",\tEvent Name: " + event.getName() + "\n";
} // while
this.taDisplayEvents.setText(events);
} // count()
public void clear() {
this.tfEvents .clear();
this.tfSportEvents .clear();
this.tfMusicEvents .clear();
this.tfArtEvents .clear();
this.tfSoccerGames .clear();
this.tfBasketBallGames.clear();
this.tfConcerts .clear();
this.tfOrchestras .clear();
this.taDisplayEvents .clear();
} // clear()
} // class StatisticsPane