From 053c63a5fe6756805dc3cd389b7f669b6ea624ec Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 10 Dec 2017 12:53:07 +0100 Subject: [PATCH] Fixed #242 - dont't prefill enddate if not set by user; Fixed #241 - repeating every x days not working properly if no enddate is set --- .../ui/controller/NewPaymentController.java | 22 ++++++++++++++----- .../budgetmaster/languages/_de.properties | 2 +- .../budgetmaster/languages/_en.properties | 2 +- .../budgetmaster/ui/fxml/NewPaymentGUI.fxml | 1 + 4 files changed, 19 insertions(+), 8 deletions(-) diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/NewPaymentController.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/NewPaymentController.java index 0dcd07c18..f72708456 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/NewPaymentController.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/NewPaymentController.java @@ -71,6 +71,7 @@ public class NewPaymentController extends BaseController implements Styleable @FXML private TextArea textArea; @FXML private HBox hboxTags; @FXML private Button buttonTagsHelp; + @FXML private CheckBox checkBoxEndDate; private Stage parentStage; private Controller controller; @@ -248,6 +249,10 @@ public class NewPaymentController extends BaseController implements Styleable } } }); + + checkBoxEndDate.selectedProperty().addListener((obs, oldValue, newValue)->{ + datePickerEnddate.setDisable(!newValue); + }); } private void initSpinnerRepeatingPeriod() @@ -334,6 +339,8 @@ public class NewPaymentController extends BaseController implements Styleable toggleRepeatingArea(true); comboBoxRepeatingDay.getSelectionModel().select(currentPayment.getRepeatMonthDay()-1); } + + checkBoxEndDate.setSelected(currentPayment.getRepeatEndDate() != null); if(currentPayment.getRepeatEndDate() != null) { datePickerEnddate.setValue(LocalDate.parse(currentPayment.getRepeatEndDate())); @@ -445,17 +452,18 @@ public class NewPaymentController extends BaseController implements Styleable return; } - if(datePickerEnddate.getValue() != null && datePickerEnddate.getValue().isBefore(date)) + if(checkBoxEndDate.isSelected() && datePickerEnddate.getValue() != null && datePickerEnddate.getValue().isBefore(date)) { showWarning(Localization.getString(Strings.WARNING_ENDDATE_BEFORE_STARTDATE)); return; } if(edit) - { + { try - { - RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval, Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); + { + LocalDate endDate = checkBoxEndDate.isSelected() ? datePickerEnddate.getValue() : null; + RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval, Helpers.getDateString(endDate), repeatingDay); ServerConnection connection = new ServerConnection(controller.getSettings()); if(payment instanceof NormalPayment) @@ -481,7 +489,8 @@ public class NewPaymentController extends BaseController implements Styleable } else { - RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval,Helpers.getDateString(datePickerEnddate.getValue()), repeatingDay); + LocalDate endDate = checkBoxEndDate.isSelected() ? datePickerEnddate.getValue() : null; + RepeatingPayment newPayment = new RepeatingPayment(-1, amount, Helpers.getDateString(date), comboBoxCategory.getValue().getID(), name, description, repeatingInterval, Helpers.getDateString(endDate), repeatingDay); try { ServerConnection connection = new ServerConnection(controller.getSettings()); @@ -599,7 +608,8 @@ public class NewPaymentController extends BaseController implements Styleable spinnerRepeatingPeriod.setDisable(!selected); comboBoxRepeatingDay.setDisable(!selected); } - datePickerEnddate.setDisable(!selected); + checkBoxEndDate.setDisable(!selected); + datePickerEnddate.setDisable(!selected || !checkBoxEndDate.isSelected()); radioButtonPeriod.setDisable(!selected); radioButtonDay.setDisable(!selected); labelText1.setDisable(!selected); diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties index 3161b37ad..b0c2bac13 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_de.properties @@ -292,7 +292,7 @@ payment.new.label.repeating=Wiederholung: payment.new.label.repeating.all=Alle payment.new.label.repeating.days=Tage payment.new.label.repeating.monthday=jeden Monat am: -payment.new.label.enddate=Enddatum +payment.new.label.enddate=Enddatum: payment.new.button.save=Speichern paymenttab.button.new.income=\ Neue Einnahme diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties index d5ad30110..5d1b2c64d 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/languages/_en.properties @@ -292,7 +292,7 @@ payment.new.label.repeating=Repeating: payment.new.label.repeating.all=every payment.new.label.repeating.days=days payment.new.label.repeating.monthday=every month at: -payment.new.label.enddate=Enddate +payment.new.label.enddate=Enddate: payment.new.button.save=Save paymenttab.button.new.income=\ New Income diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/fxml/NewPaymentGUI.fxml b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/fxml/NewPaymentGUI.fxml index caffbf8e6..e61d435c4 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/fxml/NewPaymentGUI.fxml +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/fxml/NewPaymentGUI.fxml @@ -190,6 +190,7 @@ <Font name="System Bold" size="14.0" /> </font> </Label> + <CheckBox fx:id="checkBoxEndDate" mnemonicParsing="false" /> <DatePicker fx:id="datePickerEnddate" maxWidth="1.7976931348623157E308" prefHeight="29.0" HBox.hgrow="ALWAYS" /> </children> </HBox> -- GitLab