From 37c1bcb59024d88bef21f5d33493ee4751591f0b Mon Sep 17 00:00:00 2001 From: JoePfeiffer Date: Fri, 27 Sep 2024 10:19:38 -0600 Subject: [PATCH] Put data names in sample tooltips instead of x and y --- .../gui/dialogs/componentanalysis/CAPlot.java | 6 +-- .../info/openrocket/swing/gui/plot/Plot.java | 53 +++++++++++-------- .../swing/gui/plot/SimulationPlot.java | 11 ++-- 3 files changed, 39 insertions(+), 31 deletions(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/dialogs/componentanalysis/CAPlot.java b/swing/src/main/java/info/openrocket/swing/gui/dialogs/componentanalysis/CAPlot.java index ba98485dd..5ae60db0b 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/dialogs/componentanalysis/CAPlot.java +++ b/swing/src/main/java/info/openrocket/swing/gui/dialogs/componentanalysis/CAPlot.java @@ -26,7 +26,7 @@ public class CAPlot extends Plot // Create the series for each component List allSeries = new ArrayList<>(); for (int i = 0; i < components.size(); i++) { - XYSeries series = createSingleSeries(startIndex*1000 + i, type, unit, branch, branchIdx, branchName, baseName, + XYSeries series = createSingleSeries(startIndex*1000 + i, type, unit, branch, branchIdx, branchName, dataIndex, baseName, components.get(i), componentNames.get(i)); allSeries.add(series); } @@ -35,10 +35,10 @@ public class CAPlot extends Plot } private XYSeries createSingleSeries(int key, CADataType type, Unit unit, - CADataBranch branch, int branchIdx, String branchName, String baseName, + CADataBranch branch, int branchIdx, String branchName, int dataIndex, String baseName, RocketComponent component, String componentName) { // Default implementation for regular DataBranch - MetadataXYSeries series = new MetadataXYSeries(key, false, true, branchIdx, unit.getUnit(), + MetadataXYSeries series = new MetadataXYSeries(key, false, true, branchIdx, dataIndex, unit.getUnit(), branchName, baseName); // Create a new description that includes the component name diff --git a/swing/src/main/java/info/openrocket/swing/gui/plot/Plot.java b/swing/src/main/java/info/openrocket/swing/gui/plot/Plot.java index 1e1e47ef7..f30be8afd 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/plot/Plot.java +++ b/swing/src/main/java/info/openrocket/swing/gui/plot/Plot.java @@ -202,16 +202,24 @@ public abstract class Plot, C extend return null; } MetadataXYSeries ser = (MetadataXYSeries) collection.getSeries(series); - String unitY = ser.getUnit(); - String unitX = domainUnit.getUnit(); - - double dataY = dataset.getYValue(series, item); - double dataX = dataset.getXValue(series, item); // Determine the appropriate name based on the time and series String name = getNameBasedOnIdxAndSeries(ser, item); - return formatSampleTooltip(name, dataX, unitX, dataY, unitY); + int dataTypeIdx = ser.getDataIdx(); + DataType type = config.getType(dataTypeIdx); + + String nameX = config.getDomainAxisType().getName(); + String unitX = domainUnit.getUnit(); + double dataX = dataset.getXValue(series, item); + + String nameY = type.toString(); + double dataY = dataset.getYValue(series, item); + String unitY = ser.getUnit(); + + return formatSampleTooltip(name, + nameX, dataX, unitX, + nameY, dataY, unitY); } }; @@ -297,32 +305,33 @@ public abstract class Plot, C extend return type; } - protected String formatSampleTooltip(String dataName, double dataX, String unitX, double dataY, String unitY, - boolean addYValue) { + protected String formatSampleTooltip(String dataName, + String nameX, double dataX, String unitX, + String nameY, double dataY, String unitY) { - DecimalFormat df_y = DecimalFormatter.df(dataY, 2, false); + final String strFormat = "%s: %s %s
"; + DecimalFormat df_x = DecimalFormatter.df(dataX, 2, false); StringBuilder sb = new StringBuilder(); - sb.append(String.format("" + - "%s
", dataName)); + sb.append(""); - if (addYValue) { - sb.append(String.format("Y: %s %s
", df_y.format(dataY), unitY)); + sb.append(String.format("%s
", dataName)); + + sb.append(String.format(strFormat, nameX, df_x.format(dataX), unitX)); + + if (!Double.isNaN(dataY)) { + DecimalFormat df_y = DecimalFormatter.df(dataY, 2, false); + sb.append(String.format(strFormat, nameY, df_y.format(dataY), unitY)); } - sb.append(String.format("X: %s %s
" + - "", df_x.format(dataX), unitX)); - + sb.append(""); + return sb.toString(); } - protected String formatSampleTooltip(String dataName, double dataX, String unitX, double dataY, String unitY) { - return formatSampleTooltip(dataName, dataX, unitX, dataY, unitY, true); - } - - protected String formatSampleTooltip(String dataName, double dataX, String unitX) { - return formatSampleTooltip(dataName, dataX, unitX, 0, "", false); + protected String formatSampleTooltip(String dataName, String nameX, double dataX, String unitX) { + return formatSampleTooltip(dataName, nameX, dataX, unitX, "", Double.NaN, ""); } protected static class LegendItems implements LegendItemSource { 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 27fb0f7f5..1519f3d9a 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 @@ -282,14 +282,13 @@ public class SimulationPlot extends Plot)(collection.getSeries())) { - Plot.MetadataXYSeries metaSeries = (Plot.MetadataXYSeries) series; + for (MetadataXYSeries series : (List)(collection.getSeries())) { - if (metaSeries.getBranchIdx() != branch) { + if (series.getBranchIdx() != branch) { continue; } - int dataTypeIdx = metaSeries.getDataIdx(); + int dataTypeIdx = series.getDataIdx(); FlightDataType type = config.getType(dataTypeIdx); String yName = type.toString(); List range = dataBranch.get(type); @@ -319,9 +318,9 @@ public class SimulationPlot extends Plot