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 6517e261397357c889c00f751d45b7e27591a57c..0000000000000000000000000000000000000000 --- 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 f597aff27816b5b1c70229e469703f73825b00fd..0000000000000000000000000000000000000000 --- 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 d2b527b77b141739d52773c39cf239369682fa6c..0000000000000000000000000000000000000000 --- 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 d94618d06df57b68d132edbd757aa42cdec9adeb..17603ae33c3c5b660716db9f0f4733f586948ec4 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 2189d23a2b6a238ff8f9fa280c27a1a7d2777675..2077c7b06169b46798a02f4ac5c61af58a8f8a4d 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 0000000000000000000000000000000000000000..d9f8e6a41912883961dcfc25fc07a0739b236ff1 --- /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 dd2a0cdef61cb1534aac433d02ffcb4a3623718a..cdc88fc932678cf8cd3d57fdc2450edb83c2c2ab 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 8b6bbb70461c24dcb1f8b23a05dac9becc2085fb..96419f9b96378c9a244235766b0077d8114b5644 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 ef8d3f96e64d0750afb47c13a1965ca6b126d032..9ad46eb9572e7f72a2c5b635cf47819cc0e9a928 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 9118ffd2195736842f4526d8100222e930c762a2..171a7b68a4c2f1bd054950581c29802589249054 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 90b430b267293752d4e351a597bfe217db6d3f36..a7edd958d9496f077f0854b01f9f9b5072fdf4c2 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 c18a1663b3a6774129233997db6a08d99535f9e4..4415d8625928515f62717b77cfa8ed93228a029a 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 c9af40da56e4e6360256674d42ee8d139343969e..2e6766f7dcbab1a416fd8db16f770706feaeb38e 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 70c73e800a0427286edef8c3a3ec0f2cd228e647..79afb7987cfa9cf4398a5dba7bddf1692d07cacc 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 8a86686a8d5455a544882ddc0253e741c337d537..1c5e03bcbcbbca4b799feaf217b9f721ae615312 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 6b96c34d58d7369a4a5553bec7bee241a288dd34..0d8ab2d6985cde19ea8368165b0000216ef6211b 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 fbe8fad75a86df369f04c247ba95447fe4d39ab1..58380127ae9c51be53859d42d1ffbed7f25a8e1a 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 c4d84fcb470e904f074e299af26d19f3dddd051b..2fa2e5b0ff43445d08b1907ea9414b50dc178c47 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 f054c82bad66451847c11f9d1f6b0b328d0ec752..793f54a9031bd50e726da9226a99e78904458573 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 1cf7c0c4d6f4a93eee3ae601aa462b616955a67a..feb5c989952314609ee527f5549d236efd45f6a7 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 89872beb9d39ffed5ec2f816d5aa934e2dc75192..54070e374c2ababc76b88595c9acf8495950d7df 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 2fc8cdaaf9dad917bda1224fb8ac2e97c81156a6..2ba2285b179909a908ab05b2024b1bdfc5b9e10b 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 a1dc8834cb45e38fef892c6e8e22e7036105ae9c..272e133d70f97fc8e8f7f12d8450161be4be92e4 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 36a71134ec20cf969dff064fe984f5f64b8f9ba6..a0fe17c0911799612bb511bd79ba36a54e571ef4 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 265c3abf5ad5156ddb148645f61d243c93847d53..159c37cc184be56be33bd56eadee8edef2d98946 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 4faa8ceb41af1ad6164c0e9d4b9ac6e434399ce7..b40112b622bda27cd9d1f4036195fea38b488d21 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 74b06681cef7c45b731bcd35cea41ac51accd526..b06fef967751ff51a86e62cbcab0d26ba33d1422 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 ce20c31a7b82d563bd0d4d27887f20c0f21831a0..13edac0e323762f96230daf3df9db7db3d2a716a 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 b2389dd932e79e399f09272e5140ae9d2b87e3e3..29317035bd5b5e5d585dcb568baf2713ccbc2307 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 21eb640fe951be51244ec4a57e0b1812418c1bc7..f319ff5d5c64f56be491167e641b1ae501231205 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")));