Skip to content
Snippets Groups Projects
Commit af9e8dde authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#60 - added new tab and basic ui for reports

parent 9071ecf5
No related branches found
No related tags found
2 merge requests!142merge v1_3_0 into master,!121Merge Reports into v1_3_0
...@@ -49,6 +49,7 @@ public class Controller ...@@ -49,6 +49,7 @@ public class Controller
@FXML private Tab tabPayments; @FXML private Tab tabPayments;
@FXML private Tab tabCategories; @FXML private Tab tabCategories;
@FXML private Tab tabCharts; @FXML private Tab tabCharts;
@FXML private Tab tabReports;
@FXML private Tab tabSettings; @FXML private Tab tabSettings;
@FXML private Label labelNotification; @FXML private Label labelNotification;
...@@ -56,6 +57,7 @@ public class Controller ...@@ -56,6 +57,7 @@ public class Controller
private PaymentController paymentController; private PaymentController paymentController;
private CategoryController categoryController; private CategoryController categoryController;
private ChartController chartController; private ChartController chartController;
private ReportController reportController;
private SettingsController settingsController; private SettingsController settingsController;
private Stage stage; private Stage stage;
...@@ -119,6 +121,12 @@ public class Controller ...@@ -119,6 +121,12 @@ public class Controller
} }
}); });
fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/budgetmaster/ui/ReportTab.fxml"));
Parent nodeTabReport = (Parent)fxmlLoader.load();
reportController = fxmlLoader.getController();
reportController.init(this);
tabReports.setContent(nodeTabReport);
fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/budgetmaster/ui/SettingsTab.fxml")); fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/budgetmaster/ui/SettingsTab.fxml"));
Parent nodeTabSettings = (Parent)fxmlLoader.load(); Parent nodeTabSettings = (Parent)fxmlLoader.load();
settingsController = fxmlLoader.getController(); settingsController = fxmlLoader.getController();
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
<Tab fx:id="tabPayments" closable="false" text="Buchungen" /> <Tab fx:id="tabPayments" closable="false" text="Buchungen" />
<Tab fx:id="tabCategories" closable="false" text="Kategorien" /> <Tab fx:id="tabCategories" closable="false" text="Kategorien" />
<Tab fx:id="tabCharts" closable="false" text="Diagramme" /> <Tab fx:id="tabCharts" closable="false" text="Diagramme" />
<Tab fx:id="tabReports" closable="false" text="Berichte" />
<Tab fx:id="tabSettings" closable="false" text="Einstellungen" /> <Tab fx:id="tabSettings" closable="false" text="Einstellungen" />
</tabs> </tabs>
</TabPane> </TabPane>
......
package de.deadlocker8.budgetmaster.ui;
import java.io.IOException;
import java.util.ArrayList;
import de.deadlocker8.budgetmaster.logic.Budget;
import de.deadlocker8.budgetmaster.logic.ExceptionHandler;
import de.deadlocker8.budgetmaster.logic.FilterSettings;
import de.deadlocker8.budgetmaster.logic.Helpers;
import de.deadlocker8.budgetmaster.logic.NormalPayment;
import de.deadlocker8.budgetmaster.logic.Payment;
import de.deadlocker8.budgetmaster.logic.RepeatingPayment;
import de.deadlocker8.budgetmaster.logic.RepeatingPaymentEntry;
import de.deadlocker8.budgetmaster.logic.ServerConnection;
import de.deadlocker8.budgetmaster.ui.cells.PaymentCell;
import fontAwesome.FontIcon;
import fontAwesome.FontIconType;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.Label;
import javafx.scene.control.ListCell;
import javafx.scene.control.ListView;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.util.Callback;
import logger.Logger;
public class ReportController implements Refreshable
{
@FXML private AnchorPane anchorPaneMain;
@FXML private Label labelPayments;
@FXML private Label labelFilterActive;
@FXML private CheckBox checkBoxSplitTable;
@FXML private CheckBox checkBoxIncludeCharts;
@FXML private Button buttonFilter;
@FXML private Button buttonGenerate;
private Controller controller;
public void init(Controller controller)
{
this.controller = controller;
FontIcon iconFilter = new FontIcon(FontIconType.FILTER);
iconFilter.setSize(18);
iconFilter.setStyle("-fx-text-fill: white");
buttonFilter.setGraphic(iconFilter);
FontIcon iconPayment = new FontIcon(FontIconType.COGS);
iconPayment.setSize(18);
iconPayment.setStyle("-fx-text-fill: white");
buttonGenerate.setGraphic(iconPayment);
// apply theme
anchorPaneMain.setStyle("-fx-background-color: #F4F4F4;");
labelFilterActive.setStyle("-fx-text-fill: " + controller.getBundle().getString("color.text"));
buttonFilter.setStyle("-fx-background-color: #2E79B9; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;");
buttonGenerate.setStyle("-fx-background-color: #2E79B9; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;");
refresh();
}
public void filter()
{
// try
// {
// FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("/de/deadlocker8/budgetmaster/ui/FilterGUI.fxml"));
// Parent root = (Parent)fxmlLoader.load();
// Stage newStage = new Stage();
// newStage.initOwner(controller.getStage());
// newStage.initModality(Modality.APPLICATION_MODAL);
// newStage.setTitle("Filter");
// newStage.setScene(new Scene(root));
// newStage.getIcons().add(controller.getIcon());
// newStage.setResizable(false);
// FilterController newController = fxmlLoader.getController();
// newController.init(newStage, controller, this, controller.getFilterSettings());
// newStage.show();
// }
// catch(IOException e)
// {
// Logger.error(e);
// }
}
public void generate()
{
}
public Controller getController()
{
return controller;
}
@Override
public void refresh()
{
// if(controller.getFilterSettings().equals(new FilterSettings()))
// {
// labelFilterActive.setVisible(false);
// }
// else
// {
// labelFilterActive.setVisible(true);
// }
}
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.CheckBox?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?>
<AnchorPane fx:id="anchorPaneMain" prefHeight="600.0" prefWidth="800.0" xmlns="http://javafx.com/javafx/8.0.111" xmlns:fx="http://javafx.com/fxml/1" fx:controller="de.deadlocker8.budgetmaster.ui.ReportController">
<children>
<VBox alignment="TOP_CENTER" layoutY="24.0" prefHeight="562.0" prefWidth="772.0" spacing="25.0" AnchorPane.bottomAnchor="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0" AnchorPane.topAnchor="25.0">
<children>
<HBox alignment="CENTER" prefHeight="11.0" prefWidth="772.0">
<children>
<VBox alignment="CENTER" spacing="10.0">
<children>
<Button fx:id="buttonFilter" mnemonicParsing="false" onAction="#filter" text="Filter">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Button>
<Label fx:id="labelFilterActive" text="Filter aktiv">
<font>
<Font name="System Bold" size="13.0" />
</font>
</Label>
</children>
</VBox>
</children>
<VBox.margin>
<Insets />
</VBox.margin>
</HBox>
<HBox alignment="CENTER" prefHeight="11.0" prefWidth="772.0">
<children>
<VBox spacing="10.0">
<children>
<CheckBox fx:id="checkBoxSplitTable" mnemonicParsing="false" text="Einnahmen und Ausgaben als getrennte Tabellen" />
<CheckBox fx:id="checkBoxIncludeChart" mnemonicParsing="false" text="Diagramm hinzufügen" />
</children>
</VBox>
</children>
</HBox>
<TableView fx:id="tableView" prefHeight="270.0" prefWidth="772.0" VBox.vgrow="ALWAYS" />
<HBox alignment="CENTER" prefHeight="11.0" prefWidth="772.0">
<children>
<VBox alignment="CENTER" spacing="10.0">
<children>
<Button fx:id="buttonGenerate" mnemonicParsing="false" onAction="#generate" text="Bericht erzeugen">
<font>
<Font name="System Bold" size="14.0" />
</font>
</Button>
</children>
</VBox>
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment