@@ -84,12 +84,13 @@ private BorderPane getAddDropPane() {
84
84
_addOrDropComboBox .getSelectionModel ().selectFirst (); // set Drop as
85
85
// default
86
86
_addOrDrop = "Drop" ;
87
-
87
+
88
88
// because default is drop set initial text to be that
89
89
_addOrDropButton = new Button ("Drop" );
90
+ _addOrDropButton .setDisable (true );
90
91
_addOrDropButton .setPrefWidth (744 );
91
92
_addOrDropButton .setOnAction (this ::addDropButtonPress );
92
-
93
+
93
94
_addOrDropComboBox .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
94
95
_addOrDrop = newValue ;
95
96
if (_addOrDrop .equals ("Add" )) {
@@ -173,7 +174,7 @@ private void performSwap(ActionEvent event) {
173
174
});
174
175
Button no = new Button ("No" );
175
176
dialogueBox .setOnCloseRequest ((event1 ) -> {
176
- //assume hitting the close window button is like clicking no
177
+ // assume hitting the close window button is like clicking no
177
178
// if not set the flag so we don't swap
178
179
_continueToSwap = false ;
179
180
dialogueBox .close ();
@@ -217,6 +218,7 @@ private void performSwap(ActionEvent event) {
217
218
}
218
219
219
220
private void setupForDrop () {
221
+ _addOrDropButton .setDisable (true );
220
222
221
223
javafx .collections .ObservableList <String > dayList = FXCollections .observableArrayList (_ui .getDaysList ());
222
224
ListView <String > dayListView = new ListView <String >(dayList );
@@ -228,51 +230,55 @@ private void setupForDrop() {
228
230
javafx .collections .ObservableList <String > hours = FXCollections
229
231
.observableArrayList (_ui .getHoursList (newValue ));
230
232
hourListView .setItems (hours );
233
+ _employeeToAddOrDrop = null ;
234
+ _addOrDropButton .setDisable (true );
231
235
});
232
236
233
237
ListView <Label > personListView = new ListView <Label >();
234
238
_addOrDropPane .setRight (personListView );
235
- hourListView .getSelectionModel ().selectedItemProperty ().addListener (new ChangeListener <String >() {
236
- @ Override
237
- public void changed (ObservableValue <? extends String > observable , String oldValue , String newValue ) {
238
- _dropHour = Integer .parseInt (newValue .split (" " )[0 ]);
239
- if (_dropHour < 9 ) {
240
- _dropHour += 12 ;
241
- }
242
- List <Label > scheduledEmployees = new ArrayList <Label >();
243
- for (Employee e : _ui .getSchedule ().getWeek ().getShift (_dropDay , _dropHour )) {
244
- Label toAdd = new Label (e .getName ());
245
- if (_ui .getCurrentEmployee () != null && toAdd .getText ().equals (_ui .getCurrentEmployee ().getName ())) {
246
- toAdd .setTextFill (Color .RED );
247
- }
248
- scheduledEmployees .add (toAdd );
239
+ hourListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
240
+ _dropHour = Integer .parseInt (newValue .split (" " )[0 ]);
241
+ if (_dropHour < 9 ) {
242
+ _dropHour += 12 ;
243
+ }
244
+ List <Label > scheduledEmployees = new ArrayList <Label >();
245
+ for (Employee e : _ui .getSchedule ().getWeek ().getShift (_dropDay , _dropHour )) {
246
+ Label toAdd = new Label (e .getName ());
247
+ if (_ui .getCurrentEmployee () != null && toAdd .getText ().equals (_ui .getCurrentEmployee ().getName ())) {
248
+ toAdd .setTextFill (Color .RED );
249
249
}
250
- javafx .collections .ObservableList <Label > people = FXCollections .observableArrayList (scheduledEmployees );
251
- personListView .setItems (people );
250
+ scheduledEmployees .add (toAdd );
252
251
}
252
+ javafx .collections .ObservableList <Label > people = FXCollections .observableArrayList (scheduledEmployees );
253
+ personListView .setItems (people );
254
+ _employeeToAddOrDrop = null ;
255
+ _addOrDropButton .setDisable (true );
253
256
});
254
- personListView .getSelectionModel ().selectedItemProperty ().addListener (new ChangeListener <Label >() {
255
- @ Override
256
- public void changed (ObservableValue <? extends Label > observable , Label oldValue , Label newValue ) {
257
- _employeeToAddOrDrop = _ui .getSchedule ().getStaff ().getEmployeeByName (newValue .getText ());
257
+ personListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
258
+ _employeeToAddOrDrop = _ui .getSchedule ().getStaff ().getEmployeeByName (newValue .getText ());
259
+ if (_employeeToAddOrDrop == null ) {
260
+ _addOrDropButton .setDisable (true );
261
+ } else {
262
+ _addOrDropButton .setDisable (false );
258
263
}
259
264
});
260
265
}
261
266
262
267
private void setupForAdd () {
268
+ _addOrDropButton .setDisable (true );
269
+
263
270
javafx .collections .ObservableList <String > dayList = FXCollections .observableArrayList (_ui .getDaysList ());
264
271
ListView <String > dayListView = new ListView <String >(dayList );
265
272
_addOrDropPane .setLeft (dayListView );
266
273
ListView <String > hourListView = new ListView <String >();
267
274
_addOrDropPane .setCenter (hourListView );
268
- dayListView .getSelectionModel ().selectedItemProperty ().addListener (new ChangeListener <String >() {
269
- @ Override
270
- public void changed (ObservableValue <? extends String > observable , String oldValue , String newValue ) {
271
- _addDay = Week .dayInt (newValue );
272
- javafx .collections .ObservableList <String > hours = FXCollections
273
- .observableArrayList (_ui .getHoursList (newValue ));
274
- hourListView .setItems (hours );
275
- }
275
+ dayListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
276
+ _addDay = Week .dayInt (newValue );
277
+ javafx .collections .ObservableList <String > hours = FXCollections
278
+ .observableArrayList (_ui .getHoursList (newValue ));
279
+ hourListView .setItems (hours );
280
+ _employeeToAddOrDrop = null ;
281
+ _addOrDropButton .setDisable (true );
276
282
});
277
283
278
284
ListView <Label > personListView = new ListView <Label >();
@@ -292,9 +298,17 @@ public void changed(ObservableValue<? extends String> observable, String oldValu
292
298
}
293
299
javafx .collections .ObservableList <Label > people = FXCollections .observableArrayList (allEmployees );
294
300
personListView .setItems (people );
301
+ _employeeToAddOrDrop = null ;
302
+ _addOrDropButton .setDisable (true );
295
303
});
296
- personListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue ,
297
- newValue ) -> _employeeToAddOrDrop = _ui .getSchedule ().getStaff ().getEmployeeByName (newValue .getText ())
304
+ personListView .getSelectionModel ().selectedItemProperty ().addListener ((observable , oldValue , newValue ) -> {
305
+ _employeeToAddOrDrop = _ui .getSchedule ().getStaff ().getEmployeeByName (newValue .getText ());
306
+ if (_employeeToAddOrDrop == null ) {
307
+ _addOrDropButton .setDisable (true );
308
+ } else {
309
+ _addOrDropButton .setDisable (false );
310
+ }
311
+ }
298
312
299
313
);
300
314
0 commit comments