diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java index eec2668bd3c0d944c78628c3b1cc3a4f9c570f56..d9281ff120c6c45de19cf9693cdabd8892a3662d 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/AddBudgetController.java @@ -58,8 +58,34 @@ public class AddBudgetController { String description = descriptionVariable.getText(); newBudgetItem = new BudgetItem(amount, description, category); } + if(chosenBudgetItem != null){ + chosenBudgetItem.setBudgetAmount(Double.parseDouble(amountVariable.getText())); + chosenBudgetItem.setBudgetDescription(descriptionVariable.getText()); + chosenBudgetItem.setBudgetCategory(categoryVariable.getValue()); + } final Node source = (Node) event.getSource(); final Stage stage = (Stage) source.getScene().getWindow(); stage.close(); } + + @FXML + public void setBudget(BudgetItem item){ + chosenBudgetItem = new BudgetItem(item.getBudgetAmount(), item.getBudgetDescription(), item.getBudgetCategory()); + chosenBudgetItem.getAmountProperty().bindBidirectional(item.getAmountProperty()); + chosenBudgetItem.getDescriptionProperty().bindBidirectional(item.getDescriptionProperty()); + chosenBudgetItem.getCategoryProperty().bindBidirectional(item.getCategoryProperty()); + amountVariable.textProperty().set(String.valueOf(item.getBudgetAmount())); + descriptionVariable.textProperty().set(item.getBudgetDescription()); + categoryVariable.setValue(item.getBudgetCategory()); + + + } + + + + public void closeButton(ActionEvent actionEvent) { + final Node source = (Node) actionEvent.getSource(); + final Stage stage = (Stage) source.getScene().getWindow(); + stage.close(); + } } diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java index 2c3c80c0c984b817016a88c90b28eaaae18cedd9..821fe2cfb5f3e40ab4de5f2526cc199013fe2765 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -2,6 +2,7 @@ package no.ntnu.idatt1002.demo.controller; import javafx.collections.FXCollections; import javafx.collections.ObservableList; +import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Node; @@ -11,6 +12,7 @@ import javafx.stage.Modality; import javafx.stage.Stage; import no.ntnu.idatt1002.demo.data.Budget.BudgetItem; import no.ntnu.idatt1002.demo.data.Budget.GeneralBudget; +import no.ntnu.idatt1002.demo.data.Economics.Expense; import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory; @@ -32,6 +34,9 @@ public class BudgetController { @FXML private Button addBudget; + @FXML + private Button editBudget; + @FXML private TableColumn<BudgetItem, Double> amountColumn; @@ -65,9 +70,9 @@ public class BudgetController { budgetList = FXCollections.observableArrayList(listOfBudgetItems); budgetTableView.setItems(budgetList); - categoryColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("category")); + categoryColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, ExpenseCategory>("budgetCategory")); amountColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, Double>("budgetAmount")); - descriptionColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("description")); + descriptionColumn.setCellValueFactory(new PropertyValueFactory<BudgetItem, String>("budgetDescription")); } @FXML public void switchAddBudget(javafx.event.ActionEvent event) throws IOException { @@ -90,6 +95,14 @@ public class BudgetController { dialogTitle = "New Budget"; } + else if (event.getSource().equals(editBudget)) { + dialogMode = DialogMode.EDIT; + dialogTitle = "Edit expense"; + item = budgetTableView.getSelectionModel().getSelectedItem(); + budgetController.setBudget(item); + } else { + return; + } dialog.setTitle(dialogTitle); dialog.showAndWait(); @@ -97,8 +110,8 @@ public class BudgetController { item = budgetController.getNewBudgetItem(); if(item != null && dialogMode == DialogMode.ADD){ listOfBudgetItems.add(item); - refreshObservableList(); } + refreshObservableList(); } @FXML diff --git a/src/main/resources/view/AddBudget.fxml b/src/main/resources/view/AddBudget.fxml index 90dbc58d648951cdcfba279366d8258e256174e1..96e52a73c5c6b258612b7e8a231dd91f8eb5d5fb 100644 --- a/src/main/resources/view/AddBudget.fxml +++ b/src/main/resources/view/AddBudget.fxml @@ -47,7 +47,7 @@ </VBox> <HBox alignment="CENTER" prefHeight="100.0" prefWidth="200.0" spacing="15.0" GridPane.columnIndex="3" GridPane.rowIndex="1"> <children> - <Button fx:id="cancelButton" mnemonicParsing="false" text="Cancel" /> + <Button fx:id="cancelButton" mnemonicParsing="false" onAction="#closeButton" text="Cancel" /> <Button fx:id="addButton" mnemonicParsing="false" onAction="#addBudget" text="Add New Budget" /> </children> </HBox> diff --git a/src/main/resources/view/Budget.fxml b/src/main/resources/view/Budget.fxml index fad58615d9fa316c299b79960f0b6c12bec0c1e4..5138187cb26c246e63446b3b6c59a719b57c2846 100644 --- a/src/main/resources/view/Budget.fxml +++ b/src/main/resources/view/Budget.fxml @@ -36,7 +36,7 @@ <HBox alignment="TOP_CENTER" prefHeight="98.0" prefWidth="600.0" spacing="40.0" GridPane.rowIndex="3"> <children> <Button fx:id="addBudget" minHeight="60.0" minWidth="100.0" mnemonicParsing="false" onAction="#switchAddBudget" prefWidth="100.0" text="Add Budget Item" /> - <Button minHeight="60.0" minWidth="100.0" mnemonicParsing="false" prefWidth="100.0" text="Edit/Remove" /> + <Button fx:id="editBudget" minHeight="60.0" minWidth="100.0" mnemonicParsing="false" onAction="#switchAddBudget" prefWidth="100.0" text="Edit/Remove" /> <Button minHeight="60.0" minWidth="100.0" mnemonicParsing="false" prefWidth="100.0" text="Save/Back" /> </children> </HBox>