From 65158bc06569cc7134e456e1d867612affc2150e Mon Sep 17 00:00:00 2001 From: Sibo Van Gool Date: Fri, 9 Jul 2021 03:58:57 +0200 Subject: [PATCH] Added plot data tooltip --- .../sf/openrocket/gui/plot/SimulationChart.java | 2 +- .../sf/openrocket/gui/plot/SimulationPlot.java | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/swing/src/net/sf/openrocket/gui/plot/SimulationChart.java b/swing/src/net/sf/openrocket/gui/plot/SimulationChart.java index fa3932d5a..f7a19036a 100644 --- a/swing/src/net/sf/openrocket/gui/plot/SimulationChart.java +++ b/swing/src/net/sf/openrocket/gui/plot/SimulationChart.java @@ -57,7 +57,7 @@ public class SimulationChart extends ChartPanel { /* tooltips */true); this.setMouseWheelEnabled(true); this.setEnforceFileExtensions(true); - this.setInitialDelay(500); + this.setInitialDelay(50); this.setBorder(BorderFactory.createLineBorder(Color.GRAY, 1)); } diff --git a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java index 299f62fa5..6db472325 100644 --- a/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java +++ b/swing/src/net/sf/openrocket/gui/plot/SimulationPlot.java @@ -13,6 +13,7 @@ import java.awt.Stroke; import java.awt.geom.Line2D; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; +import java.text.DecimalFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -37,6 +38,7 @@ import org.jfree.chart.annotations.XYImageAnnotation; import org.jfree.chart.axis.NumberAxis; import org.jfree.chart.axis.ValueAxis; import org.jfree.chart.block.BlockBorder; +import org.jfree.chart.labels.StandardXYToolTipGenerator; import org.jfree.chart.plot.DefaultDrawingSupplier; import org.jfree.chart.plot.Marker; import org.jfree.chart.plot.PlotOrientation; @@ -47,6 +49,7 @@ import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer; import org.jfree.chart.title.LegendTitle; import org.jfree.chart.title.TextTitle; import org.jfree.data.Range; +import org.jfree.data.xy.XYDataset; import org.jfree.data.xy.XYSeries; import org.jfree.data.xy.XYSeriesCollection; import org.jfree.text.TextUtilities; @@ -145,6 +148,17 @@ public class SimulationPlot { throw new IllegalArgumentException("Domain axis type not specified."); } + // Custom tooltip generator + StandardXYToolTipGenerator tooltipGenerator = new StandardXYToolTipGenerator() { + final DecimalFormat f = new DecimalFormat("##.00"); + @Override + public String generateToolTip(XYDataset dataset, int series, int item) { + return String.format("Item: %d
Y: %s
X: %s", + item, f.format(dataset.getYValue(series, item)), + f.format(dataset.getXValue(series, item))); + } + }; + // Get plot length (ignore trailing NaN's) int typeCount = filled.getTypeCount(); @@ -262,6 +276,7 @@ public class SimulationPlot { plot.setDataset(axisno, data[i]); ModifiedXYItemRenderer r = new ModifiedXYItemRenderer(branchCount); renderers.add(r); + r.setBaseToolTipGenerator(tooltipGenerator); plot.setRenderer(axisno, r); r.setBaseShapesVisible(initialShowPoints); r.setBaseShapesFilled(true);