diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java index 13445f97661c5e9644d84a24db4a5c34a2a0a7b8..22a9c78bd1dabfd92decfdd94c2640801064d3dc 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java @@ -72,11 +72,10 @@ public class AddExpenseController { public void setExpense(Expense expense) { this.newExpense = expense; StringProperty dateProperty = new SimpleStringProperty(expense.getDate()); - DoubleProperty amountProperty = new SimpleDoubleProperty(expense.getAmount()); StringProperty descriptionProperty = new SimpleStringProperty(expense.getDescription()); dateField.textProperty().bindBidirectional(dateProperty); - amountField.textProperty().bindBidirectional(amountProperty, NumberFormat.getNumberInstance()); + amountField.textProperty().bindBidirectional(expense.amountProperty(), NumberFormat.getNumberInstance()); descriptionField.textProperty().bindBidirectional(descriptionProperty); } public void pressOkBtn(ActionEvent event) { diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java index 1e4401da7d355650006e414decabec0e8fb066a6..488cab6951bd65485fe0e0e9127ca4eeb5b7dfea 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/ExpensesController.java @@ -97,34 +97,33 @@ public class ExpensesController { Dialog<Expense> dialog = new Dialog<>(); dialog.initModality(Modality.APPLICATION_MODAL); + try { + // Set the Dialog's content to the loaded FXML file + dialog.getDialogPane().setContent(loader.load()); + } catch (IOException e) { + e.printStackTrace(); + } + + // Get the controller for the loaded FXML file + AddExpenseController dialogController = loader.getController(); + if (event.getSource().equals(add)) { mode = DialogMode.ADD; dialogTitle = "Add expense"; - newExpense = new Expense(1.1, false, ExpenseCategory.FOOD, "1/1/23"); - } else if (event.getSource().equals(edit)) { + } else if (event.getSource().equals(edit) && expenseTableView.getSelectionModel().getSelectedItem() != null) { mode = DialogMode.EDIT; dialogTitle = "Edit expense"; newExpense = expenseTableView.getSelectionModel().getSelectedItem(); + dialogController.setExpense(newExpense); } else { return; } - try { - // Set the Dialog's content to the loaded FXML file - dialog.getDialogPane().setContent(loader.load()); - dialog.setTitle(dialogTitle); - } catch (IOException e) { - e.printStackTrace(); - } - - AddExpenseController dialogController = loader.getController(); - dialogController.setExpense(newExpense); - // Get the controller for the loaded FXML file - + dialog.setTitle(dialogTitle); // Show the Dialog and wait for the user to close it - dialog.showAndWait(); + dialog.showAndWait(); //Get the newly created expense from the dialog pane newExpense = dialogController.getNewExpense(); @@ -132,7 +131,7 @@ public class ExpensesController { if (newExpense != null && mode == DialogMode.ADD) { expenseTableView.getItems().add(newExpense); } else { - System.out.println("expense is null"); + System.out.println("expense is null or dialog mode is add"); } expenseTableView.refresh(); }