@@ -226,10 +226,34 @@ private void performSwap(ActionEvent event) {
226
226
227
227
private void setupForDrop () {
228
228
_addOrDropButton .setDisable (true );
229
-
229
+
230
+ BorderPane firstColumn = new BorderPane ();
231
+
232
+ List <String > scheduleListNames = new ArrayList <String >();
233
+ for (Schedule s :_ui .getSchedules ()) {
234
+ scheduleListNames .add (s .getDatesValid ());
235
+ }
236
+
237
+ javafx .collections .ObservableList <String > scheduleList = FXCollections .observableArrayList (scheduleListNames );
238
+ ListView <String > scheduleListView = new ListView <String >(scheduleList );
239
+
230
240
javafx .collections .ObservableList <String > dayList = FXCollections .observableArrayList (_ui .getDaysList ());
231
241
ListView <String > dayListView = new ListView <String >(dayList );
232
- _addOrDropPane .setLeft (dayListView );
242
+
243
+ scheduleListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
244
+ _dropSchedule = _ui .getScheduleByName (newValue );
245
+ javafx .collections .ObservableList <String > days = FXCollections
246
+ .observableArrayList (_ui .getDaysList ());
247
+ dayListView .setItems (days );
248
+ _employeeToAddOrDrop = null ;
249
+ _addOrDropButton .setDisable (true );
250
+ });
251
+
252
+
253
+
254
+ firstColumn .setTop (scheduleListView );
255
+ firstColumn .setBottom (dayListView );
256
+ _addOrDropPane .setLeft (firstColumn );
233
257
ListView <String > hourListView = new ListView <String >();
234
258
_addOrDropPane .setCenter (hourListView );
235
259
dayListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
@@ -249,7 +273,7 @@ private void setupForDrop() {
249
273
_dropHour += 12 ;
250
274
}
251
275
List <Label > scheduledEmployees = new ArrayList <Label >();
252
- for (Employee e : _ui . getSchedules () .getWeek ().getShift (_dropDay , _dropHour )) {
276
+ for (Employee e : _dropSchedule .getWeek ().getShift (_dropDay , _dropHour )) {
253
277
Label toAdd = new Label (e .getName ());
254
278
if (_ui .getCurrentEmployee () != null && toAdd .getText ().equals (_ui .getCurrentEmployee ().getName ())) {
255
279
toAdd .setTextFill (Color .RED );
@@ -262,7 +286,7 @@ private void setupForDrop() {
262
286
_addOrDropButton .setDisable (true );
263
287
});
264
288
personListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
265
- _employeeToAddOrDrop = _ui . getSchedules () .getStaff ().getEmployeeByName (newValue .getText ());
289
+ _employeeToAddOrDrop = _dropSchedule .getStaff ().getEmployeeByName (newValue .getText ());
266
290
if (_employeeToAddOrDrop == null ) {
267
291
_addOrDropButton .setDisable (true );
268
292
} else {
@@ -273,9 +297,29 @@ private void setupForDrop() {
273
297
274
298
private void setupForAdd () {
275
299
_addOrDropButton .setDisable (true );
276
-
300
+
301
+ BorderPane firstColumn = new BorderPane ();
302
+
303
+ List <String > scheduleListNames = new ArrayList <String >();
304
+ for (Schedule s :_ui .getSchedules ()) {
305
+ scheduleListNames .add (s .getDatesValid ());
306
+ }
307
+
308
+ javafx .collections .ObservableList <String > scheduleList = FXCollections .observableArrayList (scheduleListNames );
309
+ ListView <String > scheduleListView = new ListView <String >(scheduleList );
310
+
277
311
javafx .collections .ObservableList <String > dayList = FXCollections .observableArrayList (_ui .getDaysList ());
278
312
ListView <String > dayListView = new ListView <String >(dayList );
313
+
314
+ scheduleListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
315
+ _addSchedule = _ui .getScheduleByName (newValue );
316
+ javafx .collections .ObservableList <String > days = FXCollections
317
+ .observableArrayList (_ui .getDaysList ());
318
+ dayListView .setItems (days );
319
+ _employeeToAddOrDrop = null ;
320
+ _addOrDropButton .setDisable (true );
321
+ });
322
+
279
323
_addOrDropPane .setLeft (dayListView );
280
324
ListView <String > hourListView = new ListView <String >();
281
325
_addOrDropPane .setCenter (hourListView );
@@ -296,7 +340,7 @@ private void setupForAdd() {
296
340
_addHour += 12 ;
297
341
}
298
342
List <Label > allEmployees = new ArrayList <Label >();
299
- for (Employee e : _ui . getSchedules () .getStaff ()) {
343
+ for (Employee e : _addSchedule .getStaff ()) {
300
344
Label toAdd = new Label (e .getName ());
301
345
if (_ui .getCurrentEmployee () != null && toAdd .getText ().equals (_ui .getCurrentEmployee ().getName ())) {
302
346
toAdd .setTextFill (Color .RED );
@@ -331,7 +375,7 @@ private void setupForAdd() {
331
375
_addOrDropButton .setDisable (true );
332
376
});
333
377
personListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
334
- _employeeToAddOrDrop = _ui . getSchedules () .getStaff ().getEmployeeByName (newValue .getText ());
378
+ _employeeToAddOrDrop = _addSchedule .getStaff ().getEmployeeByName (newValue .getText ());
335
379
if (_employeeToAddOrDrop == null ) {
336
380
_addOrDropButton .setDisable (true );
337
381
} else {
@@ -346,20 +390,20 @@ private void setupForAdd() {
346
390
private void addDropButtonPress (ActionEvent event ) {
347
391
348
392
if (_addOrDrop .equals ("Add" )) {
349
- _ui . getSchedules () .getWeek ().getShift (_addDay , _addHour ).add (_employeeToAddOrDrop );
393
+ _addSchedule .getWeek ().getShift (_addDay , _addHour ).add (_employeeToAddOrDrop );
350
394
} else { // must be a drop
351
- _ui . getSchedules () .getWeek ().getShift (_dropDay , _dropHour ).remove (_employeeToAddOrDrop );
395
+ _dropSchedule .getWeek ().getShift (_dropDay , _dropHour ).remove (_employeeToAddOrDrop );
352
396
353
397
}
354
398
// tell controller to push changes
355
399
if (_addOrDrop .equals ("Add" )) {
356
400
_controller .uiRequestChangeSchedule (_ui .getSchedules (),
357
- _addOrDrop .toUpperCase () + ": " + _employeeToAddOrDrop + " " + Week .dayString (_addDay ) + " "
401
+ _addOrDrop .toUpperCase () + ": " + _addSchedule . getDatesValid () + " " + _employeeToAddOrDrop + " " + Week .dayString (_addDay ) + " "
358
402
+ ((_addHour % 12 ) == 0 ? 12 : (_addHour % 12 )) + " -- "
359
403
+ (((_addHour + 1 ) % 12 ) == 0 ? 12 : ((_addHour + 1 ) % 12 )));
360
- } else {
404
+ } else { //it's a drop
361
405
_controller .uiRequestChangeSchedule (_ui .getSchedules (),
362
- _addOrDrop .toUpperCase () + ": " + _employeeToAddOrDrop + " " + Week .dayString (_dropDay ) + " "
406
+ _addOrDrop .toUpperCase () + ": " + _dropSchedule . getDatesValid () + " " + _employeeToAddOrDrop + " " + Week .dayString (_dropDay ) + " "
363
407
+ ((_dropHour % 12 ) == 0 ? 12 : (_dropHour % 12 )) + " -- "
364
408
+ (((_dropHour + 1 ) % 12 ) == 0 ? 12 : ((_dropHour + 1 ) % 12 )));
365
409
}
0 commit comments