From 6a93cbf29cd83db6c4f0216e2190ae377e48bba4 Mon Sep 17 00:00:00 2001
From: Harry Linrui XU <xulr0820@hotmail.com>
Date: Tue, 21 Mar 2023 16:46:10 +0100
Subject: [PATCH] Added method that binds the textfields with an incoming
 expense

---
 .../demo/controller/AddExpenseController.java | 33 ++++++++++++++-----
 1 file changed, 25 insertions(+), 8 deletions(-)

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 97abaa35..13445f97 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java
@@ -1,7 +1,12 @@
 package no.ntnu.idatt1002.demo.controller;
 
 import java.io.IOException;
+import java.text.NumberFormat;
 import java.util.Optional;
+import javafx.beans.property.DoubleProperty;
+import javafx.beans.property.SimpleDoubleProperty;
+import javafx.beans.property.SimpleStringProperty;
+import javafx.beans.property.StringProperty;
 import javafx.collections.FXCollections;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
@@ -64,15 +69,27 @@ public class AddExpenseController {
     return recurringBox.getValue().equals("Yes");
   }
 
+  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());
+    descriptionField.textProperty().bindBidirectional(descriptionProperty);
+  }
   public void pressOkBtn(ActionEvent event) {
-    String date = dateField.getText();
-    double amount = Double.parseDouble(amountField.getText());
-    String description = descriptionField.getText();
-    ExpenseCategory category = getCategory();
-    boolean recurring = isRecurring();
-
-    newExpense = new Expense(description, amount, recurring, category, date);
-    System.out.println(date + " " + amount + " " + description + " " + category + " " + recurring);
+    if (this.newExpense.getAmount() == 1.1) {
+      String date = dateField.getText();
+      double amount = Double.parseDouble(amountField.getText());
+      String description = descriptionField.getText();
+      ExpenseCategory category = getCategory();
+      boolean recurring = isRecurring();
+
+      newExpense = new Expense(description, amount, recurring, category, date);
+      System.out.println(date + " " + amount + " " + description + " " + category + " " + recurring);
+    }
 
     final Node source = (Node) event.getSource();
     ((Stage) source.getScene().getWindow()).close();
-- 
GitLab