From bbff83e015bc0738bb904f6878877f8e1a1acd7e Mon Sep 17 00:00:00 2001 From: SiboVG Date: Tue, 13 Aug 2024 23:19:57 +0200 Subject: [PATCH] Move plot axis selection --- .../swing/gui/plot/SimulationPlot.java | 2 +- .../info/openrocket/swing/gui/plot/Util.java | 31 +++++++++++++++++++ .../gui/simulation/SimulationPlotPanel.java | 14 +-------- .../swing/gui/widgets/PlotTypeSelector.java | 4 ++- 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/plot/SimulationPlot.java b/swing/src/main/java/info/openrocket/swing/gui/plot/SimulationPlot.java index b6eb7906e..bc00b5b56 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/plot/SimulationPlot.java +++ b/swing/src/main/java/info/openrocket/swing/gui/plot/SimulationPlot.java @@ -549,7 +549,7 @@ public class SimulationPlot { LinearInterpolator rangeInterpolator = new LinearInterpolator(time, range); // Image annotations are not supported on the right-side axis // TODO: LOW: Can this be achieved by JFreeChart? - if (filled.getAxis(index) != SimulationPlotPanel.LEFT) { + if (filled.getAxis(index) != Util.PlotAxisSelection.LEFT.getValue()) { continue; } diff --git a/swing/src/main/java/info/openrocket/swing/gui/plot/Util.java b/swing/src/main/java/info/openrocket/swing/gui/plot/Util.java index 374297417..fe9e1438a 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/plot/Util.java +++ b/swing/src/main/java/info/openrocket/swing/gui/plot/Util.java @@ -6,8 +6,39 @@ import java.util.Collections; import java.util.List; import info.openrocket.core.document.Simulation; +import info.openrocket.core.l10n.Translator; +import info.openrocket.core.startup.Application; public abstract class Util { + private static final Translator trans = Application.getTranslator(); + + public enum PlotAxisSelection { + AUTO(-1, trans.get("simplotpanel.AUTO_NAME")), // Automatically decide to plot on the left or right y-axis + LEFT(0, trans.get("simplotpanel.LEFT_NAME")), // Plot on the left y-axis + RIGHT(1, trans.get("simplotpanel.RIGHT_NAME")); // Plot on the right y-axis + + private final int value; + private final String name; + + PlotAxisSelection(int value, String name) { + this.value = value; + this.name = name; + } + + public int getValue() { + return value; + } + + public String getName() { + return name; + } + + @Override + public String toString() { + return name; + } + } + private static final Color[] PLOT_COLORS = { new Color(0,114,189), new Color(217,83,25), diff --git a/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationPlotPanel.java b/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationPlotPanel.java index 8c58b130f..0a3533215 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationPlotPanel.java +++ b/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationPlotPanel.java @@ -57,19 +57,7 @@ public class SimulationPlotPanel extends JPanel { private static final Translator trans = Application.getTranslator(); private static final SwingPreferences preferences = (SwingPreferences) Application.getPreferences(); - - // TODO: LOW: Should these be somewhere else? - public static final int AUTO = -1; - public static final int LEFT = 0; - public static final int RIGHT = 1; - - //// Auto - public static final String AUTO_NAME = trans.get("simplotpanel.AUTO_NAME"); - //// Left - public static final String LEFT_NAME = trans.get("simplotpanel.LEFT_NAME"); - //// Right - public static final String RIGHT_NAME = trans.get("simplotpanel.RIGHT_NAME"); - + //// Custom private static final String CUSTOM = trans.get("simplotpanel.CUSTOM"); diff --git a/swing/src/main/java/info/openrocket/swing/gui/widgets/PlotTypeSelector.java b/swing/src/main/java/info/openrocket/swing/gui/widgets/PlotTypeSelector.java index 87d441e7b..89c627a3f 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/widgets/PlotTypeSelector.java +++ b/swing/src/main/java/info/openrocket/swing/gui/widgets/PlotTypeSelector.java @@ -9,6 +9,7 @@ import info.openrocket.core.util.Group; import info.openrocket.core.util.Groupable; import info.openrocket.core.util.UnitValue; import info.openrocket.swing.gui.components.UnitSelector; +import info.openrocket.swing.gui.plot.Util; import info.openrocket.swing.gui.util.Icons; import java.awt.event.ActionListener; @@ -26,7 +27,8 @@ public class PlotTypeSelector & UnitValu private static final Translator trans = Application.getTranslator(); private static final long serialVersionUID = 9056324972817542570L; - private final String[] POSITIONS = { "Auto", "Left", "Right" }; + private final String[] POSITIONS = {Util.PlotAxisSelection.AUTO.getName(), + Util.PlotAxisSelection.LEFT.getName(), Util.PlotAxisSelection.RIGHT.getName()}; private final int index; private final GroupableAndSearchableComboBox typeSelector;