Skip to content

Commit d76f13d

Browse files
committed
add/drop button now properly activates and deactivates based on context
1 parent becea29 commit d76f13d

File tree

1 file changed

+47
-33
lines changed

1 file changed

+47
-33
lines changed

src/ui/PerformSwapStage.java

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,13 @@ private BorderPane getAddDropPane() {
8484
_addOrDropComboBox.getSelectionModel().selectFirst(); // set Drop as
8585
// default
8686
_addOrDrop = "Drop";
87-
87+
8888
// because default is drop set initial text to be that
8989
_addOrDropButton = new Button("Drop");
90+
_addOrDropButton.setDisable(true);
9091
_addOrDropButton.setPrefWidth(744);
9192
_addOrDropButton.setOnAction(this::addDropButtonPress);
92-
93+
9394
_addOrDropComboBox.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
9495
_addOrDrop = newValue;
9596
if (_addOrDrop.equals("Add")) {
@@ -173,7 +174,7 @@ private void performSwap(ActionEvent event) {
173174
});
174175
Button no = new Button("No");
175176
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
177178
// if not set the flag so we don't swap
178179
_continueToSwap = false;
179180
dialogueBox.close();
@@ -217,6 +218,7 @@ private void performSwap(ActionEvent event) {
217218
}
218219

219220
private void setupForDrop() {
221+
_addOrDropButton.setDisable(true);
220222

221223
javafx.collections.ObservableList<String> dayList = FXCollections.observableArrayList(_ui.getDaysList());
222224
ListView<String> dayListView = new ListView<String>(dayList);
@@ -228,51 +230,55 @@ private void setupForDrop() {
228230
javafx.collections.ObservableList<String> hours = FXCollections
229231
.observableArrayList(_ui.getHoursList(newValue));
230232
hourListView.setItems(hours);
233+
_employeeToAddOrDrop = null;
234+
_addOrDropButton.setDisable(true);
231235
});
232236

233237
ListView<Label> personListView = new ListView<Label>();
234238
_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);
249249
}
250-
javafx.collections.ObservableList<Label> people = FXCollections.observableArrayList(scheduledEmployees);
251-
personListView.setItems(people);
250+
scheduledEmployees.add(toAdd);
252251
}
252+
javafx.collections.ObservableList<Label> people = FXCollections.observableArrayList(scheduledEmployees);
253+
personListView.setItems(people);
254+
_employeeToAddOrDrop = null;
255+
_addOrDropButton.setDisable(true);
253256
});
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);
258263
}
259264
});
260265
}
261266

262267
private void setupForAdd() {
268+
_addOrDropButton.setDisable(true);
269+
263270
javafx.collections.ObservableList<String> dayList = FXCollections.observableArrayList(_ui.getDaysList());
264271
ListView<String> dayListView = new ListView<String>(dayList);
265272
_addOrDropPane.setLeft(dayListView);
266273
ListView<String> hourListView = new ListView<String>();
267274
_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);
276282
});
277283

278284
ListView<Label> personListView = new ListView<Label>();
@@ -292,9 +298,17 @@ public void changed(ObservableValue<? extends String> observable, String oldValu
292298
}
293299
javafx.collections.ObservableList<Label> people = FXCollections.observableArrayList(allEmployees);
294300
personListView.setItems(people);
301+
_employeeToAddOrDrop = null;
302+
_addOrDropButton.setDisable(true);
295303
});
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+
}
298312

299313
);
300314

0 commit comments

Comments
 (0)