diff options
| -rw-r--r-- | ao-tools/altosui/AltosFlightUI.java | 34 | ||||
| -rw-r--r-- | ao-tools/altosui/AltosSiteMap.java | 17 | 
2 files changed, 19 insertions, 32 deletions
diff --git a/ao-tools/altosui/AltosFlightUI.java b/ao-tools/altosui/AltosFlightUI.java index 732f7395..b0cc521d 100644 --- a/ao-tools/altosui/AltosFlightUI.java +++ b/ao-tools/altosui/AltosFlightUI.java @@ -47,23 +47,17 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {  	private AltosFlightStatus flightStatus;  	private AltosInfoTable flightInfo; -	static final int tab_pad = 1; -	static final int tab_ascent = 2; -	static final int tab_descent = 3; -	static final int tab_landed = 4; - -	int cur_tab = 0; -  	boolean exit_on_close = false; -	int which_tab(AltosState state) { +	JComponent cur_tab = null; +	JComponent which_tab(AltosState state) {  		if (state.state < Altos.ao_flight_boost) -			return tab_pad; +			return pad;  		if (state.state <= Altos.ao_flight_coast) -			return tab_ascent; +			return ascent;  		if (state.state <= Altos.ao_flight_main) -			return tab_descent; -		return tab_landed; +			return descent; +		return landed;  	}  	void stop_display() { @@ -90,24 +84,14 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {  	}  	public void show(AltosState state, int crc_errors) { -		int	tab = which_tab(state); +		JComponent tab = which_tab(state);  		pad.show(state, crc_errors);  		ascent.show(state, crc_errors);  		descent.show(state, crc_errors);  		landed.show(state, crc_errors);  		if (tab != cur_tab) { -			switch (tab) { -			case tab_pad: -				pane.setSelectedComponent(pad); -				break; -			case tab_ascent: -				pane.setSelectedComponent(ascent); -				break; -			case tab_descent: -				pane.setSelectedComponent(descent); -				break; -			case tab_landed: -				pane.setSelectedComponent(landed); +			if (cur_tab == pane.getSelectedComponent()) { +				pane.setSelectedComponent(tab);  			}  			cur_tab = tab;  		} diff --git a/ao-tools/altosui/AltosSiteMap.java b/ao-tools/altosui/AltosSiteMap.java index 80970605..d4a4cbf4 100644 --- a/ao-tools/altosui/AltosSiteMap.java +++ b/ao-tools/altosui/AltosSiteMap.java @@ -230,16 +230,19 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {  		// if insufficient gps data, nothing to update  		if (state.gps == null)  			return; -		if (state.pad_lat == 0 && state.pad_lon == 0) +		if (!state.gps.locked && state.gps.nsat < 4)  			return; -		if (!state.gps.locked) { -			if (state.gps.nsat < 4) -				return; -		}  		if (!initialised) { -			initMaps(state.pad_lat, state.pad_lon); -			initialised = true; +			if (state.pad_lat != 0 || state.pad_lon != 0) { +				initMaps(state.pad_lat, state.pad_lon); +				initialised = true; +			} else if (state.gps.lat != 0 || state.gps.lon != 0) { +				initMaps(state.gps.lat, state.gps.lon); +				initialised = true; +			} else { +				return; +			}  		}  		final Point2D.Double pt = pt(state.gps.lat, state.gps.lon);  | 
