From cc7b00ccba575fe4371f1a51f894bc48f307e3d6 Mon Sep 17 00:00:00 2001 From: Harry Linrui XU <xulr0820@hotmail.com> Date: Tue, 18 Apr 2023 15:34:49 +0200 Subject: [PATCH] Continued working on implementing several budgets --- .../demo/controller/BudgetController.java | 5 ++ .../idatt1002/demo/controller/MainMenu.java | 1 + .../demo/controller/SceneController.java | 2 +- src/main/resources/APRIL1/Budget.budget | 1 + src/main/resources/APRIL1/Expense.budget | 0 src/main/resources/APRIL1/Income.budget | 0 src/main/resources/APRIL100/Budget.budget | 1 + src/main/resources/APRIL100/Expense.budget | 0 src/main/resources/APRIL100/Income.budget | 0 src/main/resources/APRIL1000/Budget.budget | 1 + src/main/resources/APRIL1000/Expense.budget | 0 src/main/resources/APRIL1000/Income.budget | 0 src/main/resources/APRILBudget/Budget.budget | 1 + src/main/resources/APRILBudget/Expense.budget | 0 src/main/resources/APRILBudget/Income.budget | 0 src/main/resources/CurrentFile.txt | 1 + src/main/resources/view/BudgetNewest.fxml | 22 +++++--- src/main/resources/view/CreateBudget.fxml | 55 +++++++++++++++++++ .../resources/view/IncomeAndExpenses.fxml | 11 ++-- src/main/resources/view/MainMenuNew.fxml | 15 +---- src/main/resources/view/dualList.fxml | 8 +-- src/main/resources/view/newBudgetBudgert.fxml | 22 ++++---- 22 files changed, 104 insertions(+), 42 deletions(-) create mode 100644 src/main/resources/APRIL1/Budget.budget create mode 100644 src/main/resources/APRIL1/Expense.budget create mode 100644 src/main/resources/APRIL1/Income.budget create mode 100644 src/main/resources/APRIL100/Budget.budget create mode 100644 src/main/resources/APRIL100/Expense.budget create mode 100644 src/main/resources/APRIL100/Income.budget create mode 100644 src/main/resources/APRIL1000/Budget.budget create mode 100644 src/main/resources/APRIL1000/Expense.budget create mode 100644 src/main/resources/APRIL1000/Income.budget create mode 100644 src/main/resources/APRILBudget/Budget.budget create mode 100644 src/main/resources/APRILBudget/Expense.budget create mode 100644 src/main/resources/APRILBudget/Income.budget create mode 100644 src/main/resources/CurrentFile.txt create mode 100644 src/main/resources/view/CreateBudget.fxml 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 d6e931cf..1299010d 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/BudgetController.java @@ -85,6 +85,9 @@ public class BudgetController extends FinanceController { @FXML private PieChart budgetPieChart; + @FXML + private Label daysLeftLbl; + /** * Initializes the budget register, the observable budget list and the tableview, along with the values of the dropbox used for filtering the tableview. @@ -107,6 +110,7 @@ public class BudgetController extends FinanceController { if (FileHandlingBudget.isNewBudget("Budget")) { returnBtn.setOpacity(0); returnBtn.setDisable(true); + daysLeftLbl.setOpacity(0); } else { refreshPieChart(); //addBtn.setDisable(true); @@ -118,6 +122,7 @@ public class BudgetController extends FinanceController { continueBtn.setOpacity(0); } } catch(IOException ioe) { + ioe.printStackTrace(); showErrorDialogBox("File reading error", "Error in reading file", "Could not" + "read from the Budget file"); } diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java index f4790417..f95a5a0d 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/MainMenu.java @@ -206,6 +206,7 @@ public class MainMenu { public GeneralBudget loadBudgetDataFromFile(String fileName) throws IOException { //Instantiate new budget if (FileHandlingBudget.isEmpty(fileName)) { + System.out.println("hey"); generalBudget = new GeneralBudget(1000); } else { //Load previous budget try { diff --git a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java index 9a8ccf35..56f98861 100644 --- a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java +++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java @@ -100,7 +100,7 @@ public class SceneController { } public void switchMainMenu(ActionEvent event) throws IOException { - FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/dualList.fxml")); + FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/MainMenuNew.fxml")); Parent root = loader.load(); Stage stage = (Stage)((Node)event.getSource()).getScene().getWindow(); Scene scene = new Scene(root); diff --git a/src/main/resources/APRIL1/Budget.budget b/src/main/resources/APRIL1/Budget.budget new file mode 100644 index 00000000..ce4d3286 --- /dev/null +++ b/src/main/resources/APRIL1/Budget.budget @@ -0,0 +1 @@ +maxAmount=50.0 \ No newline at end of file diff --git a/src/main/resources/APRIL1/Expense.budget b/src/main/resources/APRIL1/Expense.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRIL1/Income.budget b/src/main/resources/APRIL1/Income.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRIL100/Budget.budget b/src/main/resources/APRIL100/Budget.budget new file mode 100644 index 00000000..ce4d3286 --- /dev/null +++ b/src/main/resources/APRIL100/Budget.budget @@ -0,0 +1 @@ +maxAmount=50.0 \ No newline at end of file diff --git a/src/main/resources/APRIL100/Expense.budget b/src/main/resources/APRIL100/Expense.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRIL100/Income.budget b/src/main/resources/APRIL100/Income.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRIL1000/Budget.budget b/src/main/resources/APRIL1000/Budget.budget new file mode 100644 index 00000000..ce4d3286 --- /dev/null +++ b/src/main/resources/APRIL1000/Budget.budget @@ -0,0 +1 @@ +maxAmount=50.0 \ No newline at end of file diff --git a/src/main/resources/APRIL1000/Expense.budget b/src/main/resources/APRIL1000/Expense.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRIL1000/Income.budget b/src/main/resources/APRIL1000/Income.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRILBudget/Budget.budget b/src/main/resources/APRILBudget/Budget.budget new file mode 100644 index 00000000..ce4d3286 --- /dev/null +++ b/src/main/resources/APRILBudget/Budget.budget @@ -0,0 +1 @@ +maxAmount=50.0 \ No newline at end of file diff --git a/src/main/resources/APRILBudget/Expense.budget b/src/main/resources/APRILBudget/Expense.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/APRILBudget/Income.budget b/src/main/resources/APRILBudget/Income.budget new file mode 100644 index 00000000..e69de29b diff --git a/src/main/resources/CurrentFile.txt b/src/main/resources/CurrentFile.txt new file mode 100644 index 00000000..3b2ced82 --- /dev/null +++ b/src/main/resources/CurrentFile.txt @@ -0,0 +1 @@ +APRIL1 \ No newline at end of file diff --git a/src/main/resources/view/BudgetNewest.fxml b/src/main/resources/view/BudgetNewest.fxml index 44900e21..a3b50a14 100644 --- a/src/main/resources/view/BudgetNewest.fxml +++ b/src/main/resources/view/BudgetNewest.fxml @@ -72,11 +72,11 @@ </BorderPane> <BorderPane prefHeight="64.0" prefWidth="1100.0"> <left> - <HBox prefHeight="100.0" prefWidth="200.0" spacing="10.0" BorderPane.alignment="CENTER"> + <HBox prefHeight="64.0" prefWidth="326.0" spacing="10.0" BorderPane.alignment="CENTER"> <children> - <Button fx:id="addBtn" mnemonicParsing="false" onAction="#handleAddBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="addBtn" mnemonicParsing="false" onAction="#handleAddBtn" prefHeight="25.0" prefWidth="60.0" text="Add"> <font> - <Font name="Lucida Console" size="12.0" /> + <Font name="Lucida Console" size="14.0" /> </font> <graphic> <ImageView fitHeight="30.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true"> @@ -86,9 +86,9 @@ </ImageView> </graphic> </Button> - <Button fx:id="editBtn" mnemonicParsing="false" onAction="#handleEditBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="editBtn" mnemonicParsing="false" onAction="#handleEditBtn" prefHeight="39.0" prefWidth="91.0" text="Edit"> <font> - <Font name="Lucida Console" size="12.0" /> + <Font name="Lucida Console" size="14.0" /> </font> <graphic> <ImageView fitHeight="30.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true"> @@ -98,9 +98,9 @@ </ImageView> </graphic> </Button> - <Button fx:id="deleteBtn" mnemonicParsing="false" onAction="#handleDeleteBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="deleteBtn" mnemonicParsing="false" onAction="#handleDeleteBtn" prefHeight="39.0" prefWidth="119.0" text="Delete"> <font> - <Font name="Lucida Console" size="12.0" /> + <Font name="Lucida Console" size="14.0" /> </font> <graphic> <ImageView fitHeight="30.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true"> @@ -177,8 +177,12 @@ <Insets top="10.0" /> </VBox.margin> </TableView> - <Button fx:id="backBtn" mnemonicParsing="false" text="back" /> - <Button fx:id="continueBtn" mnemonicParsing="false" text="continue" /> + <HBox alignment="TOP_RIGHT"> + <children> + <Button fx:id="backBtn" mnemonicParsing="false" text="back" /> + <Button fx:id="continueBtn" mnemonicParsing="false" text="continue" /> + </children> + </HBox> </children> <GridPane.margin> <Insets top="30.0" /> diff --git a/src/main/resources/view/CreateBudget.fxml b/src/main/resources/view/CreateBudget.fxml new file mode 100644 index 00000000..adfe27dc --- /dev/null +++ b/src/main/resources/view/CreateBudget.fxml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<?import javafx.geometry.Insets?> +<?import javafx.scene.control.Button?> +<?import javafx.scene.control.DialogPane?> +<?import javafx.scene.control.Label?> +<?import javafx.scene.control.TextField?> +<?import javafx.scene.layout.ColumnConstraints?> +<?import javafx.scene.layout.GridPane?> +<?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.Pane?> +<?import javafx.scene.layout.RowConstraints?> +<?import javafx.scene.layout.VBox?> +<?import javafx.scene.text.Text?> + +<DialogPane prefHeight="225.0" prefWidth="240.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.CreateBudgetController"> + <content> + <VBox> + <children> + <GridPane> + <columnConstraints> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" /> + </columnConstraints> + <rowConstraints> + <RowConstraints /> + <RowConstraints maxHeight="20.0" minHeight="10.0" prefHeight="20.0" vgrow="SOMETIMES" /> + <RowConstraints maxHeight="20.0" minHeight="10.0" prefHeight="20.0" vgrow="SOMETIMES" /> + </rowConstraints> + <children> + <TextField fx:id="nameField" promptText="Name" GridPane.columnIndex="1" GridPane.rowIndex="1" /> + <Label text="Name: " GridPane.rowIndex="1" /> + </children> + </GridPane> + <Label fx:id="errorMsg" alignment="CENTER_RIGHT" opacity="0.0" text="Please fill in the name" textFill="RED" /> + <HBox alignment="CENTER_RIGHT" prefHeight="100.0" prefWidth="200.0" spacing="5.0"> + <children> + <Button fx:id="cancelBtn" mnemonicParsing="false" onAction="#pressCancelBtn" prefWidth="70.0" text="Cancel" /> + <Button fx:id="okBtn" mnemonicParsing="false" onAction="#pressOkBtn" prefWidth="70.0" text="OK" /> + </children> + <VBox.margin> + <Insets top="10.0" /> + </VBox.margin> + </HBox> + </children> + </VBox> + </content> + <header> + <Pane prefHeight="40.0"> + <children> + <Text layoutX="12.0" layoutY="25.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Please type the name of your budget" /> + </children> + </Pane> + </header> +</DialogPane> diff --git a/src/main/resources/view/IncomeAndExpenses.fxml b/src/main/resources/view/IncomeAndExpenses.fxml index f6ae580a..e061b02f 100644 --- a/src/main/resources/view/IncomeAndExpenses.fxml +++ b/src/main/resources/view/IncomeAndExpenses.fxml @@ -79,9 +79,9 @@ </BorderPane> <BorderPane prefHeight="64.0" prefWidth="1100.0"> <left> - <HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0" spacing="10.0" BorderPane.alignment="CENTER"> + <HBox alignment="CENTER_LEFT" prefHeight="64.0" prefWidth="261.0" spacing="10.0" BorderPane.alignment="CENTER"> <children> - <MenuButton mnemonicParsing="false" prefHeight="25.0" prefWidth="50.0"> + <MenuButton mnemonicParsing="false" prefHeight="38.0" prefWidth="101.0" text="ADD"> <items> <MenuItem fx:id="addIncome" mnemonicParsing="false" onAction="#handleAddBtn" text="Income" /> <MenuItem fx:id="addExpense" mnemonicParsing="false" onAction="#handleAddBtn" text="Expense" /> @@ -93,8 +93,11 @@ </image> </ImageView> </graphic> + <font> + <Font name="Lucida Console" size="14.0" /> + </font> </MenuButton> - <Button mnemonicParsing="false" text="popup explaining how to edit/delete" /> + <Button mnemonicParsing="false" /> </children> <BorderPane.margin> <Insets left="30.0" /> @@ -113,7 +116,7 @@ <center> <Pane BorderPane.alignment="CENTER"> <children> - <ComboBox fx:id="filter" layoutX="135.0" layoutY="25.0" prefWidth="150.0" promptText="Show"> + <ComboBox fx:id="filter" layoutX="74.0" layoutY="19.0" prefWidth="150.0" promptText="Show"> <opaqueInsets> <Insets /> </opaqueInsets> diff --git a/src/main/resources/view/MainMenuNew.fxml b/src/main/resources/view/MainMenuNew.fxml index bf3e9383..429e3fa0 100644 --- a/src/main/resources/view/MainMenuNew.fxml +++ b/src/main/resources/view/MainMenuNew.fxml @@ -18,7 +18,6 @@ <?import javafx.scene.layout.VBox?> <?import javafx.scene.text.Font?> - <AnchorPane fx:id="root" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.MainMenu"> <children> <ImageView fitHeight="719.0" fitWidth="1130.0" layoutY="-3.0" pickOnBounds="true" preserveRatio="true"> @@ -201,19 +200,7 @@ <Font name="Lucida Console" size="14.0" /> </font> </Button> - <Button fx:id="expenseBtn" contentDisplay="TOP" mnemonicParsing="false" onAction="#switchScene" prefHeight="100.0" prefWidth="150.0" text="View expenses"> - <graphic> - <ImageView fitHeight="75.0" fitWidth="75.0" pickOnBounds="true" preserveRatio="true"> - <image> - <Image url="@../Images/expense.png" /> - </image> - </ImageView> - </graphic> - <font> - <Font name="Lucida Console" size="14.0" /> - </font> - </Button> - <Button fx:id="incomeBtn" alignment="TOP_CENTER" contentDisplay="TOP" mnemonicParsing="false" onAction="#switchScene" prefHeight="100.0" prefWidth="150.0" text="View income"> + <Button fx:id="incomeBtn" alignment="TOP_CENTER" contentDisplay="TOP" mnemonicParsing="false" onAction="#switchScene" prefHeight="100.0" prefWidth="150.0" text="Income/expenses"> <graphic> <ImageView fitHeight="75.0" fitWidth="75.0" pickOnBounds="true" preserveRatio="true"> <image> diff --git a/src/main/resources/view/dualList.fxml b/src/main/resources/view/dualList.fxml index 07a3282c..2348bbaa 100644 --- a/src/main/resources/view/dualList.fxml +++ b/src/main/resources/view/dualList.fxml @@ -142,15 +142,15 @@ </HBox> <HBox alignment="CENTER_LEFT" prefWidth="410.0" spacing="5.0"> <children> - <MenuButton mnemonicParsing="false" text="MenuButton"> + <MenuButton mnemonicParsing="false" prefHeight="42.0" prefWidth="105.0" text="Add"> <items> <MenuItem fx:id="addIncome" mnemonicParsing="false" onAction="#handleAddBtn" text="Income" /> <MenuItem fx:id="addExpense" mnemonicParsing="false" onAction="#handleAddBtn" text="Expense" /> </items> <graphic> - <ImageView fitHeight="19.0" fitWidth="16.0" pickOnBounds="true" preserveRatio="true"> + <ImageView fitHeight="30.0" fitWidth="50.0" pickOnBounds="true" preserveRatio="true"> <image> - <Image url="@../Images/add_image.png" /> + <Image url="@../Images/add.png" /> </image> </ImageView> </graphic> @@ -165,7 +165,7 @@ </HBox> <VBox alignment="CENTER_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="5.0" GridPane.columnIndex="1"> <children> - <ComboBox fx:id="filter" prefWidth="150.0" promptText="Show"> + <ComboBox fx:id="filter" prefHeight="39.0" prefWidth="119.0" promptText="Show"> <opaqueInsets> <Insets /> </opaqueInsets> diff --git a/src/main/resources/view/newBudgetBudgert.fxml b/src/main/resources/view/newBudgetBudgert.fxml index c148ca4b..64fa139e 100644 --- a/src/main/resources/view/newBudgetBudgert.fxml +++ b/src/main/resources/view/newBudgetBudgert.fxml @@ -17,6 +17,7 @@ <?import javafx.scene.layout.ColumnConstraints?> <?import javafx.scene.layout.GridPane?> <?import javafx.scene.layout.HBox?> +<?import javafx.scene.layout.Pane?> <?import javafx.scene.layout.RowConstraints?> <?import javafx.scene.layout.StackPane?> <?import javafx.scene.layout.VBox?> @@ -106,9 +107,9 @@ <RowConstraints minHeight="10.0" vgrow="SOMETIMES" /> </rowConstraints> <children> - <HBox alignment="CENTER_LEFT" prefHeight="100.0" prefWidth="200.0" spacing="10.0"> + <HBox alignment="CENTER_LEFT" prefHeight="42.0" prefWidth="243.0" spacing="10.0"> <children> - <Button fx:id="addBtn" mnemonicParsing="false" onAction="#handleAddBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="addBtn" mnemonicParsing="false" onAction="#handleAddBtn" prefHeight="28.0" prefWidth="38.0" text="Add"> <font> <Font name="Lucida Console" size="12.0" /> </font> @@ -120,7 +121,7 @@ </ImageView> </graphic> </Button> - <Button fx:id="editBtn" mnemonicParsing="false" onAction="#handleEditBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="editBtn" mnemonicParsing="false" onAction="#handleEditBtn" prefHeight="28.0" prefWidth="86.0" text="Edit"> <font> <Font name="Lucida Console" size="12.0" /> </font> @@ -132,7 +133,7 @@ </ImageView> </graphic> </Button> - <Button fx:id="deleteBtn" mnemonicParsing="false" onAction="#handleDeleteBtn" prefHeight="25.0" prefWidth="60.0"> + <Button fx:id="deleteBtn" mnemonicParsing="false" onAction="#handleDeleteBtn" prefHeight="28.0" prefWidth="109.0" text="Delete"> <font> <Font name="Lucida Console" size="12.0" /> </font> @@ -146,9 +147,9 @@ </Button> </children> </HBox> - <HBox alignment="CENTER_LEFT" GridPane.columnIndex="1"> + <HBox alignment="CENTER_RIGHT" prefHeight="42.0" prefWidth="106.0" GridPane.columnIndex="1"> <children> - <ComboBox fx:id="filter" prefHeight="20.0" prefWidth="180.0" promptText="Show"> + <ComboBox fx:id="filter" prefHeight="25.0" prefWidth="80.0" promptText="Show"> <opaqueInsets> <Insets /> </opaqueInsets> @@ -210,16 +211,17 @@ <Font size="36.0" /> </font> </Label> - <StackPane GridPane.columnIndex="2"> + <Pane GridPane.columnIndex="2"> <children> - <DatePicker fx:id="date" prefWidth="175.0" /> - <Label fx:id="daysLeftLbl" text="Days left: 31"> + <StackPane /> + <Label fx:id="daysLeftLbl" layoutX="33.0" layoutY="62.0" text="Days left: 31"> <font> <Font name="Lucida Console" size="14.0" /> </font> </Label> + <DatePicker fx:id="date" layoutX="3.0" layoutY="32.0" prefWidth="175.0" /> </children> - </StackPane> + </Pane> </children> </GridPane> </children> -- GitLab