From 1dc2f5ceecd2581573fc7bd4bf5f29a2e34f9055 Mon Sep 17 00:00:00 2001
From: anderebe <anderebe@stud.ntnu.no>
Date: Mon, 13 Mar 2023 11:10:33 +0100
Subject: [PATCH] Made an income fxml that corresponds with expenses

---
 .../demo/controller/SceneController.java      |  22 ++-
 src/main/resources/view/Expenses.fxml         |  13 +-
 src/main/resources/view/FirstMenu.fxml        |   2 +-
 src/main/resources/view/Income.fxml           | 148 ++++++++++++++++++
 4 files changed, 168 insertions(+), 17 deletions(-)
 create mode 100644 src/main/resources/view/Income.fxml

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 4c3abfd3..e27ce1f0 100644
--- a/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java
+++ b/src/main/java/no/ntnu/idatt1002/demo/controller/SceneController.java
@@ -2,25 +2,12 @@ package no.ntnu.idatt1002.demo.controller;
 
 import java.io.IOException;
 
-import java.net.URL;
-import java.util.ResourceBundle;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
 import javafx.fxml.FXMLLoader;
-import javafx.fxml.Initializable;
 import javafx.scene.Node;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
-import javafx.scene.control.Button;
-import javafx.scene.control.ComboBox;
-import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableView;
-import javafx.scene.control.cell.PropertyValueFactory;
 import javafx.stage.Stage;
-import no.ntnu.idatt1002.demo.data.Expense;
-import no.ntnu.idatt1002.demo.data.ExpenseCategory;
 
 public class SceneController /*implements Initializable*/ {
 
@@ -79,6 +66,15 @@ public class SceneController /*implements Initializable*/ {
     stage.show();
   }
 
+  public void switchIncome(ActionEvent event) throws IOException {
+    FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Income.fxml"));
+    Parent root = loader.load();
+    stage = (Stage)((Node)event.getSource()).getScene().getWindow();
+    scene = new Scene(root);
+    stage.setScene(scene);
+    stage.show();
+  }
+
   public void switchExpenses(ActionEvent event) throws IOException {
     FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Expenses.fxml"));
     Parent root = loader.load();
diff --git a/src/main/resources/view/Expenses.fxml b/src/main/resources/view/Expenses.fxml
index 6089a614..ec2d793a 100644
--- a/src/main/resources/view/Expenses.fxml
+++ b/src/main/resources/view/Expenses.fxml
@@ -33,7 +33,7 @@
          <top>
             <HBox BorderPane.alignment="CENTER">
                <children>
-                  <Button mnemonicParsing="false" text="Return ">
+                  <Button mnemonicParsing="false" onAction="#switchIncome" text="Return ">
                      <opaqueInsets>
                         <Insets left="100.0" />
                      </opaqueInsets>
@@ -98,10 +98,17 @@
                   </VBox>
                   <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2">
                      <children>
-                        <Button mnemonicParsing="false" text="Overview" />
+                        <Button mnemonicParsing="false" text="Overview">
+                           <HBox.margin>
+                              <Insets right="5.0" />
+                           </HBox.margin></Button>
                       <Button mnemonicParsing="false" text="Income" />
-                        <Button mnemonicParsing="false" text="Expenses" />
+                        <Button disable="true" mnemonicParsing="false" text="Expenses" />
                         <Button mnemonicParsing="false" text="Savings" />
+                        <Button mnemonicParsing="false" text="Next">
+                           <HBox.margin>
+                              <Insets left="170.0" />
+                           </HBox.margin></Button>
                      </children>
                      <padding>
                         <Insets top="10.0" />
diff --git a/src/main/resources/view/FirstMenu.fxml b/src/main/resources/view/FirstMenu.fxml
index 4a7ed99a..fe78dd0a 100644
--- a/src/main/resources/view/FirstMenu.fxml
+++ b/src/main/resources/view/FirstMenu.fxml
@@ -21,7 +21,7 @@
          <Font name="Verdana" size="18.0" />
       </font>
    </Label>
-   <Button layoutX="69.0" layoutY="212.0" mnemonicParsing="false" onAction="#switchNewBudget" text="New Budget">
+   <Button layoutX="69.0" layoutY="212.0" mnemonicParsing="false" onAction="#switchIncome" text="New Budget">
       <font>
          <Font size="24.0" />
       </font>
diff --git a/src/main/resources/view/Income.fxml b/src/main/resources/view/Income.fxml
new file mode 100644
index 00000000..0e755e14
--- /dev/null
+++ b/src/main/resources/view/Income.fxml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.geometry.Insets?>
+<?import javafx.scene.Cursor?>
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.control.ComboBox?>
+<?import javafx.scene.control.TableColumn?>
+<?import javafx.scene.control.TableView?>
+<?import javafx.scene.image.Image?>
+<?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.AnchorPane?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.ColumnConstraints?>
+<?import javafx.scene.layout.GridPane?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.Region?>
+<?import javafx.scene.layout.RowConstraints?>
+<?import javafx.scene.layout.VBox?>
+<?import javafx.scene.text.Font?>
+<?import javafx.scene.text.Text?>
+
+<AnchorPane xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController">
+   <children>
+      <ImageView fitHeight="400.0" fitWidth="600.0" pickOnBounds="true">
+         <image>
+            <Image url="@../Images/backgroundMini.jpg" />
+         </image>
+         <cursor>
+            <Cursor fx:constant="DEFAULT" />
+         </cursor>
+      </ImageView>
+      <BorderPane prefHeight="400.0" prefWidth="593.0">
+         <top>
+            <HBox BorderPane.alignment="CENTER">
+               <children>
+                  <Button cancelButton="true" mnemonicParsing="false" onAction="#switchStartMenu" text="Return ">
+                     <opaqueInsets>
+                        <Insets left="100.0" />
+                     </opaqueInsets>
+                     <HBox.margin>
+                        <Insets left="10.0" top="10.0" />
+                     </HBox.margin>
+                  </Button>
+                  <Region prefHeight="70.0" prefWidth="141.0" />
+                  <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Income" textAlignment="CENTER" translateX="30.0">
+                     <HBox.margin>
+                        <Insets />
+                     </HBox.margin>
+                     <font>
+                        <Font size="48.0" />
+                     </font>
+                  </Text>
+               </children>
+               <opaqueInsets>
+                  <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+               </opaqueInsets>
+            </HBox>
+         </top>
+         <center>
+            <GridPane BorderPane.alignment="CENTER">
+               <BorderPane.margin>
+                  <Insets bottom="40.0" left="40.0" right="40.0" />
+               </BorderPane.margin>
+               <columnConstraints>
+                  <ColumnConstraints hgrow="ALWAYS" maxWidth="485.3333231608073" minWidth="10.0" prefWidth="427.33335367838544" />
+                  <ColumnConstraints hgrow="ALWAYS" maxWidth="111.33333333333331" minWidth="10.0" prefWidth="92.66664632161456" />
+               </columnConstraints>
+               <rowConstraints>
+                  <RowConstraints maxHeight="65.33334064483643" minHeight="10.0" prefHeight="65.33334064483643" vgrow="SOMETIMES" />
+                  <RowConstraints maxHeight="298.66665744781494" minHeight="10.0" prefHeight="214.00004069010413" vgrow="SOMETIMES" />
+                  <RowConstraints maxHeight="298.66665744781494" minHeight="10.0" prefHeight="29.999959309895814" vgrow="SOMETIMES" />
+               </rowConstraints>
+               <children>
+                  <HBox alignment="BOTTOM_LEFT" prefWidth="410.0" spacing="5.0">
+                     <children>
+                        <Button fx:id="add" alignment="TOP_CENTER" mnemonicParsing="false" text="Add" textAlignment="CENTER" />
+                        <Button fx:id="add1" alignment="TOP_CENTER" mnemonicParsing="false" text="Edit" textAlignment="CENTER" />
+                        <Button fx:id="add11" alignment="TOP_CENTER" mnemonicParsing="false" text="Delete" textAlignment="CENTER" />
+                     </children>
+                     <opaqueInsets>
+                        <Insets />
+                     </opaqueInsets>
+                     <padding>
+                        <Insets bottom="5.0" />
+                     </padding>
+                  </HBox>
+                  <VBox alignment="BOTTOM_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="5.0" GridPane.columnIndex="1">
+                     <children>
+                        <ComboBox fx:id="show" prefWidth="150.0" promptText="Show">
+                           <opaqueInsets>
+                              <Insets />
+                           </opaqueInsets>
+                           <VBox.margin>
+                              <Insets bottom="5.0" />
+                           </VBox.margin>
+                        </ComboBox>
+                     </children>
+                  </VBox>
+                  <HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2">
+                     <children>
+                        <Button mnemonicParsing="false" text="Overview">
+                           <HBox.margin>
+                              <Insets right="5.0" />
+                           </HBox.margin></Button>
+                      <Button disable="true" mnemonicParsing="false" onAction="#switchIncome" text="Income" textFill="#4d1616" />
+                        <Button mnemonicParsing="false" onAction="#switchExpenses" text="Expenses" />
+                        <Button mnemonicParsing="false" text="Savings" />
+                        <Button mnemonicParsing="false" onAction="#switchExpenses" text="Next">
+                           <HBox.margin>
+                              <Insets left="170.0" />
+                           </HBox.margin></Button>
+                     </children>
+                     <padding>
+                        <Insets top="10.0" />
+                     </padding>
+                  </HBox>
+                  <TableView fx:id="expenseTableView" prefHeight="260.0" prefWidth="485.0" GridPane.columnSpan="2" GridPane.rowIndex="1">
+                    <columns>
+                      <TableColumn fx:id="date" prefWidth="75.0" text="Date" />
+                      <TableColumn fx:id="amount" prefWidth="75.0" text="Amount" />
+                        <TableColumn fx:id="category" prefWidth="75.0" text="Category" />
+                        <TableColumn fx:id="description" prefWidth="75.0" text="Description" />
+                    </columns>
+                     <columnResizePolicy>
+                        <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
+                     </columnResizePolicy>
+                  </TableView>
+               </children>
+            </GridPane>
+         </center>
+         <opaqueInsets>
+            <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+         </opaqueInsets>
+         <left>
+            <Region prefHeight="357.0" prefWidth="25.0" BorderPane.alignment="CENTER" />
+         </left>
+         <right>
+            <Region prefHeight="357.0" prefWidth="0.0" BorderPane.alignment="CENTER" />
+         </right>
+         <bottom>
+            <Region prefHeight="0.0" prefWidth="600.0" BorderPane.alignment="CENTER" />
+         </bottom>
+      </BorderPane>
+   </children>
+   <opaqueInsets>
+      <Insets bottom="10.0" left="10.0" right="10.0" top="10.0" />
+   </opaqueInsets>
+</AnchorPane>
-- 
GitLab