diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/DatePickerController.java b/src/de/deadlocker8/budgetmaster/ui/controller/DatePickerController.java index ea27d833d163f4df53f3f2810862bcd6eb8d1413..0e4b32324540ab41db1746828fe001d30edd7c65 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/DatePickerController.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/DatePickerController.java @@ -12,8 +12,8 @@ import javafx.fxml.FXML; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; import javafx.scene.control.ComboBox; -import javafx.scene.control.TextField; -import javafx.scene.control.TextFormatter; +import javafx.scene.control.Spinner; +import javafx.scene.control.SpinnerValueFactory; import javafx.scene.paint.Color; import javafx.stage.Modality; import javafx.stage.Stage; @@ -24,7 +24,7 @@ import tools.Localization; public class DatePickerController extends BaseController implements Styleable { @FXML private ComboBox<String> comboBoxMonth; - @FXML private TextField textFieldYear; + @FXML private Spinner<Integer> spinnerYear; @FXML private Button buttonCancel; @FXML private Button buttonConfirm; @@ -54,23 +54,15 @@ public class DatePickerController extends BaseController implements Styleable @Override public void init() { - textFieldYear.setTextFormatter(new TextFormatter<>(c -> { - if(c.getControlNewText().isEmpty()) + SpinnerValueFactory<Integer> spinnerYearValueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 3000, currentDate.getYear()); + spinnerYear.setValueFactory(spinnerYearValueFactory); + spinnerYear.setEditable(false); + spinnerYear.focusedProperty().addListener((observable, oldValue, newValue) -> { + if(!newValue) { - return c; + spinnerYear.increment(0); // won't change value, but will commit editor } - - if(c.getControlNewText().matches("[0-9]*")) - { - return c; - } - else - { - return null; - } - })); - - textFieldYear.setText(String.valueOf(currentDate.getYear())); + }); comboBoxMonth.getItems().addAll(Helpers.getMonthList()); comboBoxMonth.setValue(Helpers.getMonthList().get(currentDate.getMonthOfYear()-1)); @@ -80,7 +72,7 @@ public class DatePickerController extends BaseController implements Styleable public void confirm() { - String year = textFieldYear.getText(); + String year = String.valueOf(spinnerYear.getValue()); if(year == null || year.equals("")) { AlertGenerator.showAlert(AlertType.WARNING, diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java b/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java index e74ac7d96b4d62acd2ec0ef0f65d82437b7c410c..c98510f45f98d29acd84ea82e17a7eec7c39a5f7 100644 --- a/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/controller/NewPaymentController.java @@ -250,13 +250,13 @@ public class NewPaymentController extends BaseController implements Styleable { SpinnerValueFactory<Integer> valueFactory = new SpinnerValueFactory.IntegerSpinnerValueFactory(1, 1000, 0); spinnerRepeatingPeriod.setValueFactory(valueFactory); - spinnerRepeatingPeriod.setEditable(true); + spinnerRepeatingPeriod.setEditable(false); spinnerRepeatingPeriod.focusedProperty().addListener((observable, oldValue, newValue) -> { if(!newValue) { spinnerRepeatingPeriod.increment(0); // won't change value, but will commit editor } - }); + }); } private void initComboBoxRepeatingDay() diff --git a/src/de/deadlocker8/budgetmaster/ui/fxml/DatePickerGUI.fxml b/src/de/deadlocker8/budgetmaster/ui/fxml/DatePickerGUI.fxml index 7c72d479c9188c0c8281ae504cb215afa5318fdf..76cfb1fd918945eaf673d37de9f704194dc72ed5 100644 --- a/src/de/deadlocker8/budgetmaster/ui/fxml/DatePickerGUI.fxml +++ b/src/de/deadlocker8/budgetmaster/ui/fxml/DatePickerGUI.fxml @@ -4,7 +4,7 @@ <?import javafx.scene.control.Button?> <?import javafx.scene.control.ComboBox?> <?import javafx.scene.control.Label?> -<?import javafx.scene.control.TextField?> +<?import javafx.scene.control.Spinner?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> <?import javafx.scene.layout.VBox?> @@ -33,11 +33,7 @@ <Font name="System Bold" size="14.0" /> </font> </Label> - <TextField fx:id="textFieldYear" maxWidth="1.7976931348623157E308" prefHeight="29.0"> - <font> - <Font size="13.0" /> - </font> - </TextField> + <Spinner fx:id="spinnerYear" editable="true" maxWidth="1.7976931348623157E308" minHeight="29.0" minWidth="163.0" prefHeight="29.0" prefWidth="163.0" /> </children> </VBox> </children>