From 31fa139578a86821844e3e2efb1a84bdea4f1370 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 2 Jan 2013 12:24:44 -0800 Subject: micropeak: Add view of raw data in GUI Looks just like the export file Signed-off-by: Keith Packard --- micropeak/MicroRaw.java | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 micropeak/MicroRaw.java (limited to 'micropeak/MicroRaw.java') diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java new file mode 100644 index 00000000..6b006f32 --- /dev/null +++ b/micropeak/MicroRaw.java @@ -0,0 +1,41 @@ +/* + * Copyright © 2013 Keith Packard + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package org.altusmetrum.micropeak; + +import java.awt.*; +import javax.swing.*; +import org.altusmetrum.AltosLib.*; +import org.altusmetrum.altosuilib.*; + +public class MicroRaw extends TextArea { + + public void setData(MicroData data) { + setRows(data.pressures.length); + setText(" Time, Press, Height, Speed, Accel\n"); + for (MicroDataPoint point : data.points()) { + append(String.format( + "%6.3f,%6.0f,%7.1f,%7.2f,%7.2f\n", + point.time, point.pressure, point.height, point.speed, point.accel)); + } + } + + public MicroRaw() { + super(1, 30); + setFont(AltosUILib.table_value_font); + } +} -- cgit v1.2.3 From 9e4c5b0a6ed3594cff6ab71398c172daa7c67177 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 2 Jan 2013 16:19:33 -0800 Subject: micropeak: Use JTextArea instead of TextArea Looks nicer and doesn't appear to have the same weird clipping problem Signed-off-by: Keith Packard --- micropeak/MicroGraph.java | 23 ++++++++++++----------- micropeak/MicroPeak.java | 3 ++- micropeak/MicroRaw.java | 2 +- 3 files changed, 15 insertions(+), 13 deletions(-) (limited to 'micropeak/MicroRaw.java') diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java index 8330a67b..d2e86f9f 100644 --- a/micropeak/MicroGraph.java +++ b/micropeak/MicroGraph.java @@ -106,10 +106,12 @@ public class MicroGraph implements AltosUnitsListener { heightSeries.clear(); speedSeries.clear(); accelSeries.clear(); - for (MicroDataPoint point : data.points()) { - heightSeries.add(point.time, AltosConvert.height.value(point.height)); - speedSeries.add(point.time, AltosConvert.speed.value(point.speed)); - accelSeries.add(point.time, AltosConvert.accel.value(point.accel)); + if (data != null) { + for (MicroDataPoint point : data.points()) { + heightSeries.add(point.time, AltosConvert.height.value(point.height)); + speedSeries.add(point.time, AltosConvert.speed.value(point.speed)); + accelSeries.add(point.time, AltosConvert.accel.value(point.accel)); + } } } @@ -119,17 +121,16 @@ public class MicroGraph implements AltosUnitsListener { public void setData (MicroData data) { this.data = data; - chart.setTitle(data.name); + if (data != null) + setName(data.name); resetData(); } public void units_changed(boolean imperial_units) { - if (data != null) { - heightSeries.set_units(AltosConvert.height.show_units()); - speedSeries.set_units(AltosConvert.speed.show_units()); - accelSeries.set_units(AltosConvert.accel.show_units()); - resetData(); - } + heightSeries.set_units(AltosConvert.height.show_units()); + speedSeries.set_units(AltosConvert.speed.show_units()); + accelSeries.set_units(AltosConvert.accel.show_units()); + resetData(); } public MicroGraph() { diff --git a/micropeak/MicroPeak.java b/micropeak/MicroPeak.java index 290511e7..d4252fa9 100644 --- a/micropeak/MicroPeak.java +++ b/micropeak/MicroPeak.java @@ -214,7 +214,8 @@ public class MicroPeak extends MicroFrame implements ActionListener, ItemListene raw = new MicroRaw(); pane.add(graph.panel, "Graph"); pane.add(stats, "Statistics"); - pane.add(raw, "Raw Data"); + JScrollPane scroll = new JScrollPane(raw); + pane.add(scroll, "Raw Data"); pane.doLayout(); pane.validate(); container.add(pane); diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index 6b006f32..f5bea76f 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -22,7 +22,7 @@ import javax.swing.*; import org.altusmetrum.AltosLib.*; import org.altusmetrum.altosuilib.*; -public class MicroRaw extends TextArea { +public class MicroRaw extends JTextArea { public void setData(MicroData data) { setRows(data.pressures.length); -- cgit v1.2.3 From ca284d8bef2f4bd360eaec58048ba9abdafc55bd Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 3 Jan 2013 18:14:40 -0800 Subject: micropeak: Use data.export for Raw display. Change to MPH data.export already knows how to format stuff, so use that to construct the raw data presentation for the GUI too. Signed-off-by: Keith Packard --- altoslib/AltosSpeed.java | 6 +++--- micropeak/MicroData.java | 6 +++--- micropeak/MicroRaw.java | 14 ++++++++------ 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'micropeak/MicroRaw.java') diff --git a/altoslib/AltosSpeed.java b/altoslib/AltosSpeed.java index af63ed17..4e2daf5a 100644 --- a/altoslib/AltosSpeed.java +++ b/altoslib/AltosSpeed.java @@ -21,19 +21,19 @@ public class AltosSpeed extends AltosUnits { public double value(double v) { if (AltosConvert.imperial_units) - return AltosConvert.meters_to_feet(v); + return AltosConvert.meters_to_mph(v); return v; } public String show_units() { if (AltosConvert.imperial_units) - return "ft/s"; + return "mph"; return "m/s"; } public String say_units() { if (AltosConvert.imperial_units) - return "feet per second"; + return "miles per hour"; return "meters per second"; } diff --git a/micropeak/MicroData.java b/micropeak/MicroData.java index d3c8c43e..f1204e11 100644 --- a/micropeak/MicroData.java +++ b/micropeak/MicroData.java @@ -265,15 +265,15 @@ public class MicroData { public void export (Writer f) throws IOException { PrintWriter pw = new PrintWriter(f); - pw.printf(" Time, Press(Pa), Height(m), Height(f), Speed(m/s), Speed(ft/s), Speed(mach), Accel(m/s²), Accel(ft/s²), Accel(g)\n"); + pw.printf(" Time, Press(Pa), Height(m), Height(f), Speed(m/s), Speed(mph), Speed(mach), Accel(m/s²), Accel(ft/s²), Accel(g)\n"); for (MicroDataPoint point : points()) { - pw.printf("%6.3f,%10.0f,%10.1f,%10.1f,%11.2f,%12.2f,%12.4f,%12.2f,%13.2f,%10.4f\n", + pw.printf("%6.3f,%10.0f,%10.1f,%10.1f,%11.2f,%11.2f,%12.4f,%12.2f,%13.2f,%10.4f\n", point.time, point.pressure, point.height, AltosConvert.meters_to_feet(point.height), point.speed, - AltosConvert.meters_to_feet(point.speed), + AltosConvert.meters_to_mph(point.speed), AltosConvert.meters_to_mach(point.speed), point.accel, AltosConvert.meters_to_feet(point.accel), diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index f5bea76f..dd480bfe 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -18,6 +18,7 @@ package org.altusmetrum.micropeak; import java.awt.*; +import java.io.*; import javax.swing.*; import org.altusmetrum.AltosLib.*; import org.altusmetrum.altosuilib.*; @@ -25,12 +26,13 @@ import org.altusmetrum.altosuilib.*; public class MicroRaw extends JTextArea { public void setData(MicroData data) { - setRows(data.pressures.length); - setText(" Time, Press, Height, Speed, Accel\n"); - for (MicroDataPoint point : data.points()) { - append(String.format( - "%6.3f,%6.0f,%7.1f,%7.2f,%7.2f\n", - point.time, point.pressure, point.height, point.speed, point.accel)); + StringWriter sw = new StringWriter(); + try { + data.export(sw); + setRows(data.pressures.length + 1); + setText(sw.toString()); + } catch (IOException ie) { + setText(String.format("Error writing data: %s", ie.getMessage())); } } -- cgit v1.2.3 From e7e71e2042f2bfc24adcc57cecfe26368eb03e8a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sat, 5 Jan 2013 10:36:50 -0800 Subject: micropeak: Move raw view caret to top. Make raw text uneditable Signed-off-by: Keith Packard --- micropeak/MicroRaw.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'micropeak/MicroRaw.java') diff --git a/micropeak/MicroRaw.java b/micropeak/MicroRaw.java index dd480bfe..8546cffb 100644 --- a/micropeak/MicroRaw.java +++ b/micropeak/MicroRaw.java @@ -34,10 +34,12 @@ public class MicroRaw extends JTextArea { } catch (IOException ie) { setText(String.format("Error writing data: %s", ie.getMessage())); } + setCaretPosition(0); } public MicroRaw() { super(1, 30); setFont(AltosUILib.table_value_font); + setEditable(false); } } -- cgit v1.2.3