|
8 | 8 | import comp110.Employee;
|
9 | 9 | import comp110.Schedule;
|
10 | 10 | import comp110.Week;
|
| 11 | +import javafx.collections.ObservableList; |
| 12 | +import javafx.geometry.Insets; |
11 | 13 | import javafx.geometry.Pos;
|
| 14 | +import javafx.scene.Node; |
12 | 15 | import javafx.scene.Scene;
|
13 | 16 | import javafx.scene.control.Label;
|
14 | 17 | import javafx.scene.control.ScrollPane;
|
15 | 18 | import javafx.scene.control.Tab;
|
16 | 19 | import javafx.scene.control.TabPane;
|
17 | 20 | import javafx.scene.control.TabPane.TabClosingPolicy;
|
| 21 | +import javafx.scene.layout.Border; |
| 22 | +import javafx.scene.layout.BorderStroke; |
| 23 | +import javafx.scene.layout.BorderStrokeStyle; |
| 24 | +import javafx.scene.layout.BorderWidths; |
| 25 | +import javafx.scene.layout.CornerRadii; |
18 | 26 | import javafx.scene.layout.GridPane;
|
19 | 27 | import javafx.scene.paint.Color;
|
20 | 28 | import javafx.scene.text.Font;
|
@@ -138,15 +146,45 @@ public GridPane writeSchedule(Schedule schedule) {
|
138 | 146 | scheduledEmployee.setFill(Color.RED);
|
139 | 147 | }
|
140 | 148 | // +1 to account for day row
|
141 |
| - schedulePane.add(new TextFlow(scheduledEmployee), day + 1, hourRow + i + 1); |
| 149 | + TextFlow tf = new TextFlow (scheduledEmployee); |
| 150 | +// if (i == max - 1) { |
| 151 | +// tf.setBorder(new Border(new BorderStroke(Color.BLACK, Color.BLACK, Color.BLACK, Color.BLACK, |
| 152 | +// BorderStrokeStyle.NONE, BorderStrokeStyle.NONE, BorderStrokeStyle.SOLID, BorderStrokeStyle.NONE, |
| 153 | +// CornerRadii.EMPTY, BorderWidths.DEFAULT, Insets.EMPTY))); |
| 154 | +// } |
| 155 | + schedulePane.add(tf, day + 1, hourRow + i + 1); |
142 | 156 | }
|
143 | 157 | }
|
144 | 158 | }
|
145 | 159 | hourRow += max;
|
146 | 160 | }
|
| 161 | + |
| 162 | + //setup borders |
| 163 | + for (int day = 0; day < 7; day++) { |
| 164 | + for (int hour = getEarliestHour(schedule.getWeek()); hour < getLatestHour(schedule.getWeek()); hour++) { |
| 165 | + int max = getMaxSize(hour, schedule.getWeek()); |
| 166 | + TextFlow tf= (TextFlow) this.getNodeByIndex(day, hour + max, schedulePane); |
| 167 | + } |
| 168 | + } |
| 169 | + |
| 170 | + |
147 | 171 | return schedulePane;
|
148 | 172 | }
|
149 | 173 |
|
| 174 | + public Node getNodeByIndex (int row, int column, GridPane gridPane) { |
| 175 | + Node result = null; |
| 176 | + ObservableList<Node> childrens = gridPane.getChildren(); |
| 177 | + |
| 178 | + for (Node node : childrens) { |
| 179 | + if(GridPane.getRowIndex(node) == row && GridPane.getColumnIndex(node) == column) { |
| 180 | + result = node; |
| 181 | + break; |
| 182 | + } |
| 183 | + } |
| 184 | + |
| 185 | + return result; |
| 186 | + } |
| 187 | + |
150 | 188 | // gets earliest scheduled hour in the week
|
151 | 189 | private static int getEarliestHour(Week week) {
|
152 | 190 | int min = 10000;
|
|
0 commit comments