diff options
Diffstat (limited to 'micropeak/MicroGraph.java')
| -rw-r--r-- | micropeak/MicroGraph.java | 142 | 
1 files changed, 7 insertions, 135 deletions
| diff --git a/micropeak/MicroGraph.java b/micropeak/MicroGraph.java index e8a6ea16..0071a160 100644 --- a/micropeak/MicroGraph.java +++ b/micropeak/MicroGraph.java @@ -23,6 +23,7 @@ import java.util.ArrayList;  import java.awt.*;  import javax.swing.*;  import org.altusmetrum.altoslib_1.*; +import org.altusmetrum.altosuilib_1.*;  import org.jfree.ui.*;  import org.jfree.chart.*; @@ -34,146 +35,17 @@ import org.jfree.chart.labels.*;  import org.jfree.data.xy.*;  import org.jfree.data.*; -class MicroSeries extends XYSeries { -	NumberAxis	axis; -	String		label; -	String		units; -	Color		color; -	XYItemRenderer	renderer; -	 -	void set_units(String units) { -		this.units = units; - -		axis.setLabel(String.format("%s (%s)", label, units)); - -		StandardXYToolTipGenerator	ttg; - -		ttg = new StandardXYToolTipGenerator(String.format("{1}s: {2}%s ({0})", units), -						     new java.text.DecimalFormat("0.00"), -						     new java.text.DecimalFormat("0.00")); -		renderer.setBaseToolTipGenerator(ttg); -	} - -	void set_enable(boolean enable) { -		renderer.setSeriesVisible(0, enable); -		axis.setVisible(enable); -	} - -	public MicroSeries (String label, String units, Color color) { -		super(label); -		this.label = label; -		this.units = units; -		this.color = color; - -		axis = new NumberAxis(); -		axis.setLabelPaint(color); -		axis.setTickLabelPaint(color); - -		renderer = new XYLineAndShapeRenderer(true, false); -		renderer.setSeriesPaint(0, color); -		set_units(units); -	} -} - -public class MicroGraph implements AltosUnitsListener { - -	XYPlot		plot; -	JFreeChart	chart; -	ChartPanel	panel; -	NumberAxis	xAxis; -	MicroSeries	heightSeries; -        MicroSeries	speedSeries; -	MicroSeries	accelSeries; +public class MicroGraph extends AltosUIGraph {  	static final private Color height_color = new Color(194,31,31);  	static final private Color speed_color = new Color(31,194,31);  	static final private Color accel_color = new Color(31,31,194); -	static final private Color gridline_color = new Color(0, 0, 0); -	static final private Color border_color = new Color(255, 255, 255); -	static final private Color background_color = new Color(255, 255, 255); - -	MicroData	data; - -	public JPanel panel() { -		return panel; -	} - -	private MicroSeries addSeries(int index, String label, String units, Color color) { -		MicroSeries		series = new MicroSeries(label, units, color); -		XYSeriesCollection	dataset = new XYSeriesCollection(series); - -		series.renderer.setPlot(plot); -		plot.setRangeAxis(index, series.axis); -		plot.setDataset(index, dataset); -		plot.setRenderer(index, series.renderer); -		plot.mapDatasetToRangeAxis(index, index); -		return series; -	} -	 -	public void resetData() { -		heightSeries.clear(); -		speedSeries.clear(); -		accelSeries.clear(); -		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)); -			} -		} -//		accelSeries.set_enable(false); -	} - -	public void setName (String name) { -		chart.setTitle(name); -	} - -	public void setData (MicroData data) { -		this.data = data; -		if (data != null) -			setName(data.name); -		resetData(); -	} - -	public void units_changed(boolean imperial_units) { -		heightSeries.set_units(AltosConvert.height.show_units()); -		speedSeries.set_units(AltosConvert.speed.show_units()); -		accelSeries.set_units(AltosConvert.accel.show_units()); -		resetData(); -	} - -	public MicroGraph() { - -		xAxis = new NumberAxis("Time (s)"); -		 -		xAxis.setAutoRangeIncludesZero(true); - -		plot = new XYPlot(); -		plot.setDomainAxis(xAxis); -		plot.setOrientation(PlotOrientation.VERTICAL); -		plot.setDomainPannable(true); -		plot.setRangePannable(true); - -		chart = new JFreeChart("Flight", JFreeChart.DEFAULT_TITLE_FONT, -				       plot, true); - -		ChartUtilities.applyCurrentTheme(chart); - -		heightSeries = addSeries(0, "Height", AltosConvert.height.show_units(), height_color); -		speedSeries = addSeries(1, "Speed", AltosConvert.speed.show_units(), speed_color); -		accelSeries = addSeries(2, "Acceleration", AltosConvert.accel.show_units(), accel_color); - -		plot.setDomainGridlinePaint(gridline_color); -		plot.setRangeGridlinePaint(gridline_color); -		plot.setBackgroundPaint(background_color); -		plot.setBackgroundAlpha((float) 1); -		chart.setBackgroundPaint(background_color); -		chart.setBorderPaint(border_color); -		panel = new ChartPanel(chart); -		panel.setMouseWheelEnabled(true); -		panel.setPreferredSize(new java.awt.Dimension(800, 500)); +	public MicroGraph(AltosUIEnable enable) { +		super(enable); -		AltosPreferences.register_units_listener(this); +		addSeries(0, "Height", MicroDataPoint.data_height, AltosConvert.height, height_color); +		addSeries(1, "Speed", MicroDataPoint.data_speed, AltosConvert.speed, speed_color); +		addSeries(2, "Acceleration", MicroDataPoint.data_accel, AltosConvert.accel, accel_color);  	}  }
\ No newline at end of file | 
