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 0dcd07c1804213ad62173daf7a5be5ede2c82d3a..f7270845676a79b5dc07e71293a3d8b0f0cbe19f 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 3161b37ad8f0fa464426c4cccbfdf64ecda45012..b0c2bac13f24759e5757dbe80a4085345474fea2 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 d5ad30110d1e7d9b23000c0fbed2de8b65fbcaf9..5d1b2c64d4166f71781d0f34383a87448c493c44 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 caffbf8e6bc624e604153a6bbe9a71f18a02541c..e61d435c45f801cbe16c165358193759345ae35f 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>