From db5b273ccf8720446eb6f3f9e83d5aa974336f49 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Fri, 17 Mar 2023 14:05:50 +0100 Subject: [PATCH] Made addExpense comboboxes offer options to choose from --- .../demo/controller/AddExpenseController.java | 34 ++++++++++++++++++- src/main/resources/view/AddExpense.fxml | 28 +++++++-------- 2 files changed, 46 insertions(+), 16 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 3a59ab48..ebdf0451 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/AddExpenseController.java @@ -1,8 +1,11 @@ package no.ntnu.idatt1002.demo.controller; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; import javafx.fxml.FXML; +import javafx.scene.control.ComboBox; import javafx.scene.control.TextField; -import no.ntnu.idatt1002.demo.data.Economics.Expense; +import no.ntnu.idatt1002.demo.data.Economics.ExpenseCategory; public class AddExpenseController { @@ -15,9 +18,38 @@ public class AddExpenseController { @FXML private TextField amountField; + @FXML + private ComboBox<ExpenseCategory> categoryBox; + + @FXML + private ComboBox<String> recurringBox; @FXML public void initialize() { + ObservableList<ExpenseCategory> expenseCategories = FXCollections.observableArrayList(ExpenseCategory.values()); + categoryBox.setItems(expenseCategories); + + ObservableList<String> recurring = FXCollections.observableArrayList("Yes", "No"); + recurringBox.setItems(recurring); + } + + public String getDate() { + return dateField.getText(); + } + + public String getDescription() { + return descriptionField.getText(); + } + + public double getAmount() { + return Double.parseDouble(amountField.getText()); + } + + public ExpenseCategory getCategory() { + return categoryBox.getValue(); + } + public boolean isRecurring() { + return recurringBox.getValue().equals("Yes"); } } diff --git a/src/main/resources/view/AddExpense.fxml b/src/main/resources/view/AddExpense.fxml index 40d0d50a..72ec14ca 100644 --- a/src/main/resources/view/AddExpense.fxml +++ b/src/main/resources/view/AddExpense.fxml @@ -4,28 +4,26 @@ <?import javafx.scene.control.DialogPane?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TextField?> -<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.ColumnConstraints?> <?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.RowConstraints?> -<DialogPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="300.0" prefWidth="480.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1"> - <expandableContent> - <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="200.0" prefWidth="320.0" /> - </expandableContent> + +<DialogPane xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.AddExpenseController"> <content> <GridPane> - <columnConstraints> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> - </columnConstraints> - <rowConstraints> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> + <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" /> - </rowConstraints> + </rowConstraints> <children> <Label text="Date:" /> <Label text="Amount:" GridPane.rowIndex="1" /> @@ -36,7 +34,7 @@ <TextField fx:id="amountField" promptText="100" GridPane.columnIndex="1" GridPane.rowIndex="1" /> <TextField fx:id="descriptionField" promptText="(optional)" GridPane.columnIndex="1" GridPane.rowIndex="2" /> <ComboBox fx:id="categoryBox" prefWidth="150.0" promptText="Food" GridPane.columnIndex="1" GridPane.rowIndex="3" /> - <ComboBox fx:id="recurringBox" prefWidth="150.0" promptText="True" GridPane.columnIndex="1" GridPane.rowIndex="4" /> + <ComboBox fx:id="recurringBox" prefWidth="150.0" promptText="No" GridPane.columnIndex="1" GridPane.rowIndex="4" /> </children> </GridPane> </content> -- GitLab