--- /dev/null
+/*
+ * 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);
+}
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;
}
}
+ 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 */
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));
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;
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;
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;
import org.jfree.data.xy.*;
import org.jfree.data.*;
-public class AltosUIGraph implements AltosUnitsListener {
+public class AltosUIGraph implements AltosUnitsListener, AltosShapeListener {
XYPlot plot;
JFreeChart chart;
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);
}
this.series = null;
this.axis_index = 0;
+ enable.register_shape_listener(this);
+
axes_added = new Hashtable<Integer,Boolean>();
xAxis = new NumberAxis("Time (s)");