From 39557ef852d16062703b409dac2bb1a4322ce311 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 9 Aug 2017 19:25:51 +0200 Subject: [PATCH] Fixed #136 - export charts with new stage (in correct pixel values) reorderd class and package structure --- .../chartGenerators/BarChartGenerator.java | 129 ------------------ .../logic/chartGenerators/LegendType.java | 6 - .../chartGenerators/PieChartGenerator.java | 125 ----------------- .../CategoriesChart.java | 6 +- .../ChartExportable.java | 6 +- .../budgetmaster/logic/charts/LegendType.java | 6 + .../MonthBarChart.java} | 67 ++++++++- .../MonthLineChart.java} | 42 +++++- .../logic/report/ReportGenerator.java | 2 +- .../ExceptionHandler.java | 2 +- .../ServerConnection.java | 11 +- .../ServerConnectionException.java | 2 +- .../{Utils.java => utils/FileHelper.java} | 5 +- .../logic/{ => utils}/Helpers.java | 2 +- .../budgetmaster/ui/CategoryController.java | 4 +- .../budgetmaster/ui/ChartController.java | 92 +++++-------- .../deadlocker8/budgetmaster/ui/ChartTab.fxml | 10 +- .../budgetmaster/ui/Controller.java | 6 +- .../ui/ExportChartController.java | 6 +- .../budgetmaster/ui/HomeController.java | 2 +- .../ui/NewCategoryController.java | 4 +- .../budgetmaster/ui/NewPaymentController.java | 6 +- .../budgetmaster/ui/PaymentController.java | 6 +- .../budgetmaster/ui/ReportController.java | 2 +- .../budgetmaster/ui/SettingsController.java | 14 +- .../ui/SplashScreenController.java | 8 +- .../ui/cells/CategoryBudgetCell.java | 2 +- .../budgetmaster/ui/cells/PaymentCell.java | 2 +- .../server/SparkServer.java | 2 +- .../database/DatabaseImportExportTest.java | 7 +- 30 files changed, 211 insertions(+), 373 deletions(-) delete mode 100644 src/de/deadlocker8/budgetmaster/logic/chartGenerators/BarChartGenerator.java delete mode 100644 src/de/deadlocker8/budgetmaster/logic/chartGenerators/LegendType.java delete mode 100644 src/de/deadlocker8/budgetmaster/logic/chartGenerators/PieChartGenerator.java rename src/de/deadlocker8/budgetmaster/logic/{chartGenerators => charts}/CategoriesChart.java (98%) rename src/de/deadlocker8/budgetmaster/logic/{chartGenerators => charts}/ChartExportable.java (57%) create mode 100644 src/de/deadlocker8/budgetmaster/logic/charts/LegendType.java rename src/de/deadlocker8/budgetmaster/logic/{chartGenerators/MonthChartGenerator.java => charts/MonthBarChart.java} (71%) rename src/de/deadlocker8/budgetmaster/logic/{chartGenerators/LineChartGenerator.java => charts/MonthLineChart.java} (73%) rename src/de/deadlocker8/budgetmaster/logic/{ => serverconnection}/ExceptionHandler.java (95%) rename src/de/deadlocker8/budgetmaster/logic/{ => serverconnection}/ServerConnection.java (96%) rename src/de/deadlocker8/budgetmaster/logic/{ => serverconnection}/ServerConnectionException.java (91%) rename src/de/deadlocker8/budgetmaster/logic/{Utils.java => utils/FileHelper.java} (93%) rename src/de/deadlocker8/budgetmaster/logic/{ => utils}/Helpers.java (98%) diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/BarChartGenerator.java b/src/de/deadlocker8/budgetmaster/logic/chartGenerators/BarChartGenerator.java deleted file mode 100644 index 6517e2613..000000000 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/BarChartGenerator.java +++ /dev/null @@ -1,129 +0,0 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Set; - -import de.deadlocker8.budgetmaster.logic.Helpers; -import de.deadlocker8.budgetmaster.logic.MonthInOutSum; -import javafx.event.EventHandler; -import javafx.geometry.Point2D; -import javafx.scene.Node; -import javafx.scene.chart.BarChart; -import javafx.scene.chart.CategoryAxis; -import javafx.scene.chart.NumberAxis; -import javafx.scene.chart.XYChart; -import javafx.scene.control.Label; -import javafx.scene.control.Tooltip; -import javafx.scene.input.MouseEvent; - -@Deprecated -public class BarChartGenerator -{ - private ArrayList<MonthInOutSum> monthInOutSums; - private String currency; - - public BarChartGenerator(ArrayList<MonthInOutSum> monthInOutSums, String currency) - { - this.monthInOutSums = monthInOutSums; - this.currency = currency; - } - - public BarChart<String, Number> generate() - { - final CategoryAxis xAxis = new CategoryAxis(); - final NumberAxis yAxis = new NumberAxis(); - final BarChart<String, Number> generatedChart = new BarChart<>(xAxis, yAxis); - generatedChart.setTitle(null); - - xAxis.setLabel(""); - yAxis.setLabel("Summe in " + currency); - - XYChart.Series<String, Number> seriesIN = new XYChart.Series<String, Number>(); - seriesIN.setName("Einnahmen"); - XYChart.Series<String, Number> seriesOUT = new XYChart.Series<String, Number>(); - seriesOUT.setName("Ausgaben"); - - for(MonthInOutSum currentItem : monthInOutSums) - { - String label = currentItem.getDate().toString("MMMM YY"); - - seriesIN.getData().add(new XYChart.Data<String, Number>(label, currentItem.getBudgetIN()/100.0)); - seriesOUT.getData().add(new XYChart.Data<String, Number>(label, currentItem.getBudgetOUT()/100.0)); - } - - generatedChart.getData().add(seriesIN); - generatedChart.getData().add(seriesOUT); - - generatedChart.setLegendVisible(true); - - // add tooltip to every segment - generatedChart.getData().stream().forEach(tool -> { - for(XYChart.Data<String, Number> data : tool.getData()) - { - Tooltip tooltip = new Tooltip(); - - tooltip.setText(Helpers.getCurrencyString(data.getYValue().doubleValue(), currency)); - Tooltip.install(tool.getNode(), tooltip); - Node node = data.getNode(); - node.setOnMouseEntered(new EventHandler<MouseEvent>() - { - @Override - public void handle(MouseEvent event) - { - Point2D p = node.localToScreen(event.getX() + 5, event.getY() + 7); - tooltip.show(node, p.getX(), p.getY()); - } - }); - node.setOnMouseExited(new EventHandler<MouseEvent>() - { - - @Override - public void handle(MouseEvent event) - { - tooltip.hide(); - } - }); - } - }); - - // style bar for incomes - for(Node n : generatedChart.lookupAll(".default-color0.chart-bar")) - { - n.setStyle("-fx-bar-fill: " + Helpers.COLOR_INCOME + ";"); - } - - // style bar for payments - for(Node n : generatedChart.lookupAll(".default-color1.chart-bar")) - { - n.setStyle("-fx-bar-fill: " + Helpers.COLOR_PAYMENT + ";"); - } - - //style legend item according to color - Set<Node> nodes = generatedChart.lookupAll(".chart-legend-item"); - if(nodes.size() > 0) - { - Iterator<Node> iterator = nodes.iterator(); - int counter = 0; - while(iterator.hasNext()) - { - Node node = iterator.next(); - if(node instanceof Label) - { - Label labelLegendItem = (Label)node; - if(counter == 0) - { - labelLegendItem.getGraphic().setStyle("-fx-background-color: " + Helpers.COLOR_INCOME + ";"); - } - else - { - labelLegendItem.getGraphic().setStyle("-fx-background-color: " + Helpers.COLOR_PAYMENT + ";"); - } - } - counter++; - } - } - - return generatedChart; - } -} \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/LegendType.java b/src/de/deadlocker8/budgetmaster/logic/chartGenerators/LegendType.java deleted file mode 100644 index f597aff27..000000000 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/LegendType.java +++ /dev/null @@ -1,6 +0,0 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; - -public enum LegendType -{ - NONE, NORMAL, FULL; -} diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/PieChartGenerator.java b/src/de/deadlocker8/budgetmaster/logic/chartGenerators/PieChartGenerator.java deleted file mode 100644 index d2b527b77..000000000 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/PieChartGenerator.java +++ /dev/null @@ -1,125 +0,0 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Set; - -import de.deadlocker8.budgetmaster.logic.CategoryInOutSum; -import de.deadlocker8.budgetmaster.logic.Helpers; -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import javafx.event.EventHandler; -import javafx.geometry.Point2D; -import javafx.scene.Node; -import javafx.scene.chart.PieChart; -import javafx.scene.control.Label; -import javafx.scene.control.Tooltip; -import javafx.scene.input.MouseEvent; -import tools.ConvertTo; - -@Deprecated -public class PieChartGenerator -{ - private String title; - private ArrayList<CategoryInOutSum> categoryInOutSums; - private boolean useBudgetIN; - private String currency; - - public PieChartGenerator(String title, ArrayList<CategoryInOutSum> categoryInOutSums, boolean useBudgetIN, String currency) - { - this.title = title; - this.categoryInOutSums = categoryInOutSums; - this.useBudgetIN = useBudgetIN; - this.currency = currency; - } - - public PieChart generate() - { - ArrayList<PieChart.Data> data = new ArrayList<>(); - - for(CategoryInOutSum currentItem : categoryInOutSums) - { - String label = currentItem.getName(); - if(label.equals("NONE")) - { - label = "Keine Kategorie"; - } - - if(useBudgetIN) - { - data.add(new PieChart.Data(label, currentItem.getBudgetIN()/100.0)); - } - else - { - data.add(new PieChart.Data(label, -currentItem.getBudgetOUT()/100.0)); - } - } - - ObservableList<PieChart.Data> pieChartData = FXCollections.observableArrayList(data); - - final PieChart chart = new PieChart(pieChartData); - chart.setTitle(title); - - //add tooltip to every segment that shows percentage as double value - chart.getData().stream().forEach(tool -> - { - Tooltip tooltip = new Tooltip(); - - double total = 0; - for(int i = 0; i < chart.getData().size(); i++) - { - PieChart.Data currentData = chart.getData().get(i); - total += currentData.getPieValue(); - String currentColor = ConvertTo.toRGBHexWithoutOpacity(categoryInOutSums.get(i).getColor()); - currentData.getNode().setStyle("-fx-pie-color: " + currentColor + ";"); - } - - //style legend item according to color - Set<Node> nodes = chart.lookupAll(".chart-legend-item"); - if(nodes.size() > 0) - { - Iterator<Node> iterator = nodes.iterator(); - int counter = 0; - while(iterator.hasNext()) - { - Node node = iterator.next(); - if(node instanceof Label) - { - Label labelLegendItem = (Label)node; - labelLegendItem.getGraphic().setStyle("-fx-background-color: " + ConvertTo.toRGBHexWithoutOpacity(categoryInOutSums.get(counter).getColor()) + ";"); - } - counter++; - } - } - - double pieValue = tool.getPieValue(); - double percentage = (pieValue / total) * 100; - String percent = String.valueOf(percentage); - percent = percent.substring(0, percent.indexOf(".") + 2); - - tooltip.setText(percent + " %\n" + Helpers.getCurrencyString(pieValue, currency)); - Tooltip.install(tool.getNode(), tooltip); - Node node = tool.getNode(); - node.setOnMouseEntered(new EventHandler<MouseEvent>() - { - @Override - public void handle(MouseEvent event) - { - Point2D p = node.localToScreen(event.getX() + 5, event.getY() + 7); - tooltip.show(node, p.getX(), p.getY()); - } - }); - node.setOnMouseExited(new EventHandler<MouseEvent>() - { - - @Override - public void handle(MouseEvent event) - { - tooltip.hide(); - } - }); - }); - - return chart; - } -} \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/CategoriesChart.java b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java similarity index 98% rename from src/de/deadlocker8/budgetmaster/logic/chartGenerators/CategoriesChart.java rename to src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java index d94618d06..17603ae33 100644 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/CategoriesChart.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java @@ -1,9 +1,9 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; +package de.deadlocker8.budgetmaster.logic.charts; import java.util.ArrayList; import de.deadlocker8.budgetmaster.logic.CategoryInOutSum; -import de.deadlocker8.budgetmaster.logic.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; @@ -295,7 +295,9 @@ public class CategoriesChart extends VBox implements ChartExportable public WritableImage export(int width, int height) { VBox root = new VBox(); + root.setStyle("-fx-background-color: transparent;"); root.setPadding(new Insets(25)); + root.getChildren().add(generate(titleIncomes, true)); root.getChildren().add(generate(titlePayments, false)); diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/ChartExportable.java b/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java similarity index 57% rename from src/de/deadlocker8/budgetmaster/logic/chartGenerators/ChartExportable.java rename to src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java index 2189d23a2..2077c7b06 100644 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/ChartExportable.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java @@ -1,8 +1,12 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; +package de.deadlocker8.budgetmaster.logic.charts; import javafx.scene.image.WritableImage; public interface ChartExportable { WritableImage export(int width, int height); + + double getWidth(); + + double getHeight(); } diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/LegendType.java b/src/de/deadlocker8/budgetmaster/logic/charts/LegendType.java new file mode 100644 index 000000000..d9f8e6a41 --- /dev/null +++ b/src/de/deadlocker8/budgetmaster/logic/charts/LegendType.java @@ -0,0 +1,6 @@ +package de.deadlocker8.budgetmaster.logic.charts; + +public enum LegendType +{ + NONE, NORMAL, FULL; +} diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/MonthChartGenerator.java b/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java similarity index 71% rename from src/de/deadlocker8/budgetmaster/logic/chartGenerators/MonthChartGenerator.java rename to src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java index dd2a0cdef..cdc88fc93 100644 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/MonthChartGenerator.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java @@ -1,30 +1,39 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; +package de.deadlocker8.budgetmaster.logic.charts; import java.util.ArrayList; import de.deadlocker8.budgetmaster.logic.CategoryInOutSum; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.MonthInOutSum; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import javafx.geometry.Insets; import javafx.geometry.Orientation; import javafx.geometry.Pos; +import javafx.scene.Scene; +import javafx.scene.SnapshotParameters; import javafx.scene.control.Label; +import javafx.scene.control.ScrollPane; +import javafx.scene.control.ScrollPane.ScrollBarPolicy; import javafx.scene.control.Separator; import javafx.scene.control.Tooltip; +import javafx.scene.image.WritableImage; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; +import javafx.scene.layout.Region; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.text.TextAlignment; +import javafx.scene.transform.Transform; +import javafx.stage.Modality; +import javafx.stage.Stage; import tools.ConvertTo; -public class MonthChartGenerator +public class MonthBarChart extends VBox implements ChartExportable { private ArrayList<MonthInOutSum> monthInOutSums; private String currency; - public MonthChartGenerator(ArrayList<MonthInOutSum> monthInOutSums, String currency) + public MonthBarChart(ArrayList<MonthInOutSum> monthInOutSums, String currency) { if(monthInOutSums == null) { @@ -34,10 +43,24 @@ public class MonthChartGenerator { this.monthInOutSums = monthInOutSums; } - this.currency = currency; + this.currency = currency; + + ScrollPane scrollPane = new ScrollPane(); + scrollPane.setVbarPolicy(ScrollBarPolicy.NEVER); + scrollPane.setFocusTraversable(false); + scrollPane.setStyle("-fx-background-color: transparent; -fx-background-insets: 0; -fx-border-color: transparent; -fx-border-width: 0; -fx-border-insets: 0;"); + scrollPane.setPadding(new Insets(0, 0, 10, 0)); + + HBox generatedChart = generate(); + scrollPane.setContent(generatedChart); + generatedChart.prefHeightProperty().bind(scrollPane.heightProperty().subtract(30)); + this.getChildren().add(scrollPane); + VBox.setVgrow(scrollPane, Priority.ALWAYS); + + this.getChildren().add(generateLegend()); } - public HBox generate() + private HBox generate() { HBox generatedChart = new HBox(); generatedChart.setAlignment(Pos.TOP_CENTER); @@ -127,7 +150,7 @@ public class MonthChartGenerator return result; } - public GridPane generateLegend() + private GridPane generateLegend() { GridPane legend = new GridPane(); legend.setPadding(new Insets(10)); @@ -225,4 +248,34 @@ public class MonthChartGenerator } return maximum / 100.0; } + + @Override + public WritableImage export(int width, int height) + { + VBox root = new VBox(); + root.setStyle("-fx-background-color: transparent;"); + root.setPadding(new Insets(25)); + + HBox generatedChart = generate(); + root.getChildren().add(generatedChart); + VBox.setVgrow(generatedChart, Priority.ALWAYS); + + Region spacer = new Region(); + spacer.setMinHeight(30); + root.getChildren().add(spacer); + + root.getChildren().add(generateLegend()); + + Stage newStage = new Stage(); + newStage.initModality(Modality.NONE); + newStage.setScene(new Scene(root, width, height)); + newStage.setResizable(false); + newStage.show(); + + SnapshotParameters sp = new SnapshotParameters(); + sp.setTransform(Transform.scale(width / root.getWidth(), height / root.getHeight())); + newStage.close(); + + return root.snapshot(sp, null); + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/LineChartGenerator.java b/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java similarity index 73% rename from src/de/deadlocker8/budgetmaster/logic/chartGenerators/LineChartGenerator.java rename to src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java index 8b6bbb704..96419f9b9 100644 --- a/src/de/deadlocker8/budgetmaster/logic/chartGenerators/LineChartGenerator.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java @@ -1,34 +1,45 @@ -package de.deadlocker8.budgetmaster.logic.chartGenerators; +package de.deadlocker8.budgetmaster.logic.charts; import java.util.ArrayList; import java.util.Iterator; import java.util.Set; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.MonthInOutSum; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import javafx.event.EventHandler; +import javafx.geometry.Insets; import javafx.geometry.Point2D; import javafx.scene.Node; +import javafx.scene.Scene; +import javafx.scene.SnapshotParameters; import javafx.scene.chart.CategoryAxis; import javafx.scene.chart.LineChart; import javafx.scene.chart.NumberAxis; import javafx.scene.chart.XYChart; import javafx.scene.control.Label; import javafx.scene.control.Tooltip; +import javafx.scene.image.WritableImage; import javafx.scene.input.MouseEvent; +import javafx.scene.layout.VBox; +import javafx.scene.transform.Transform; +import javafx.stage.Modality; +import javafx.stage.Stage; -public class LineChartGenerator +public class MonthLineChart extends VBox implements ChartExportable { private ArrayList<MonthInOutSum> monthInOutSums; private String currency; - public LineChartGenerator(ArrayList<MonthInOutSum> monthInOutSums, String currency) + public MonthLineChart(ArrayList<MonthInOutSum> monthInOutSums, String currency) { this.monthInOutSums = monthInOutSums; this.currency = currency; + + this.setSpacing(10); + this.getChildren().add(generate()); } - public LineChart<String, Number> generate() + private LineChart<String, Number> generate() { final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); @@ -136,4 +147,25 @@ public class LineChartGenerator return generatedChart; } + + @Override + public WritableImage export(int width, int height) { + VBox root = new VBox(); + root.setStyle("-fx-background-color: transparent;"); + root.setPadding(new Insets(25)); + + root.getChildren().add(generate()); + + Stage newStage = new Stage(); + newStage.initModality(Modality.NONE); + newStage.setScene(new Scene(root, width, height)); + newStage.setResizable(false); + newStage.show(); + + SnapshotParameters sp = new SnapshotParameters(); + sp.setTransform(Transform.scale(width / root.getWidth(), height / root.getHeight())); + newStage.close(); + + return root.snapshot(sp, null); + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java b/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java index ef8d3f96e..9ad46eb95 100644 --- a/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java +++ b/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java @@ -24,7 +24,7 @@ import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import de.deadlocker8.budgetmaster.logic.CategoryBudget; -import de.deadlocker8.budgetmaster.logic.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; public class ReportGenerator { diff --git a/src/de/deadlocker8/budgetmaster/logic/ExceptionHandler.java b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ExceptionHandler.java similarity index 95% rename from src/de/deadlocker8/budgetmaster/logic/ExceptionHandler.java rename to src/de/deadlocker8/budgetmaster/logic/serverconnection/ExceptionHandler.java index 9118ffd21..171a7b68a 100644 --- a/src/de/deadlocker8/budgetmaster/logic/ExceptionHandler.java +++ b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ExceptionHandler.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.logic; +package de.deadlocker8.budgetmaster.logic.serverconnection; import java.net.UnknownHostException; diff --git a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java similarity index 96% rename from src/de/deadlocker8/budgetmaster/logic/ServerConnection.java rename to src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java index 90b430b26..a7edd958d 100644 --- a/src/de/deadlocker8/budgetmaster/logic/ServerConnection.java +++ b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.logic; +package de.deadlocker8.budgetmaster.logic.serverconnection; import java.io.BufferedReader; import java.io.InputStream; @@ -19,6 +19,15 @@ import org.joda.time.DateTime; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; +import de.deadlocker8.budgetmaster.logic.Category; +import de.deadlocker8.budgetmaster.logic.CategoryBudget; +import de.deadlocker8.budgetmaster.logic.CategoryInOutSum; +import de.deadlocker8.budgetmaster.logic.MonthInOutSum; +import de.deadlocker8.budgetmaster.logic.NormalPayment; +import de.deadlocker8.budgetmaster.logic.RepeatingPayment; +import de.deadlocker8.budgetmaster.logic.RepeatingPaymentEntry; +import de.deadlocker8.budgetmaster.logic.Settings; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmasterserver.logic.Database; import tools.ConvertTo; import tools.Read; diff --git a/src/de/deadlocker8/budgetmaster/logic/ServerConnectionException.java b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnectionException.java similarity index 91% rename from src/de/deadlocker8/budgetmaster/logic/ServerConnectionException.java rename to src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnectionException.java index c18a1663b..4415d8625 100644 --- a/src/de/deadlocker8/budgetmaster/logic/ServerConnectionException.java +++ b/src/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnectionException.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.logic; +package de.deadlocker8.budgetmaster.logic.serverconnection; public class ServerConnectionException extends Exception { diff --git a/src/de/deadlocker8/budgetmaster/logic/Utils.java b/src/de/deadlocker8/budgetmaster/logic/utils/FileHelper.java similarity index 93% rename from src/de/deadlocker8/budgetmaster/logic/Utils.java rename to src/de/deadlocker8/budgetmaster/logic/utils/FileHelper.java index c9af40da5..2e6766f7d 100644 --- a/src/de/deadlocker8/budgetmaster/logic/Utils.java +++ b/src/de/deadlocker8/budgetmaster/logic/utils/FileHelper.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.logic; +package de.deadlocker8.budgetmaster.logic.utils; import java.io.File; import java.io.IOException; @@ -12,10 +12,11 @@ import java.util.ResourceBundle; import com.google.gson.Gson; +import de.deadlocker8.budgetmaster.logic.Settings; import de.deadlocker8.budgetmasterserver.logic.Database; import tools.PathUtils; -public class Utils +public class FileHelper { private static final ResourceBundle bundle = ResourceBundle.getBundle("de/deadlocker8/budgetmaster/main/", Locale.GERMANY); diff --git a/src/de/deadlocker8/budgetmaster/logic/Helpers.java b/src/de/deadlocker8/budgetmaster/logic/utils/Helpers.java similarity index 98% rename from src/de/deadlocker8/budgetmaster/logic/Helpers.java rename to src/de/deadlocker8/budgetmaster/logic/utils/Helpers.java index 70c73e800..79afb7987 100644 --- a/src/de/deadlocker8/budgetmaster/logic/Helpers.java +++ b/src/de/deadlocker8/budgetmaster/logic/utils/Helpers.java @@ -1,4 +1,4 @@ -package de.deadlocker8.budgetmaster.logic; +package de.deadlocker8.budgetmaster.logic.utils; import java.io.IOException; import java.io.UnsupportedEncodingException; diff --git a/src/de/deadlocker8/budgetmaster/ui/CategoryController.java b/src/de/deadlocker8/budgetmaster/ui/CategoryController.java index 8a86686a8..1c5e03bcb 100644 --- a/src/de/deadlocker8/budgetmaster/ui/CategoryController.java +++ b/src/de/deadlocker8/budgetmaster/ui/CategoryController.java @@ -5,8 +5,8 @@ import java.io.IOException; import java.util.ArrayList; import de.deadlocker8.budgetmaster.logic.Category; -import de.deadlocker8.budgetmaster.logic.ExceptionHandler; -import de.deadlocker8.budgetmaster.logic.ServerConnection; +import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; import de.deadlocker8.budgetmaster.ui.cells.CategoryCell; import fontAwesome.FontIcon; import fontAwesome.FontIconType; diff --git a/src/de/deadlocker8/budgetmaster/ui/ChartController.java b/src/de/deadlocker8/budgetmaster/ui/ChartController.java index 6b96c34d5..0d8ab2d69 100644 --- a/src/de/deadlocker8/budgetmaster/ui/ChartController.java +++ b/src/de/deadlocker8/budgetmaster/ui/ChartController.java @@ -9,25 +9,23 @@ import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import de.deadlocker8.budgetmaster.logic.CategoryInOutSum; -import de.deadlocker8.budgetmaster.logic.ExceptionHandler; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.MonthInOutSum; -import de.deadlocker8.budgetmaster.logic.ServerConnection; -import de.deadlocker8.budgetmaster.logic.chartGenerators.CategoriesChart; -import de.deadlocker8.budgetmaster.logic.chartGenerators.ChartExportable; -import de.deadlocker8.budgetmaster.logic.chartGenerators.LegendType; -import de.deadlocker8.budgetmaster.logic.chartGenerators.LineChartGenerator; -import de.deadlocker8.budgetmaster.logic.chartGenerators.MonthChartGenerator; +import de.deadlocker8.budgetmaster.logic.charts.CategoriesChart; +import de.deadlocker8.budgetmaster.logic.charts.ChartExportable; +import de.deadlocker8.budgetmaster.logic.charts.LegendType; +import de.deadlocker8.budgetmaster.logic.charts.MonthBarChart; +import de.deadlocker8.budgetmaster.logic.charts.MonthLineChart; +import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; -import javafx.geometry.Insets; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.chart.LineChart; import javafx.scene.control.Accordion; import javafx.scene.control.Alert.AlertType; import javafx.scene.control.Button; @@ -35,11 +33,8 @@ import javafx.scene.control.ComboBox; import javafx.scene.control.DateCell; import javafx.scene.control.DatePicker; import javafx.scene.control.RadioButton; -import javafx.scene.control.ScrollPane; -import javafx.scene.control.ScrollPane.ScrollBarPolicy; import javafx.scene.control.ToggleGroup; import javafx.scene.layout.AnchorPane; -import javafx.scene.layout.HBox; import javafx.scene.layout.Priority; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; @@ -65,15 +60,16 @@ public class ChartController implements Refreshable @FXML private ComboBox<String> comboBoxEndMonth; @FXML private ComboBox<String> comboBoxEndYear; @FXML private Button buttonChartMonthShow; + @FXML private Button buttonChartMonthExport; @FXML private RadioButton radioButtonBars; @FXML private RadioButton radioButtonLines; - @FXML private HBox hboxChartMonthButtons; private Controller controller; - private Button buttonChartMonthExport; private File lastExportPath; private CategoriesChart categoriesChart; + private MonthLineChart monthLineChart; + private MonthBarChart monthBarChart; public void init(Controller controller) { @@ -101,18 +97,12 @@ public class ChartController implements Refreshable buttonChartMonthShow.setStyle("-fx-background-color: #2E79B9;"); buttonChartMonthShow.setGraphic(iconShow3); - buttonChartMonthExport = new Button(); - //DEBUG -// buttonChartMonthExport.setOnAction((event) -> { -// export(vboxChartMonth); -// }); - FontIcon iconShow4 = new FontIcon(FontIconType.SAVE); iconShow4.setSize(16); iconShow4.setColor(Color.WHITE); buttonChartMonthExport.setStyle("-fx-background-color: #2E79B9;"); - buttonChartMonthExport.setGraphic(iconShow4); - + buttonChartMonthExport.setGraphic(iconShow4); + datePickerEnd.setDayCellFactory(new Callback<DatePicker, DateCell>() { @Override @@ -189,6 +179,24 @@ public class ChartController implements Refreshable export(categoriesChart); } } + + public void chartMonthExport() + { + if(radioButtonLines.isSelected()) + { + if(monthLineChart != null) + { + export(monthLineChart); + } + } + else + { + if(monthBarChart != null) + { + export(monthBarChart); + } + } + } public void export(ChartExportable chart) { @@ -219,21 +227,6 @@ public class ChartController implements Refreshable public void chartMonthShow() { - if(radioButtonLines.isSelected()) - { - if(!hboxChartMonthButtons.getChildren().contains(buttonChartMonthExport)) - { - hboxChartMonthButtons.getChildren().add(buttonChartMonthExport); - } - } - else - { - if(hboxChartMonthButtons.getChildren().contains(buttonChartMonthExport)) - { - hboxChartMonthButtons.getChildren().remove(buttonChartMonthExport); - } - } - Platform.runLater(() -> { vboxChartMonth.getChildren().clear(); }); @@ -267,26 +260,15 @@ public class ChartController implements Refreshable if(radioButtonBars.isSelected()) { - ScrollPane scrollPane = new ScrollPane(); - scrollPane.setVbarPolicy(ScrollBarPolicy.NEVER); - scrollPane.setFocusTraversable(false); - scrollPane.setStyle("-fx-background-color: transparent; -fx-background-insets: 0; -fx-border-color: transparent; -fx-border-width: 0; -fx-border-insets: 0;"); - scrollPane.setPadding(new Insets(0, 0, 10, 0)); - - MonthChartGenerator generator = new MonthChartGenerator(sums, controller.getSettings().getCurrency()); - HBox generatedChart = generator.generate(); - scrollPane.setContent(generatedChart); - generatedChart.prefHeightProperty().bind(scrollPane.heightProperty().subtract(30)); - vboxChartMonth.getChildren().add(scrollPane); - VBox.setVgrow(scrollPane, Priority.ALWAYS); - vboxChartMonth.getChildren().add(generator.generateLegend()); + monthBarChart = new MonthBarChart(sums, controller.getSettings().getCurrency()); + vboxChartMonth.getChildren().add(monthBarChart); + VBox.setVgrow(monthBarChart, Priority.ALWAYS); } else { - LineChartGenerator generator = new LineChartGenerator(sums, controller.getSettings().getCurrency()); - LineChart<String, Number> chartMonth = generator.generate(); - vboxChartMonth.getChildren().add(chartMonth); - VBox.setVgrow(chartMonth, Priority.ALWAYS); + monthLineChart = new MonthLineChart(sums, controller.getSettings().getCurrency()); + vboxChartMonth.getChildren().add(monthLineChart); + VBox.setVgrow(monthLineChart, Priority.ALWAYS); } }); } diff --git a/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml b/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml index fbe8fad75..58380127a 100644 --- a/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml +++ b/src/de/deadlocker8/budgetmaster/ui/ChartTab.fxml @@ -113,7 +113,7 @@ </HBox> </children> </VBox> - <HBox fx:id="hboxChartMonthButtons" alignment="CENTER_LEFT" spacing="15.0" HBox.hgrow="ALWAYS"> + <HBox alignment="CENTER_LEFT" spacing="15.0" HBox.hgrow="ALWAYS"> <children> <RadioButton fx:id="radioButtonBars" mnemonicParsing="false" text="Balken"> <font> @@ -131,6 +131,14 @@ <Insets left="10.0" /> </HBox.margin> </Button> + <Button fx:id="buttonChartMonthExport" mnemonicParsing="false" onAction="#chartMonthExport"> + <font> + <Font name="System Bold" size="12.0" /> + </font> + <HBox.margin> + <Insets left="10.0" /> + </HBox.margin> + </Button> </children> </HBox> </children> diff --git a/src/de/deadlocker8/budgetmaster/ui/Controller.java b/src/de/deadlocker8/budgetmaster/ui/Controller.java index c4d84fcb4..2fa2e5b0f 100644 --- a/src/de/deadlocker8/budgetmaster/ui/Controller.java +++ b/src/de/deadlocker8/budgetmaster/ui/Controller.java @@ -8,13 +8,13 @@ import org.joda.time.DateTime; import de.deadlocker8.budgetmaster.logic.CategoryBudget; import de.deadlocker8.budgetmaster.logic.CategoryHandler; -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.PaymentHandler; -import de.deadlocker8.budgetmaster.logic.ServerConnection; import de.deadlocker8.budgetmaster.logic.Settings; +import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.animation.FadeTransition; diff --git a/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java b/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java index f054c82ba..793f54a90 100644 --- a/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java +++ b/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java @@ -7,7 +7,7 @@ import java.util.Optional; import javax.imageio.ImageIO; -import de.deadlocker8.budgetmaster.logic.chartGenerators.ChartExportable; +import de.deadlocker8.budgetmaster.logic.charts.ChartExportable; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.embed.swing.SwingFXUtils; @@ -54,8 +54,8 @@ public class ExportChartController labelSavePath.setText(savePath.getAbsolutePath()); } - textFieldWidth.setText("600"); - textFieldHeight.setText("400"); + textFieldWidth.setText(String.valueOf((int)chart.getWidth())); + textFieldHeight.setText(String.valueOf((int)chart.getHeight())); anchorPaneMain.setStyle("-fx-background-color: #F4F4F4;"); diff --git a/src/de/deadlocker8/budgetmaster/ui/HomeController.java b/src/de/deadlocker8/budgetmaster/ui/HomeController.java index 1cf7c0c4d..feb5c9899 100644 --- a/src/de/deadlocker8/budgetmaster/ui/HomeController.java +++ b/src/de/deadlocker8/budgetmaster/ui/HomeController.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import de.deadlocker8.budgetmaster.logic.Budget; import de.deadlocker8.budgetmaster.logic.CategoryBudget; -import de.deadlocker8.budgetmaster.logic.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.ui.cells.CategoryBudgetCell; import javafx.application.Platform; import javafx.beans.value.ChangeListener; diff --git a/src/de/deadlocker8/budgetmaster/ui/NewCategoryController.java b/src/de/deadlocker8/budgetmaster/ui/NewCategoryController.java index 89872beb9..54070e374 100644 --- a/src/de/deadlocker8/budgetmaster/ui/NewCategoryController.java +++ b/src/de/deadlocker8/budgetmaster/ui/NewCategoryController.java @@ -6,8 +6,8 @@ import org.controlsfx.control.PopOver; import org.controlsfx.control.PopOver.ArrowLocation; import de.deadlocker8.budgetmaster.logic.Category; -import de.deadlocker8.budgetmaster.logic.ExceptionHandler; -import de.deadlocker8.budgetmaster.logic.ServerConnection; +import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.fxml.FXML; diff --git a/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java b/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java index 2fc8cdaaf..2ba2285b1 100644 --- a/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/NewPaymentController.java @@ -6,13 +6,13 @@ import java.util.ArrayList; import org.joda.time.DateTime; import de.deadlocker8.budgetmaster.logic.Category; -import de.deadlocker8.budgetmaster.logic.ExceptionHandler; -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.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.ui.cells.ButtonCategoryCell; import de.deadlocker8.budgetmaster.ui.cells.RepeatingDayCell; import de.deadlocker8.budgetmaster.ui.cells.SmallCategoryCell; diff --git a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java index a1dc8834c..272e133d7 100644 --- a/src/de/deadlocker8/budgetmaster/ui/PaymentController.java +++ b/src/de/deadlocker8/budgetmaster/ui/PaymentController.java @@ -4,14 +4,14 @@ 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.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.ui.cells.PaymentCell; import fontAwesome.FontIcon; import fontAwesome.FontIconType; diff --git a/src/de/deadlocker8/budgetmaster/ui/ReportController.java b/src/de/deadlocker8/budgetmaster/ui/ReportController.java index 36a71134e..a0fe17c09 100644 --- a/src/de/deadlocker8/budgetmaster/ui/ReportController.java +++ b/src/de/deadlocker8/budgetmaster/ui/ReportController.java @@ -10,7 +10,6 @@ import java.util.Date; import java.util.Optional; import de.deadlocker8.budgetmaster.logic.FilterSettings; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.Payment; import de.deadlocker8.budgetmaster.logic.RepeatingPaymentEntry; import de.deadlocker8.budgetmaster.logic.comparators.DateComparator; @@ -20,6 +19,7 @@ import de.deadlocker8.budgetmaster.logic.report.ColumnOrder; import de.deadlocker8.budgetmaster.logic.report.ColumnType; import de.deadlocker8.budgetmaster.logic.report.ReportGenerator; import de.deadlocker8.budgetmaster.logic.report.ReportItem; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.application.Platform; diff --git a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java index 265c3abf5..159c37cc1 100644 --- a/src/de/deadlocker8/budgetmaster/ui/SettingsController.java +++ b/src/de/deadlocker8/budgetmaster/ui/SettingsController.java @@ -5,11 +5,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Optional; -import de.deadlocker8.budgetmaster.logic.ExceptionHandler; -import de.deadlocker8.budgetmaster.logic.Helpers; -import de.deadlocker8.budgetmaster.logic.ServerConnection; import de.deadlocker8.budgetmaster.logic.Settings; -import de.deadlocker8.budgetmaster.logic.Utils; +import de.deadlocker8.budgetmaster.logic.serverconnection.ExceptionHandler; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; +import de.deadlocker8.budgetmaster.logic.utils.FileHelper; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmasterserver.logic.Database; import javafx.application.Platform; import javafx.fxml.FXML; @@ -206,7 +206,7 @@ public class SettingsController try { - Utils.saveSettings(controller.getSettings()); + FileHelper.saveSettings(controller.getSettings()); } catch(IOException e) { @@ -237,7 +237,7 @@ public class SettingsController { ServerConnection connection = new ServerConnection(controller.getSettings()); String databaseJSON = connection.exportDatabase(); - Utils.saveDatabaseJSON(file, databaseJSON); + FileHelper.saveDatabaseJSON(file, databaseJSON); Platform.runLater(() -> { if(modalStage != null) @@ -274,7 +274,7 @@ public class SettingsController Database database; try { - database = Utils.loadDatabaseJSON(file); + database = FileHelper.loadDatabaseJSON(file); if(database.getCategories() == null || database.getNormalPayments() == null || database.getRepeatingPayments() == null) { AlertGenerator.showAlert(AlertType.ERROR, "Fehler", "", "Die angegebene Datei enthält kein gültiges BudgetMaster-Datenformat und kann daher nicht importiert werden.", controller.getIcon(), controller.getStage(), null, false); diff --git a/src/de/deadlocker8/budgetmaster/ui/SplashScreenController.java b/src/de/deadlocker8/budgetmaster/ui/SplashScreenController.java index 4faa8ceb4..b40112b62 100644 --- a/src/de/deadlocker8/budgetmaster/ui/SplashScreenController.java +++ b/src/de/deadlocker8/budgetmaster/ui/SplashScreenController.java @@ -3,9 +3,9 @@ package de.deadlocker8.budgetmaster.ui; import java.io.IOException; import java.util.ResourceBundle; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.Settings; -import de.deadlocker8.budgetmaster.logic.Utils; +import de.deadlocker8.budgetmaster.logic.utils.FileHelper; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import fontAwesome.FontIcon; import fontAwesome.FontIconType; import javafx.application.Platform; @@ -63,7 +63,7 @@ public class SplashScreenController } }); - settings = Utils.loadSettings(); + settings = FileHelper.loadSettings(); if(settings == null) { settings = new Settings(); @@ -105,7 +105,7 @@ public class SplashScreenController settings.setClientSecret(HashUtils.hash(password, Helpers.SALT)); try { - Utils.saveSettings(settings); + FileHelper.saveSettings(settings); stage.close(); openBudgetMaster(); diff --git a/src/de/deadlocker8/budgetmaster/ui/cells/CategoryBudgetCell.java b/src/de/deadlocker8/budgetmaster/ui/cells/CategoryBudgetCell.java index 74b06681c..b06fef967 100644 --- a/src/de/deadlocker8/budgetmaster/ui/cells/CategoryBudgetCell.java +++ b/src/de/deadlocker8/budgetmaster/ui/cells/CategoryBudgetCell.java @@ -1,7 +1,7 @@ package de.deadlocker8.budgetmaster.ui.cells; import de.deadlocker8.budgetmaster.logic.CategoryBudget; -import de.deadlocker8.budgetmaster.logic.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.ui.HomeController; import javafx.geometry.Insets; import javafx.geometry.Pos; diff --git a/src/de/deadlocker8/budgetmaster/ui/cells/PaymentCell.java b/src/de/deadlocker8/budgetmaster/ui/cells/PaymentCell.java index ce20c31a7..13edac0e3 100644 --- a/src/de/deadlocker8/budgetmaster/ui/cells/PaymentCell.java +++ b/src/de/deadlocker8/budgetmaster/ui/cells/PaymentCell.java @@ -7,10 +7,10 @@ import java.util.Date; import java.util.Optional; import de.deadlocker8.budgetmaster.logic.Category; -import de.deadlocker8.budgetmaster.logic.Helpers; import de.deadlocker8.budgetmaster.logic.NormalPayment; import de.deadlocker8.budgetmaster.logic.Payment; import de.deadlocker8.budgetmaster.logic.RepeatingPaymentEntry; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmaster.ui.PaymentController; import fontAwesome.FontIcon; import fontAwesome.FontIconType; diff --git a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java index b2389dd93..29317035b 100644 --- a/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java +++ b/src/de/deadlocker8/budgetmasterserver/server/SparkServer.java @@ -17,7 +17,7 @@ import org.joda.time.DateTime; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import de.deadlocker8.budgetmaster.logic.Helpers; +import de.deadlocker8.budgetmaster.logic.utils.Helpers; import de.deadlocker8.budgetmasterserver.logic.DatabaseHandler; import de.deadlocker8.budgetmasterserver.logic.Settings; import de.deadlocker8.budgetmasterserver.server.category.CategoryAdd; diff --git a/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportExportTest.java b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportExportTest.java index 21eb640fe..f319ff5d5 100644 --- a/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportExportTest.java +++ b/tests/de/deadlocker8/budgetmaster/tests/server/database/DatabaseImportExportTest.java @@ -18,6 +18,7 @@ import com.google.gson.Gson; import de.deadlocker8.budgetmaster.logic.Category; import de.deadlocker8.budgetmaster.logic.NormalPayment; import de.deadlocker8.budgetmaster.logic.RepeatingPayment; +import de.deadlocker8.budgetmaster.logic.utils.FileHelper; import de.deadlocker8.budgetmasterserver.logic.Database; import de.deadlocker8.budgetmasterserver.logic.DatabaseExporter; import de.deadlocker8.budgetmasterserver.logic.DatabaseHandler; @@ -55,7 +56,7 @@ public class DatabaseImportExportTest try { File file = Paths.get("tests/de/deadlocker8/budgetmaster/tests/resources/import.json").toFile(); - Database database = de.deadlocker8.budgetmaster.logic.Utils.loadDatabaseJSON(file); + Database database = FileHelper.loadDatabaseJSON(file); DatabaseImporter importer = new DatabaseImporter(databaseHandler); importer.importDatabase(database); @@ -105,7 +106,7 @@ public class DatabaseImportExportTest databaseHandler = new DatabaseHandler(settings); File file = Paths.get("tests/de/deadlocker8/budgetmaster/tests/resources/import.json").toFile(); - Database database = de.deadlocker8.budgetmaster.logic.Utils.loadDatabaseJSON(file); + Database database = FileHelper.loadDatabaseJSON(file); DatabaseImporter importer = new DatabaseImporter(databaseHandler); importer.importDatabase(database); @@ -114,7 +115,7 @@ public class DatabaseImportExportTest DatabaseExporter exporter = new DatabaseExporter(settings); Gson gson = new Gson(); String databaseJSON = gson.toJson(exporter.exportDatabase()); - de.deadlocker8.budgetmaster.logic.Utils.saveDatabaseJSON(file, databaseJSON); + FileHelper.saveDatabaseJSON(file, databaseJSON); String expectedJSON = new String(Files.readAllBytes(Paths.get("tests/de/deadlocker8/budgetmaster/tests/resources/import.json"))); String exportedJSON = new String(Files.readAllBytes(Paths.get("tests/de/deadlocker8/budgetmaster/tests/resources/export.json"))); -- GitLab