diff options
| -rw-r--r-- | altosuilib/AltosShapeListener.java | 19 | ||||
| -rw-r--r-- | altosuilib/AltosUIEnable.java | 37 | ||||
| -rw-r--r-- | altosuilib/AltosUIGraph.java | 9 | ||||
| -rw-r--r-- | altosuilib/AltosUITimeSeries.java | 6 | ||||
| -rw-r--r-- | altosuilib/Makefile.am | 1 | 
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 \ | 
