From: Keith Packard Date: Wed, 19 Dec 2012 06:59:36 +0000 (-0800) Subject: altosui: Clean up graph a bit, remove shapes, improve tooltips X-Git-Tag: 1.1.9.3~10^2~3 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=244415c515f21328cffe88d1369949a4af49a177 altosui: Clean up graph a bit, remove shapes, improve tooltips Sometimes graphs would get shapes at each datapoint which was annoyingly cluttered. And, the tooltips used a format that was difficult to interpret. Signed-off-by: Keith Packard --- diff --git a/altosui/AltosGraphTime.java b/altosui/AltosGraphTime.java index 75e536c5..62d516b2 100644 --- a/altosui/AltosGraphTime.java +++ b/altosui/AltosGraphTime.java @@ -68,11 +68,13 @@ class AltosGraphTime extends AltosGraph { abstract static class TimeSeries implements Element { protected XYSeries series; private String axisName; + private String axisUnits; private Color color; - public TimeSeries(String axisName, String label, Color color) { + public TimeSeries(String axisName, String axisUnits, String label, Color color) { this.series = new XYSeries(label); - this.axisName = axisName; + this.axisName = String.format("%s (%s)", axisName, axisUnits); + this.axisUnits = axisUnits; this.color = color; } @@ -85,8 +87,14 @@ class AltosGraphTime extends AltosGraph { XYSeriesCollection dataset = new XYSeriesCollection(); dataset.addSeries(this.series); - XYItemRenderer renderer = new StandardXYItemRenderer(); + XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false); renderer.setSeriesPaint(0, color); + StandardXYToolTipGenerator tool_tip; + + tool_tip = new StandardXYToolTipGenerator(String.format("{1}s: {2}%s ({0})", axisUnits), + new java.text.DecimalFormat("0.00"), + new java.text.DecimalFormat("0.00")); + renderer.setBaseToolTipGenerator(tool_tip); int dataNum = g.getDataNum(this); int axisNum = g.getAxisNum(this); @@ -192,10 +200,8 @@ class AltosGraphTime extends AltosGraph { public JFreeChart createChart() { NumberAxis xAxis = new NumberAxis("Time (s)"); xAxis.setAutoRangeIncludesZero(false); - XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false); XYPlot plot = new XYPlot(); plot.setDomainAxis(xAxis); - plot.setRenderer(renderer); plot.setOrientation(PlotOrientation.VERTICAL); if (serial != null && flight != null) { @@ -205,7 +211,6 @@ class AltosGraphTime extends AltosGraph { title = callsign + " - " + title; } - renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator()); JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true); ChartUtilities.applyCurrentTheme(chart); diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index f59f70ba..b7c2e92e 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -29,7 +29,7 @@ public class AltosGraphUI extends AltosFrame static private class OverallGraphs { AltosGraphTime.Element height = - new AltosGraphTime.TimeSeries(String.format("Height (%s)", AltosConvert.height.show_units()), "Height (AGL)", red) { + new AltosGraphTime.TimeSeries("Height", AltosConvert.height.show_units(), "Height (AGL)", red) { public void gotTimeData(double time, AltosDataPoint d) { double height = d.height(); if (height != AltosRecord.MISSING) @@ -38,7 +38,7 @@ public class AltosGraphUI extends AltosFrame }; AltosGraphTime.Element speed = - new AltosGraphTime.TimeSeries(String.format("Speed (%s)", AltosConvert.speed.show_units()), "Vertical Speed", green) { + new AltosGraphTime.TimeSeries("Speed", AltosConvert.speed.show_units(), "Vertical Speed", green) { public void gotTimeData(double time, AltosDataPoint d) { double speed = d.speed(); if (speed != AltosRecord.MISSING) @@ -47,8 +47,8 @@ public class AltosGraphUI extends AltosFrame }; AltosGraphTime.Element acceleration = - new AltosGraphTime.TimeSeries(String.format("Acceleration (%s)", - AltosConvert.accel.show_units()), + new AltosGraphTime.TimeSeries("Acceleration", + AltosConvert.accel.show_units(), "Axial Acceleration", blue) { public void gotTimeData(double time, AltosDataPoint d) { @@ -59,8 +59,8 @@ public class AltosGraphUI extends AltosFrame }; AltosGraphTime.Element temperature = - new AltosGraphTime.TimeSeries("Temperature (\u00B0C)", - "Board temperature", red) + new AltosGraphTime.TimeSeries("Temperature", "\u00B0C", + "Board temperature", red) { public void gotTimeData(double time, AltosDataPoint d) { double temp = d.temperature(); @@ -70,7 +70,7 @@ public class AltosGraphUI extends AltosFrame }; AltosGraphTime.Element drogue_voltage = - new AltosGraphTime.TimeSeries("Voltage (V)", "Drogue Continuity", yellow) + new AltosGraphTime.TimeSeries("Voltage", "(V)", "Drogue Continuity", yellow) { public void gotTimeData(double time, AltosDataPoint d) { double v = d.drogue_voltage(); @@ -80,7 +80,7 @@ public class AltosGraphUI extends AltosFrame }; AltosGraphTime.Element main_voltage = - new AltosGraphTime.TimeSeries("Voltage (V)", "Main Continuity", magenta) + new AltosGraphTime.TimeSeries("Voltage", "(V)", "Main Continuity", magenta) { public void gotTimeData(double time, AltosDataPoint d) { double v = d.main_voltage();