Skip to content
Snippets Groups Projects
Commit 7e97c641 authored by Harry Linrui XU's avatar Harry Linrui XU
Browse files

Merge branch 'fx-test-branch' of...

Merge branch 'fx-test-branch' of gitlab.stud.idi.ntnu.no:andreksv/idatt-1002-2023-9 into fx-test-branch
parents a29351e9 0da0a55a
No related branches found
No related tags found
1 merge request!6Merging the frontend baseline to get up to date with the progress
package no.ntnu.idatt1002.demo.controller;
import java.awt.event.InputEvent;
import java.io.IOException;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Modality;
import javafx.stage.Stage;
public class SceneController /*implements Initializable*/ {
......@@ -84,7 +87,49 @@ public class SceneController /*implements Initializable*/ {
stage.show();
}
public void switchOverview(ActionEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/Overview.fxml"));
Parent root = loader.load();
stage = (Stage)((Node)event.getSource()).getScene().getWindow();
scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public void addExpense(ActionEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/addExpense.fxml"));
Scene newScene = new Scene(loader.load());
Stage newStage = new Stage();
newStage.setScene(newScene);
newStage.setResizable(false);
newStage.initModality(Modality.APPLICATION_MODAL);
newStage.show();
}
public void addIncome(ActionEvent event) throws IOException {
FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/addIncome.fxml"));
Scene newScene = new Scene(loader.load());
Stage newStage = new Stage();
newStage.setScene(newScene);
newStage.setResizable(false);
newStage.initModality(Modality.APPLICATION_MODAL);
newStage.show();
}
public void underProgress(ActionEvent event) throws IOException{
FXMLLoader loader = new FXMLLoader(SceneController.class.getResource("/view/underProgress.fxml"));
Scene newScene = new Scene(loader.load());
Stage newStage = new Stage();
newStage.setScene(newScene);
newStage.setResizable(false);
newStage.initModality(Modality.APPLICATION_MODAL);
newStage.show();
}
public void closeButton(ActionEvent actionEvent) {
final Node source = (Node) actionEvent.getSource();
final Stage stage = (Stage) source.getScene().getWindow();
stage.close();;
}
}
src/main/resources/Images/underProgress.png

280 KiB

<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.ButtonType?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?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.RowConstraints?>
<DialogPane prefWidth="480.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController">
<content>
<GridPane hgap="10.0" vgap="10.0">
<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>
<padding>
<Insets bottom="10.0" left="10.0" right="150.0" top="20.0" />
</padding>
<children>
<Label text="Date:" />
<Label text="Amount:" GridPane.rowIndex="1" />
<Label text="Description:" GridPane.rowIndex="2" />
<Label text="Category" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin></Label>
<TextField promptText="Date" GridPane.columnIndex="1" GridPane.columnSpan="2" />
<TextField promptText="Amount" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="1" />
<TextField promptText="Description (optional)" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="2" />
<ComboBox prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin>
</ComboBox>
</children>
</GridPane>
</content>
<buttonTypes>
<ButtonType fx:constant="OK" />
<ButtonType fx:constant="CANCEL" />
</buttonTypes>
</DialogPane>
<GridPane hgap="10.0" vgap="10.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="11.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="189.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>
<padding>
<Insets bottom="10.0" left="10.0" top="20.0" />
</padding>
<children>
<Label text="Date:" />
<Label text="Amount:" GridPane.rowIndex="1" />
<Label text="Description:" GridPane.rowIndex="2" />
<Label text="Category" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Label>
<TextField promptText="Date" GridPane.columnIndex="1" GridPane.columnSpan="2" />
<TextField promptText="Amount" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="1" />
<TextField promptText="Description (optional)" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="2" />
<ComboBox prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin>
</ComboBox>
<Button mnemonicParsing="false" onAction="#closeButton" text="Cancel" GridPane.columnIndex="3" GridPane.rowIndex="4">
<GridPane.margin>
<Insets left="75.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#closeButton" text="Button" GridPane.columnIndex="3" GridPane.rowIndex="4">
<GridPane.margin>
<Insets left="130.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>
<GridPane hgap="10.0" vgap="10.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="95.0" minWidth="10.0" prefWidth="11.0" />
<ColumnConstraints hgrow="SOMETIMES" maxWidth="189.0" minWidth="10.0" prefWidth="189.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>
<padding>
<Insets bottom="10.0" left="10.0" top="20.0" />
</padding>
<children>
<Label text="Date:" />
<Label text="Amount:" GridPane.rowIndex="1" />
<Label text="Description:" GridPane.rowIndex="2" />
<Label text="Category" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin>
</Label>
<TextField promptText="Date" GridPane.columnIndex="1" GridPane.columnSpan="2" />
<TextField promptText="Amount" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="1" />
<TextField promptText="Description (optional)" GridPane.columnIndex="1" GridPane.columnSpan="2" GridPane.rowIndex="2" />
<ComboBox prefWidth="150.0" GridPane.columnIndex="1" GridPane.rowIndex="3">
<GridPane.margin>
<Insets />
</GridPane.margin>
</ComboBox>
<Button mnemonicParsing="false" onAction="#closeButton" text="Cancel" GridPane.columnIndex="3" GridPane.rowIndex="4">
<GridPane.margin>
<Insets left="75.0" />
</GridPane.margin>
</Button>
<Button mnemonicParsing="false" onAction="#closeButton" text="Button" GridPane.columnIndex="3" GridPane.rowIndex="4">
<GridPane.margin>
<Insets left="130.0" />
</GridPane.margin>
</Button>
</children>
</GridPane>
......@@ -73,7 +73,7 @@
<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="add" alignment="TOP_CENTER" mnemonicParsing="false" onAction="#addExpense" 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>
......@@ -98,14 +98,14 @@
</VBox>
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2">
<children>
<Button mnemonicParsing="false" text="Overview">
<Button mnemonicParsing="false" onAction="#switchOverview" text="Overview">
<HBox.margin>
<Insets right="5.0" />
</HBox.margin></Button>
<Button mnemonicParsing="false" text="Income" />
<Button mnemonicParsing="false" onAction="#switchIncome" text="Income" />
<Button disable="true" mnemonicParsing="false" text="Expenses" />
<Button mnemonicParsing="false" text="Savings" />
<Button mnemonicParsing="false" text="Next">
<Button disable="true" mnemonicParsing="false" text="Savings" />
<Button mnemonicParsing="false" onAction="#switchOverview" text="Next">
<HBox.margin>
<Insets left="170.0" />
</HBox.margin></Button>
......
......@@ -26,7 +26,7 @@
<Font size="24.0" />
</font>
</Button>
<Button layoutX="380.0" layoutY="212.0" mnemonicParsing="false" text="Old Budget">
<Button layoutX="380.0" layoutY="212.0" mnemonicParsing="false" onAction="#underProgress" text="Old Budget">
<font>
<Font size="24.0" />
</font>
......
......@@ -73,7 +73,7 @@
<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="add" alignment="TOP_CENTER" mnemonicParsing="false" onAction="#addIncome" 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>
......@@ -98,13 +98,13 @@
</VBox>
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2">
<children>
<Button mnemonicParsing="false" text="Overview">
<Button mnemonicParsing="false" onAction="#switchOverview" 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 disable="true" mnemonicParsing="false" text="Savings" />
<Button mnemonicParsing="false" onAction="#switchExpenses" text="Next">
<HBox.margin>
<Insets left="170.0" />
......
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ListView?>
<?import javafx.scene.control.TextArea?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.text.Text?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" 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>
</ImageView>
<ListView layoutX="133.0" layoutY="145.0" prefHeight="233.0" prefWidth="313.0" />
<TextArea layoutX="133.0" layoutY="97.0" prefHeight="39.0" prefWidth="276.0" />
<Button layoutX="409.0" layoutY="97.0" mnemonicParsing="false" prefHeight="39.0" prefWidth="38.0" text="+" />
<Text layoutX="133.0" layoutY="84.0" strokeType="OUTSIDE" strokeWidth="0.0" text="Write your income here:" />
<Button layoutX="14.0" layoutY="14.0" mnemonicParsing="false" onAction="#switchStartMenu" text="Back" />
</children>
</AnchorPane>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.Cursor?>
<?import javafx.scene.chart.PieChart?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.ComboBox?>
<?import javafx.scene.control.ListView?>
<?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="#switchExpenses" 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="Overview" textAlignment="CENTER" translateX="-5.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="236.5" />
<ColumnConstraints hgrow="ALWAYS" maxWidth="253.0" minWidth="10.0" prefWidth="252.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints maxHeight="65.33334064483643" minHeight="10.0" prefHeight="26.5" vgrow="SOMETIMES" />
<RowConstraints maxHeight="298.66665744781494" minHeight="10.0" prefHeight="239.5" 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">
<opaqueInsets>
<Insets />
</opaqueInsets>
<padding>
<Insets bottom="5.0" />
</padding>
<children>
<ComboBox fx:id="show" prefHeight="26.0" prefWidth="240.0" promptText="Show">
<opaqueInsets>
<Insets />
</opaqueInsets>
</ComboBox>
</children>
</HBox>
<VBox alignment="BOTTOM_LEFT" prefHeight="200.0" prefWidth="100.0" spacing="5.0" GridPane.columnIndex="1" />
<HBox prefHeight="100.0" prefWidth="200.0" GridPane.columnSpan="2" GridPane.rowIndex="2">
<children>
<Button disable="true" mnemonicParsing="false" text="Overview">
<HBox.margin>
<Insets right="5.0" />
</HBox.margin></Button>
<Button mnemonicParsing="false" onAction="#switchIncome" text="Income" textFill="#4d1616" />
<Button mnemonicParsing="false" onAction="#switchExpenses" text="Expenses" />
<Button disable="true" mnemonicParsing="false" text="Savings" />
<Button defaultButton="true" mnemonicParsing="false" onAction="#switchExpenses" text="Next">
<HBox.margin>
<Insets left="170.0" />
</HBox.margin></Button>
</children>
<padding>
<Insets top="10.0" />
</padding>
</HBox>
<PieChart GridPane.columnIndex="1" GridPane.rowIndex="1" />
<ListView prefHeight="200.0" prefWidth="270.0" GridPane.rowIndex="1" />
</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>
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane prefHeight="172.0" prefWidth="340.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.SceneController">
<children>
<ImageView fitHeight="310.0" fitWidth="476.0" layoutX="-5.0" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../Images/underProgress.png" />
</image>
</ImageView>
<Button layoutX="195.0" layoutY="178.0" mnemonicParsing="false" onAction="#closeButton" text="Understood" />
<TextField layoutX="41.0" layoutY="112.0" prefHeight="26.0" prefWidth="390.0" text="Sorry, but this part of the app is still under construction.">
<opaqueInsets>
<Insets />
</opaqueInsets>
</TextField>
<TextField alignment="CENTER" layoutX="41.0" layoutY="65.0" prefHeight="26.0" prefWidth="390.0" text="Alert!">
<opaqueInsets>
<Insets />
</opaqueInsets>
</TextField>
<TextField layoutX="41.0" layoutY="138.0" prefHeight="26.0" prefWidth="390.0" text="Thank you for your patience.">
<opaqueInsets>
<Insets />
</opaqueInsets>
</TextField>
</children>
</AnchorPane>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment