From a910521e47cda135ca0f1d1f561faac87dab53f0 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Wed, 9 Aug 2017 20:16:18 +0200 Subject: [PATCH] Fixed #141 - better prefilled value for export charts dialog --- .../logic/charts/CategoriesChart.java | 12 +++++++ .../logic/charts/ChartExportable.java | 4 +++ .../logic/charts/MonthBarChart.java | 34 ++++++++++++++++++- .../logic/charts/MonthLineChart.java | 14 +++++++- .../ui/ExportChartController.java | 6 ++-- 5 files changed, 65 insertions(+), 5 deletions(-) diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java index 17603ae33..6ba5192bd 100644 --- a/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java @@ -319,4 +319,16 @@ public class CategoriesChart extends VBox implements ChartExportable return root.snapshot(sp, null); } + + @Override + public double getSuggestedWidth() + { + return getWidth() + 50; + } + + @Override + public double getSuggestedHeight() + { + return getHeight() + 50; + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java b/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java index 2077c7b06..d5516e19c 100644 --- a/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/ChartExportable.java @@ -9,4 +9,8 @@ public interface ChartExportable double getWidth(); double getHeight(); + + double getSuggestedWidth(); + + double getSuggestedHeight(); } diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java b/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java index cdc88fc93..4b34420fe 100644 --- a/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/MonthBarChart.java @@ -8,6 +8,7 @@ import de.deadlocker8.budgetmaster.logic.utils.Helpers; import javafx.geometry.Insets; import javafx.geometry.Orientation; import javafx.geometry.Pos; +import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.SnapshotParameters; import javafx.scene.control.Label; @@ -51,7 +52,7 @@ public class MonthBarChart extends VBox implements ChartExportable 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(); + HBox generatedChart = generate(); scrollPane.setContent(generatedChart); generatedChart.prefHeightProperty().bind(scrollPane.heightProperty().subtract(30)); this.getChildren().add(scrollPane); @@ -278,4 +279,35 @@ public class MonthBarChart extends VBox implements ChartExportable return root.snapshot(sp, null); } + + @Override + public double getSuggestedWidth() + { + if(this.getChildren().size() < 2) + { + return 0; + } + + Node currentNode = this.getChildren().get(0); + + if(!(currentNode instanceof ScrollPane)) + { + return 0; + } + + ScrollPane scrollPane = (ScrollPane)currentNode; + Node content = scrollPane.getContent(); + if(content == null) + { + return 0; + } + + return ((Region)content).getWidth(); + } + + @Override + public double getSuggestedHeight() + { + return getHeight() + 50; + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java b/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java index c15c39dab..af5152f69 100644 --- a/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java +++ b/src/de/deadlocker8/budgetmaster/logic/charts/MonthLineChart.java @@ -161,7 +161,7 @@ public class MonthLineChart extends VBox implements ChartExportable newStage.initModality(Modality.NONE); newStage.setScene(new Scene(root, width, height)); newStage.setResizable(false); - newStage.show(); + newStage.show(); SnapshotParameters sp = new SnapshotParameters(); sp.setTransform(Transform.scale(width / root.getWidth(), height / root.getHeight())); @@ -169,4 +169,16 @@ public class MonthLineChart extends VBox implements ChartExportable return root.snapshot(sp, null); } + + @Override + public double getSuggestedWidth() + { + return getWidth() + 50; + } + + @Override + public double getSuggestedHeight() + { + return getHeight() + 50; + } } \ No newline at end of file diff --git a/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java b/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java index 793f54a90..3b25804ae 100644 --- a/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java +++ b/src/de/deadlocker8/budgetmaster/ui/ExportChartController.java @@ -53,9 +53,9 @@ public class ExportChartController { labelSavePath.setText(savePath.getAbsolutePath()); } - - textFieldWidth.setText(String.valueOf((int)chart.getWidth())); - textFieldHeight.setText(String.valueOf((int)chart.getHeight())); + + textFieldWidth.setText(String.valueOf((int)chart.getSuggestedWidth())); + textFieldHeight.setText(String.valueOf((int)chart.getSuggestedHeight())); anchorPaneMain.setStyle("-fx-background-color: #F4F4F4;"); -- GitLab