diff options
| author | Bdale Garbee <bdale@gag.com> | 2017-08-12 00:59:03 -0400 | 
|---|---|---|
| committer | Bdale Garbee <bdale@gag.com> | 2017-08-12 00:59:03 -0400 | 
| commit | 59c6167b9f1e9de30455af1632e9a0b65d64ad63 (patch) | |
| tree | d27e4b3df53300081aa6ac0a30820c58a1c968ef /altosui/AltosGraphUI.java | |
| parent | 41eedf88751910ea9c0a299444fbac769edb8427 (diff) | |
| parent | fccfa54bb3b746cecfcdc1fd497cf736bbfe3ef3 (diff) | |
Merge branch 'branch-1.8' into debian
Diffstat (limited to 'altosui/AltosGraphUI.java')
| -rw-r--r-- | altosui/AltosGraphUI.java | 59 | 
1 files changed, 39 insertions, 20 deletions
diff --git a/altosui/AltosGraphUI.java b/altosui/AltosGraphUI.java index 4ca2b77c..f6c906c6 100644 --- a/altosui/AltosGraphUI.java +++ b/altosui/AltosGraphUI.java @@ -24,8 +24,8 @@ import java.util.ArrayList;  import java.awt.*;  import java.awt.event.*;  import javax.swing.*; -import org.altusmetrum.altoslib_11.*; -import org.altusmetrum.altosuilib_11.*; +import org.altusmetrum.altoslib_12.*; +import org.altusmetrum.altosuilib_12.*;  import org.jfree.chart.ChartPanel;  import org.jfree.chart.JFreeChart; @@ -37,22 +37,35 @@ public class AltosGraphUI extends AltosUIFrame implements AltosFontListener, Alt  	AltosGraph		graph;  	AltosUIEnable		enable;  	AltosUIMap		map; -	AltosState		state; -	AltosGraphDataSet	graphDataSet;  	AltosFlightStats	stats;  	AltosFlightStatsTable	statsTable; +	AltosGPS		gps;  	boolean			has_gps; -	void fill_map(AltosStateIterable states) { -		boolean		any_gps = false; -		for (AltosState state : states) { -			if (state.gps != null && state.gps.locked && state.gps.nsat >= 4) { -				if (map == null) -					map = new AltosUIMap(); -				map.show(state, null); -				has_gps = true; +	void fill_map(AltosFlightSeries flight_series) { +		boolean			any_gps = false; +		AltosGPSTimeValue	gtv_last = null; + +		if (flight_series.gps_series != null) { +			for (AltosGPSTimeValue gtv : flight_series.gps_series) { +				gtv_last = gtv; +				AltosGPS gps = gtv.gps; +				if (gps != null && +				    gps.locked && +				    gps.nsat >= 4) { +					if (map == null) +						map = new AltosUIMap(); +					map.show(gps, (int) flight_series.value_before(AltosFlightSeries.state_name, gtv.time)); +					this.gps = gps; +					has_gps = true; +				}  			}  		} +		if (gtv_last != null) { +			int state = (int) flight_series.value_after(AltosFlightSeries.state_name, gtv_last.time); +			if (state == AltosLib.ao_flight_landed) +				map.show(gtv_last.gps, state); +		}  	}  	public void font_size_changed(int font_size) { @@ -69,18 +82,24 @@ public class AltosGraphUI extends AltosUIFrame implements AltosFontListener, Alt  			enable.units_changed(imperial_units);  	} -	AltosGraphUI(AltosStateIterable states, File file) throws InterruptedException, IOException { +	AltosGraphUI(AltosRecordSet set, File file) throws InterruptedException, IOException {  		super(file.getName()); -		state = null; +		AltosCalData	cal_data = set.cal_data(); +  		pane = new JTabbedPane();  		enable = new AltosUIEnable(); -		stats = new AltosFlightStats(states); -		graphDataSet = new AltosGraphDataSet(states); +		AltosUIFlightSeries flight_series = new AltosUIFlightSeries(cal_data); + +		set.capture_series(flight_series); + +		flight_series.finish(); + +		stats = new AltosFlightStats(flight_series); -		graph = new AltosGraph(enable, stats, graphDataSet); +		graph = new AltosGraph(enable, stats, flight_series);  		statsTable = new AltosFlightStatsTable(stats); @@ -89,7 +108,7 @@ public class AltosGraphUI extends AltosUIFrame implements AltosFontListener, Alt  		pane.add("Flight Statistics", statsTable);  		has_gps = false; -		fill_map(states); +		fill_map(flight_series);  		if (has_gps)  			pane.add("Map", map); @@ -108,7 +127,7 @@ public class AltosGraphUI extends AltosUIFrame implements AltosFontListener, Alt  		pack();  		setVisible(true); -		if (state != null && has_gps) -			map.centre(state); +		if (gps != null) +			map.centre(gps);  	}  }  | 
