Skip to content

Commit dd1bb96

Browse files
committed
ViewController has now a Cognitive Complexity of 15 or lower
1 parent 01e33f4 commit dd1bb96

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

src/main/java/de/doubleslash/keeptime/view/ViewController.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -195,25 +195,14 @@ private void initialize() throws IOException {
195195
addNewProjectButton.setOnAction((ae) -> {
196196
LOG.info("Add new project clicked");
197197
// TODO somewhat duplicate dialog of create and edit
198-
final Dialog<Project> dialog = setUpDialogProject("Create new project", "Create a new project");
198+
Dialog<Project> dialog = setUpDialogProject("Create new project", "Create a new project");
199199

200200
final GridPane grid = setUpAddNewProjectGridPane("", Color.WHITE, true);
201201

202202
// TODO disable OK button if no name is set
203203
dialog.getDialogPane().setContent(grid);
204204

205-
dialog.setResultConverter(dialogButton -> {
206-
if (dialogButton == ButtonType.OK) {
207-
final ObservableList<Node> nodes = grid.getChildren();
208-
final TextField projectNameTextField = (TextField) nodes.get(1);
209-
final ColorPicker colorPicker = (ColorPicker) nodes.get(3);
210-
final CheckBox isWorkCheckBox = (CheckBox) nodes.get(5);
211-
final Spinner<Integer> indexSpinner = (Spinner<Integer>) nodes.get(7);
212-
return new Project(projectNameTextField.getText(), colorPicker.getValue(), isWorkCheckBox.isSelected(),
213-
indexSpinner.getValue()); // temporary (misused) transfer object for project
214-
}
215-
return null;
216-
});
205+
dialog = dialogResultConverter(dialog, grid);
217206
mainStage.setAlwaysOnTop(false);
218207
final Optional<Project> result = dialog.showAndWait();
219208
mainStage.setAlwaysOnTop(true);
@@ -355,6 +344,22 @@ private void initialize() throws IOException {
355344

356345
}
357346

347+
private Dialog<Project> dialogResultConverter(final Dialog<Project> dialog, final GridPane grid) {
348+
dialog.setResultConverter(dialogButton -> {
349+
if (dialogButton == ButtonType.OK) {
350+
final ObservableList<Node> nodes = grid.getChildren();
351+
final TextField projectNameTextField = (TextField) nodes.get(1);
352+
final ColorPicker colorPicker = (ColorPicker) nodes.get(3);
353+
final CheckBox isWorkCheckBox = (CheckBox) nodes.get(5);
354+
final Spinner<Integer> indexSpinner = (Spinner<Integer>) nodes.get(7);
355+
return new Project(projectNameTextField.getText(), colorPicker.getValue(), isWorkCheckBox.isSelected(),
356+
indexSpinner.getValue()); // temporary (misused) transfer object for project
357+
}
358+
return null;
359+
});
360+
return dialog;
361+
}
362+
358363
private void settingsClicked() {
359364
LOG.info("Settings clicked");
360365
this.mainStage.setAlwaysOnTop(false);

0 commit comments

Comments
 (0)