@@ -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