Skip to content
Snippets Groups Projects
Commit 492a4e69 authored by Andreas Kluge Svendsrud's avatar Andreas Kluge Svendsrud
Browse files

Merge branch 'button-validation-confirmation' into 'master'

Button validation confirmation

See merge request !53
parents dc8ee9dd 6845c76c
No related branches found
No related tags found
1 merge request!53Button validation confirmation
Pipeline #219726 passed with stages
in 1 minute and 50 seconds
...@@ -83,10 +83,12 @@ public class BudgetController extends FinanceController { ...@@ -83,10 +83,12 @@ public class BudgetController extends FinanceController {
private PieChart budgetPieChart; private PieChart budgetPieChart;
@FXML @FXML
private Label daysLeftLbl; private Label disposableAmount;
BudgetRegister budgetRegister = new BudgetRegister(); @FXML
private Label amountLeft;
BudgetRegister budgetRegister;
/** /**
* Initializes the budget register, the observable budget list and the tableview, along with the values of the dropbox used for filtering the tableview. * Initializes the budget register, the observable budget list and the tableview, along with the values of the dropbox used for filtering the tableview.
...@@ -115,7 +117,7 @@ public class BudgetController extends FinanceController { ...@@ -115,7 +117,7 @@ public class BudgetController extends FinanceController {
.readBudgetArchive("budgets/Archive"); .readBudgetArchive("budgets/Archive");
} }
//Refresh piecharts only if the budget is old //Refresh pie charts only if the budget is old
if (!FileHandlingBudget.isNewBudget( if (!FileHandlingBudget.isNewBudget(
"budgets/" + FileHandlingSelectedBudget. "budgets/" + FileHandlingSelectedBudget.
readSelectedBudget("budgets/SelectedBudget") + "/Budget")) { readSelectedBudget("budgets/SelectedBudget") + "/Budget")) {
...@@ -125,7 +127,24 @@ public class BudgetController extends FinanceController { ...@@ -125,7 +127,24 @@ public class BudgetController extends FinanceController {
ioe.printStackTrace(); ioe.printStackTrace();
showErrorDialogBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage()); showErrorDialogBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage());
} }
double maxAmount = general.getMaxAmount();
//Set calendar, disposable amount and amount left
formatDatePicker(); formatDatePicker();
disposableAmount.setText(String.valueOf(maxAmount));
amountLeft.setText(String.valueOf(maxAmount));
//Prevent proceeding until all of budget has been used up
continueBtn.addEventFilter(
ActionEvent.ACTION, event -> {
if (maxAmount - general.totalSum() != 0) {
event.consume();
showErrorDialogBox("Use up budget",
"Please distribute the entire disposable amount",
"The amount must be used up before proceeding");
}
}
);
} }
/** /**
...@@ -243,6 +262,7 @@ public class BudgetController extends FinanceController { ...@@ -243,6 +262,7 @@ public class BudgetController extends FinanceController {
//Updates the tableview and pie chart using the register //Updates the tableview and pie chart using the register
refreshTableView(); refreshTableView();
refreshPieChart(); refreshPieChart();
refreshAmountLeft();
} }
...@@ -267,6 +287,7 @@ public class BudgetController extends FinanceController { ...@@ -267,6 +287,7 @@ public class BudgetController extends FinanceController {
general.deleteItemFromBudget(item.getBudgetCategory()); general.deleteItemFromBudget(item.getBudgetCategory());
refreshTableView(); refreshTableView();
refreshPieChart(); refreshPieChart();
refreshAmountLeft();
} }
} }
...@@ -279,6 +300,13 @@ public class BudgetController extends FinanceController { ...@@ -279,6 +300,13 @@ public class BudgetController extends FinanceController {
this.budgetList.setAll(general.getBudgetItems()); this.budgetList.setAll(general.getBudgetItems());
} }
/**
* Method for synching the amount left to the sum of budget items in the table view.
*/
private void refreshAmountLeft() {
amountLeft.setText(String.valueOf(general.getMaxAmount() - general.totalSum()));
}
/** /**
* Saves the changes made to the tableview by writing the information to a file. * Saves the changes made to the tableview by writing the information to a file.
* *
...@@ -304,7 +332,6 @@ public class BudgetController extends FinanceController { ...@@ -304,7 +332,6 @@ public class BudgetController extends FinanceController {
} catch(IOException ioe) { } catch(IOException ioe) {
showErrorDialogBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage()); showErrorDialogBox(ioe.getMessage(), ioe.getMessage(), ioe.getMessage());
} }
} }
/** /**
...@@ -324,18 +351,26 @@ public class BudgetController extends FinanceController { ...@@ -324,18 +351,26 @@ public class BudgetController extends FinanceController {
} else if (event.getSource() == continueBtn) { } else if (event.getSource() == continueBtn) {
//Adds unused categories to the table //Adds unused categories to the table
general.addUnusedCategories(); general.addUnusedCategories();
updateBudgetRegister(FileHandlingSelectedBudget updateBudgetRegister(FileHandlingSelectedBudget
.readSelectedBudget("budgets/SelectedBudget")); .readSelectedBudget("budgets/SelectedBudget"));
loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml")); loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml"));
//Always saving the data when switching to main menu //Always saving the data when switching to main menu
saveDataToFile(); saveDataToFile();
} else if (event.getSource() == backBtn) { } else if (event.getSource() == backBtn) {
loader.setLocation(getClass().getResource("/view/dualList.fxml")); Optional<ButtonType> isConfirmed = showConfirmationDialog("Return confirmation"
, "Are you sure you want to go back?","The changes made in this and the previous"
+ " window will be reset");
if (isConfirmed.isPresent() && isConfirmed.get() == ButtonType.OK) {
loader.setLocation(getClass().getResource("/view/dualList.fxml"));
} else return;
} }
Parent root = loader.load(); Parent root = loader.load();
Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow(); Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
Scene scene = new Scene(root); Scene scene = new Scene(root);
stage.setScene(scene); stage.setScene(scene);
stage.setResizable(false);
//Centralize the new screen //Centralize the new screen
Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds(); Rectangle2D primScreenBounds = Screen.getPrimary().getVisualBounds();
...@@ -343,7 +378,6 @@ public class BudgetController extends FinanceController { ...@@ -343,7 +378,6 @@ public class BudgetController extends FinanceController {
stage.setY((primScreenBounds.getHeight() - stage.getHeight()) / 2); stage.setY((primScreenBounds.getHeight() - stage.getHeight()) / 2);
stage.show(); stage.show();
} catch(Exception ioe) { } catch(Exception ioe) {
ioe.printStackTrace(); ioe.printStackTrace();
showErrorDialogBox("Loading error", "Error in loading", "Could not load" showErrorDialogBox("Loading error", "Error in loading", "Could not load"
......
...@@ -599,13 +599,22 @@ public class IncomeExpenseController extends FinanceController { ...@@ -599,13 +599,22 @@ public class IncomeExpenseController extends FinanceController {
saveDataToFile(); saveDataToFile();
loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml")); loader.setLocation(getClass().getResource("/view/MainMenuNew.fxml"));
} else if (event.getSource() == continueBtn) { } else if (event.getSource() == continueBtn) {
loader.setLocation(getClass().getResource("/view/newBudgetBudgert.fxml")); Optional<ButtonType> isConfirmed = showConfirmationDialog("Continuation confirmation",
saveDisposableIncomeToFile(); "Are you satisfied with your changes?",
"You can still make changes before continuing");
if (isConfirmed.isPresent() && isConfirmed.get() == ButtonType.OK) {
loader.setLocation(getClass().getResource("/view/newBudgetBudgert.fxml"));
saveDisposableIncomeToFile();
} else return;
} else if (event.getSource() == returnBtn) { } else if (event.getSource() == returnBtn) {
loader.setLocation(getClass().getResource("/view/FirstMenu.fxml")); Optional<ButtonType> isConfirmed = showConfirmationDialog("Return confirmation",
FileHandlingSelectedBudget.deleteBudgetDirectory("budgets/" + FileHandlingSelectedBudget "Are you sure you want to go back?", "The budget you are creating will be deleted");
.readSelectedBudget("budgets/SelectedBudget")); if (isConfirmed.isPresent() && isConfirmed.get() == ButtonType.OK) {
FileHandlingSelectedBudget.clearSelectedBudget("budgets/SelectedBudget"); loader.setLocation(getClass().getResource("/view/FirstMenu.fxml"));
FileHandlingSelectedBudget.deleteBudgetDirectory("budgets/" + FileHandlingSelectedBudget
.readSelectedBudget("budgets/SelectedBudget"));
FileHandlingSelectedBudget.clearSelectedBudget("budgets/SelectedBudget");
} else return;
} }
//Load the scene //Load the scene
Parent root = loader.load(); Parent root = loader.load();
......
...@@ -3,6 +3,7 @@ package no.ntnu.idatt1002.demo.controller; ...@@ -3,6 +3,7 @@ package no.ntnu.idatt1002.demo.controller;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate; import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javafx.event.ActionEvent; import javafx.event.ActionEvent;
import javafx.fxml.FXML; import javafx.fxml.FXML;
...@@ -14,6 +15,7 @@ import javafx.scene.Scene; ...@@ -14,6 +15,7 @@ import javafx.scene.Scene;
import javafx.scene.control.Alert; import javafx.scene.control.Alert;
import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Alert.AlertType;
import javafx.scene.control.Button; import javafx.scene.control.Button;
import javafx.scene.control.ButtonType;
import javafx.scene.control.DatePicker; import javafx.scene.control.DatePicker;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar; import javafx.scene.control.ProgressBar;
...@@ -43,48 +45,25 @@ public class MainMenuController { ...@@ -43,48 +45,25 @@ public class MainMenuController {
@FXML @FXML
private Label balanceLbl; private Label balanceLbl;
@FXML
private ProgressBar bookBar;
@FXML
private Label bookLbl;
@FXML @FXML
private Button budgetBtn; private Button budgetBtn;
@FXML
private ProgressBar clothesBar;
@FXML
private Label clothesLbl;
@FXML @FXML
private DatePicker date; private DatePicker date;
@FXML @FXML
private Button expenseBtn; private Button expenseBtn;
@FXML
private ProgressBar foodBar;
@FXML @FXML
private Button foodBtn; private Button foodBtn;
@FXML
private Label foodLbl;
@FXML @FXML
private Button incomeBtn; private Button incomeBtn;
@FXML @FXML
private ProgressBar mainBar; private ProgressBar mainBar;
@FXML
private ProgressBar otherBar;
@FXML
private Label otherLbl;
@FXML @FXML
private Button returnBtn; private Button returnBtn;
...@@ -298,6 +277,24 @@ public class MainMenuController { ...@@ -298,6 +277,24 @@ public class MainMenuController {
alert.setContentText(content); alert.setContentText(content);
alert.showAndWait(); alert.showAndWait();
} }
/**
* Returns an optional, which is a popup alert box, asking for confirmation for deleting an entry.
* @param title The dialog box title.
* @param header The dialog box header.
* @param content The dialog box content.
* @return An alert box, asking for confirmation for deleting the selected entry of the tableview.
*/
public Optional<ButtonType> showConfirmationDialog(String title, String header, String content) {
Alert alert = new Alert(Alert.AlertType.CONFIRMATION);
alert.setTitle(title);
alert.setHeaderText(header);
alert.setContentText(content);
return alert.showAndWait();
}
/** /**
* Switches the scenes from the main menu to a target scene. * Switches the scenes from the main menu to a target scene.
...@@ -317,6 +314,8 @@ public class MainMenuController { ...@@ -317,6 +314,8 @@ public class MainMenuController {
} else if (event.getSource() == budgetBtn) { } else if (event.getSource() == budgetBtn) {
loader.setLocation(getClass().getResource("/view/BudgetNewest.fxml")); loader.setLocation(getClass().getResource("/view/BudgetNewest.fxml"));
} else if (event.getSource() == returnBtn) { } else if (event.getSource() == returnBtn) {
showConfirmationDialog("Return to first menu", "Are you sure you want to return"
+ "to the start menu?", "Your changes will be saved");
loader.setLocation(getClass().getResource("/view/FirstMenu.fxml")); loader.setLocation(getClass().getResource("/view/FirstMenu.fxml"));
} }
//Load new location //Load new location
......
...@@ -7,13 +7,10 @@ import java.io.FileReader; ...@@ -7,13 +7,10 @@ import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
//Disable next i newBudgetbert til maxamount har blitt burkt opp
//Set titler på hvert vindu - kan gjøres i switch scene //Set titler på hvert vindu - kan gjøres i switch scene
//Close program properly //Close program properly
//close button i first menu //close button i first menu
//remove printstackstraces //remove printstackstraces
//HVIS CONTINUE I BUDGET PRESSES, SHOWCONFIRMATION
//VIKTIG_ BALANCE LABEL ER RØD PÅ GRØNN BAKGRUNN!!!
//Binde label to total balance i budget window (newBUdgetBert) //Binde label to total balance i budget window (newBUdgetBert)
//En delete funksjon i select old budget //En delete funksjon i select old budget
//Endre pakkenavn //Endre pakkenavn
...@@ -21,7 +18,6 @@ import java.io.IOException; ...@@ -21,7 +18,6 @@ import java.io.IOException;
//Popup for edit og delete button //Popup for edit og delete button
//confirmation for når returnBtn som returner til start. "Are you sure you want to go back. Changes will not be saved" //confirmation for når returnBtn som returner til start. "Are you sure you want to go back. Changes will not be saved"
// FIKSE TRY CATCHES I ALLE METODENE!!!!!!!!!! // FIKSE TRY CATCHES I ALLE METODENE!!!!!!!!!!
//tester for nye filklasser
//set all windows unresizable //set all windows unresizable
//Bytte oversikt på dualList til Monthly .... //Bytte oversikt på dualList til Monthly ....
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?> <?import javafx.geometry.Insets?>
<?import javafx.scene.*?> <?import javafx.scene.Cursor?>
<?import javafx.scene.chart.*?> <?import javafx.scene.chart.PieChart?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.Button?>
<?import javafx.scene.image.*?> <?import javafx.scene.control.ComboBox?>
<?import javafx.scene.layout.*?> <?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.text.*?> <?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.MenuItem?>
<?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.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="695.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.BudgetController"> <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="695.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.BudgetController">
<children> <children>
<ImageView fitHeight="695.0" fitWidth="1130.0" pickOnBounds="true"> <ImageView fitHeight="695.0" fitWidth="1130.0" pickOnBounds="true">
<image> <image>
...@@ -168,6 +183,8 @@ ...@@ -168,6 +183,8 @@
<Button fx:id="continueBtn" disable="true" mnemonicParsing="false" opacity="0.0" styleClass="button-style" stylesheets="@../style.css" text="continue" /> <Button fx:id="continueBtn" disable="true" mnemonicParsing="false" opacity="0.0" styleClass="button-style" stylesheets="@../style.css" text="continue" />
</children> </children>
</HBox> </HBox>
<Label fx:id="disposableAmount" disable="true" opacity="0.0" text="Label" />
<Label fx:id="amountLeft" disable="true" opacity="0.0" text="Label" />
</children> </children>
<GridPane.margin> <GridPane.margin>
<Insets top="30.0" /> <Insets top="30.0" />
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?> <?import javafx.geometry.Insets?>
<?import javafx.scene.*?> <?import javafx.scene.Cursor?>
<?import javafx.scene.chart.*?> <?import javafx.scene.chart.PieChart?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.Button?>
<?import javafx.scene.image.*?> <?import javafx.scene.control.ComboBox?>
<?import javafx.scene.layout.*?> <?import javafx.scene.control.ContextMenu?>
<?import javafx.scene.text.*?> <?import javafx.scene.control.DatePicker?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.MenuButton?>
<?import javafx.scene.control.MenuItem?>
<?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.Pane?>
<?import javafx.scene.layout.RowConstraints?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="695.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.IncomeExpenseController"> <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="695.0" prefWidth="1130.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.IncomeExpenseController">
<children> <children>
<ImageView fitHeight="695.0" fitWidth="1130.0" pickOnBounds="true"> <ImageView fitHeight="695.0" fitWidth="1130.0" pickOnBounds="true">
<image> <image>
...@@ -49,7 +66,7 @@ ...@@ -49,7 +66,7 @@
<center> <center>
<Pane BorderPane.alignment="CENTER"> <Pane BorderPane.alignment="CENTER">
<children> <children>
<Label fx:id="title" layoutX="100.0" layoutY="47.0" styleClass="head-line" stylesheets="@../style.css" text="INCOME AND EXPENSES" textAlignment="CENTER"> <Label fx:id="title" layoutX="244.0" layoutY="48.0" styleClass="head-line" stylesheets="@../style.css" text="Transactions" textAlignment="CENTER">
<font> <font>
<Font name="Lucida Console" size="48.0" /> <Font name="Lucida Console" size="48.0" />
</font> </font>
...@@ -82,7 +99,6 @@ ...@@ -82,7 +99,6 @@
<Font name="Lucida Console" size="14.0" /> <Font name="Lucida Console" size="14.0" />
</font> </font>
</MenuButton> </MenuButton>
<Button mnemonicParsing="false" styleClass="button-style" stylesheets="@../style.css" />
</children> </children>
<BorderPane.margin> <BorderPane.margin>
<Insets left="30.0" /> <Insets left="30.0" />
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?> <?import javafx.geometry.Insets?>
<?import javafx.scene.*?> <?import javafx.scene.Cursor?>
<?import javafx.scene.chart.*?> <?import javafx.scene.chart.PieChart?>
<?import javafx.scene.control.*?> <?import javafx.scene.control.Button?>
<?import javafx.scene.image.*?> <?import javafx.scene.control.ComboBox?>
<?import javafx.scene.layout.*?> <?import javafx.scene.control.DatePicker?>
<?import javafx.scene.shape.*?> <?import javafx.scene.control.Label?>
<?import javafx.scene.text.*?> <?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.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?>
<?import javafx.scene.shape.Rectangle?>
<?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?>
<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="750.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.BudgetController"> <AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="500.0" prefWidth="750.0" xmlns="http://javafx.com/javafx/19" xmlns:fx="http://javafx.com/fxml/1" fx:controller="no.ntnu.idatt1002.demo.controller.BudgetController">
<children> <children>
<ImageView fitHeight="500.0" fitWidth="750.0" pickOnBounds="true"> <ImageView fitHeight="500.0" fitWidth="750.0" pickOnBounds="true">
<image> <image>
...@@ -48,22 +62,27 @@ ...@@ -48,22 +62,27 @@
<children> <children>
<HBox alignment="CENTER" spacing="10.0" GridPane.columnIndex="1" GridPane.rowIndex="1"> <HBox alignment="CENTER" spacing="10.0" GridPane.columnIndex="1" GridPane.rowIndex="1">
<children> <children>
<PieChart fx:id="budgetPieChart" legendSide="RIGHT" maxHeight="444.0" maxWidth="512.0" prefHeight="302.0" prefWidth="354.0" /> <PieChart fx:id="budgetPieChart" legendSide="RIGHT" maxHeight="444.0" maxWidth="512.0" prefHeight="297.0" prefWidth="330.0" />
</children> </children>
</HBox> </HBox>
<StackPane alignment="CENTER_LEFT" prefWidth="375.0" GridPane.rowIndex="2" GridPane.rowSpan="2147483647"> <StackPane alignment="CENTER_LEFT" prefWidth="375.0" GridPane.rowIndex="2" GridPane.rowSpan="2147483647">
<children> <children>
<Rectangle arcHeight="5.0" arcWidth="5.0" fill="#f8f8f8" height="26.0" stroke="#d9cccc" strokeLineCap="ROUND" strokeType="INSIDE" width="350.0" /> <Rectangle arcHeight="5.0" arcWidth="5.0" fill="#f8f8f8" height="26.0" stroke="#d9cccc" strokeLineCap="ROUND" strokeType="INSIDE" width="350.0" />
<HBox alignment="CENTER_LEFT" minHeight="15.0" prefHeight="36.0" prefWidth="345.0"> <HBox alignment="CENTER_LEFT" minHeight="15.0" prefHeight="36.0" prefWidth="345.0" spacing="10.0">
<children> <children>
<Text strokeType="OUTSIDE" strokeWidth="0.0" text="Overview: (used of disposal)"> <Text strokeType="OUTSIDE" strokeWidth="0.0" text="Left:">
<HBox.margin> <HBox.margin>
<Insets left="3.0" /> <Insets left="3.0" />
</HBox.margin> </HBox.margin>
<font> <font>
<Font size="14.0" /> <Font name="Lucida Console" size="14.0" />
</font> </font>
</Text> </Text>
<Label fx:id="amountLeft" text="Label">
<font>
<Font name="Lucida Console" size="14.0" />
</font>
</Label>
</children> </children>
</HBox> </HBox>
</children> </children>
...@@ -137,15 +156,20 @@ ...@@ -137,15 +156,20 @@
</HBox> </HBox>
</children> </children>
</GridPane> </GridPane>
<HBox alignment="CENTER" GridPane.columnIndex="1"> <VBox alignment="CENTER" GridPane.columnIndex="1">
<children> <children>
<Label alignment="CENTER" prefHeight="20.0" prefWidth="533.0" styleClass="font" stylesheets="@../style.css" text="Amount at disposal: 1000"> <Label alignment="CENTER" prefHeight="20.0" prefWidth="533.0" styleClass="font" stylesheets="@../style.css" text="Amount at disposal:">
<font>
<Font size="24.0" />
</font>
</Label>
<Label fx:id="disposableAmount" text="Label">
<font> <font>
<Font size="18.0" /> <Font name="Lucida Console" size="18.0" />
</font> </font>
</Label> </Label>
</children> </children>
</HBox> </VBox>
<TableView fx:id="budgetTableView" maxHeight="450.0" prefHeight="305.0" prefWidth="340.0" GridPane.rowIndex="1"> <TableView fx:id="budgetTableView" maxHeight="450.0" prefHeight="305.0" prefWidth="340.0" GridPane.rowIndex="1">
<columns> <columns>
<TableColumn fx:id="categoryCol" prefWidth="75.0" text="Category" /> <TableColumn fx:id="categoryCol" prefWidth="75.0" text="Category" />
......
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