summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--altosuilib/AltosShapeListener.java19
-rw-r--r--altosuilib/AltosUIEnable.java37
-rw-r--r--altosuilib/AltosUIGraph.java9
-rw-r--r--altosuilib/AltosUITimeSeries.java6
-rw-r--r--altosuilib/Makefile.am1
5 files changed, 66 insertions, 6 deletions
diff --git a/altosuilib/AltosShapeListener.java b/altosuilib/AltosShapeListener.java
new file mode 100644
index 00000000..082b6135
--- /dev/null
+++ b/altosuilib/AltosShapeListener.java
@@ -0,0 +1,19 @@
+/*
+ * Copyright © 2017 Keith Packard <keithp@keithp.com>
+ *
+ * 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, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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.
+ */
+
+package org.altusmetrum.altosuilib_12;
+
+public interface AltosShapeListener {
+ void set_shapes_visible(boolean visible);
+}
diff --git a/altosuilib/AltosUIEnable.java b/altosuilib/AltosUIEnable.java
index 4bd07c52..ed1e6c53 100644
--- a/altosuilib/AltosUIEnable.java
+++ b/altosuilib/AltosUIEnable.java
@@ -43,11 +43,13 @@ public class AltosUIEnable extends Container implements ChangeListener {
int y;
int x;
JCheckBox imperial_units;
+ JCheckBox show_shapes;
JLabel speed_filter_label;
JSlider speed_filter;
JLabel accel_filter_label;
JSlider accel_filter;
AltosFilterListener filter_listener;
+ AltosShapeListener shape_listener;
static final int max_rows = 14;
@@ -111,6 +113,16 @@ public class AltosUIEnable extends Container implements ChangeListener {
}
}
+ public void set_shapes_visible(boolean visible) {
+ System.out.printf("set shapes %b\n", visible);
+ if (shape_listener != null)
+ shape_listener.set_shapes_visible(visible);
+ }
+
+ public void register_shape_listener(AltosShapeListener shape_listener) {
+ this.shape_listener = shape_listener;
+ }
+
public void add_units() {
/* Imperial units setting */
@@ -131,12 +143,29 @@ public class AltosUIEnable extends Container implements ChangeListener {
c.insets = il;
add(imperial_units, c);
- speed_filter_label = new JLabel("Speed Filter(ms)");
+ show_shapes = new JCheckBox("Show Markers", false);
+ show_shapes.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ JCheckBox item = (JCheckBox) e.getSource();
+ boolean enabled = item.isSelected();
+ set_shapes_visible(enabled);
+ }
+ });
+ show_shapes.setToolTipText("Show marker Use Imperial units instead of metric");
c = new GridBagConstraints();
c.gridx = 0; c.gridy = 1001;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
c.insets = il;
+ add(show_shapes, c);
+
+
+ speed_filter_label = new JLabel("Speed Filter(ms)");
+ c = new GridBagConstraints();
+ c.gridx = 0; c.gridy = 1002;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.LINE_START;
+ c.insets = il;
add(speed_filter_label, c);
speed_filter = new JSlider(JSlider.HORIZONTAL, 0, 10000, (int) (filter_listener.speed_filter() * 1000.0));
@@ -154,7 +183,7 @@ public class AltosUIEnable extends Container implements ChangeListener {
speed_filter.addChangeListener(this);
c = new GridBagConstraints();
- c.gridx = 1; c.gridy = 1001;
+ c.gridx = 1; c.gridy = 1002;
c.gridwidth = 1000; c.gridheight = 1;
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.LINE_START;
@@ -163,7 +192,7 @@ public class AltosUIEnable extends Container implements ChangeListener {
accel_filter_label = new JLabel("Acceleration Filter(ms)");
c = new GridBagConstraints();
- c.gridx = 0; c.gridy = 1002;
+ c.gridx = 0; c.gridy = 1003;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.LINE_START;
c.insets = il;
@@ -180,7 +209,7 @@ public class AltosUIEnable extends Container implements ChangeListener {
accel_filter.addChangeListener(this);
c = new GridBagConstraints();
- c.gridx = 1; c.gridy = 1002;
+ c.gridx = 1; c.gridy = 1003;
c.gridwidth = 1000; c.gridheight = 1;
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.LINE_START;
diff --git a/altosuilib/AltosUIGraph.java b/altosuilib/AltosUIGraph.java
index efc3d493..6328d40a 100644
--- a/altosuilib/AltosUIGraph.java
+++ b/altosuilib/AltosUIGraph.java
@@ -36,7 +36,7 @@ import org.jfree.chart.labels.*;
import org.jfree.data.xy.*;
import org.jfree.data.*;
-public class AltosUIGraph implements AltosUnitsListener {
+public class AltosUIGraph implements AltosUnitsListener, AltosShapeListener {
XYPlot plot;
JFreeChart chart;
@@ -99,6 +99,11 @@ public class AltosUIGraph implements AltosUnitsListener {
units_changed(false);
}
+ public void set_shapes_visible(boolean visible) {
+ for (AltosUITimeSeries s : series)
+ s.set_shapes_visible(visible);
+ }
+
public void setName (String name) {
chart.setTitle(name);
}
@@ -127,6 +132,8 @@ public class AltosUIGraph implements AltosUnitsListener {
this.series = null;
this.axis_index = 0;
+ enable.register_shape_listener(this);
+
axes_added = new Hashtable<Integer,Boolean>();
xAxis = new NumberAxis("Time (s)");
diff --git a/altosuilib/AltosUITimeSeries.java b/altosuilib/AltosUITimeSeries.java
index 71166064..b98c8376 100644
--- a/altosuilib/AltosUITimeSeries.java
+++ b/altosuilib/AltosUITimeSeries.java
@@ -66,7 +66,7 @@ public class AltosUITimeSeries extends AltosTimeSeries implements AltosUIGrapher
AltosUIAxis axis;
boolean marker;
boolean marker_top;
- XYItemRenderer renderer;
+ XYLineAndShapeRenderer renderer;
XYPlot plot;
AltosXYSeries xy_series;
ArrayList<ValueMarker> markers;
@@ -188,6 +188,10 @@ public class AltosUITimeSeries extends AltosTimeSeries implements AltosUIGrapher
this.marker_top = marker_top;
}
+ public void set_shapes_visible(boolean shapes_visible) {
+ renderer.setSeriesShapesVisible(0, shapes_visible);
+ }
+
public AltosUITimeSeries(String label, AltosUnits units) {
super(label, units);
}
diff --git a/altosuilib/Makefile.am b/altosuilib/Makefile.am
index ce86d21e..0f606225 100644
--- a/altosuilib/Makefile.am
+++ b/altosuilib/Makefile.am
@@ -31,6 +31,7 @@ altosuilib_JAVA = \
AltosUIFlightSeries.java \
AltosUIGraph.java \
AltosGraph.java \
+ AltosShapeListener.java \
AltosUSBDevice.java \
AltosVoice.java \
AltosDisplayThread.java \