1616
1717package de .doubleslash .keeptime .view ;
1818
19+ import javafx .beans .binding .Bindings ;
20+ import javafx .beans .property .BooleanProperty ;
21+ import javafx .beans .property .SimpleBooleanProperty ;
22+ import javafx .scene .control .*;
1923import org .slf4j .Logger ;
2024import org .slf4j .LoggerFactory ;
2125import org .springframework .beans .factory .annotation .Autowired ;
2428import de .doubleslash .keeptime .model .Model ;
2529import de .doubleslash .keeptime .model .Project ;
2630import javafx .fxml .FXML ;
27- import javafx .scene .control .CheckBox ;
28- import javafx .scene .control .ColorPicker ;
29- import javafx .scene .control .Spinner ;
3031import javafx .scene .control .SpinnerValueFactory .IntegerSpinnerValueFactory ;
31- import javafx .scene .control .TextArea ;
32- import javafx .scene .control .TextField ;
3332import javafx .scene .layout .GridPane ;
3433
3534@ Component
@@ -57,17 +56,23 @@ public class ManageProjectController {
5756 @ FXML
5857 private Spinner <Integer > sortIndexSpinner ;
5958
59+ @ FXML
60+ private Label validateTextAlert ;
61+
62+ private BooleanProperty formValidProperty = new SimpleBooleanProperty (false );
63+
6064 @ Autowired
6165 public ManageProjectController (final Model model ) {
6266 this .model = model ;
6367 }
64-
6568 @ FXML
6669 private void initialize () {
6770 final int availableProjectAmount = model .getAllProjects ().size ();
6871 sortIndexSpinner
69- .setValueFactory (new IntegerSpinnerValueFactory (0 , availableProjectAmount , availableProjectAmount ));
72+ .setValueFactory (new IntegerSpinnerValueFactory (0 , availableProjectAmount , availableProjectAmount ));
7073 sortIndexSpinner .getValueFactory ().setValue (model .getAvailableProjects ().size ());
74+ formValidProperty .bind (Bindings .createBooleanBinding (() -> !nameTextField .getText ().isBlank (),nameTextField .textProperty ()));
75+ validateTextAlert .visibleProperty ().bind (formValidProperty .not ());
7176 }
7277
7378 public void initializeWith (final Project project ) {
@@ -84,4 +89,8 @@ public Project getProjectFromUserInput() {
8489 isWorkCheckBox .isSelected (), sortIndexSpinner .getValue ());
8590 }
8691
92+ public BooleanProperty formValidProperty () {
93+ return formValidProperty ;
94+ }
95+
8796}
0 commit comments