diff options
| author | Keith Packard <keithp@keithp.com> | 2015-05-19 10:09:22 -0700 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2015-05-19 10:09:22 -0700 | 
| commit | 3e5e9333420ede74d998556c1bbd5888e8ff75ae (patch) | |
| tree | dbd6e450c8352e7a1005a28f5016d95769b962d0 /telegps/TeleGPSConfigUI.java | |
| parent | 3fbf0a29a1b8a67b90ef965ee3e2e972c0ec33a1 (diff) | |
altoslib: Expose locale and non-locale floating point parsing functions
UI bits use locale-specific floating point formats, so parsing those
needs to use the locale. Network-based data, like .kml bits need to
use non-locale-specific parsing code, so now we've got both APIs
available, and each used as appropriate.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'telegps/TeleGPSConfigUI.java')
| -rw-r--r-- | telegps/TeleGPSConfigUI.java | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/telegps/TeleGPSConfigUI.java b/telegps/TeleGPSConfigUI.java index 97ab34b4..4e657586 100644 --- a/telegps/TeleGPSConfigUI.java +++ b/telegps/TeleGPSConfigUI.java @@ -17,6 +17,7 @@  package org.altusmetrum.telegps; +import java.text.*;  import java.awt.*;  import java.awt.event.*;  import javax.swing.*; @@ -686,7 +687,11 @@ public class TeleGPSConfigUI  			String motion = tracker_motion_value.getSelectedItem().toString();  			tracker_motion_label.setText(get_tracker_motion_label());  			set_tracker_motion_values(); -			set_tracker_motion((int) (AltosConvert.height.parse(motion, !imperial_units) + 0.5)); +			try { +				int m = (int) (AltosConvert.height.parse_locale(motion, !imperial_units) + 0.5); +				set_tracker_motion(m); +			} catch (ParseException pe) { +			}  		}  		if (!was_dirty)  			set_clean(); @@ -886,7 +891,12 @@ public class TeleGPSConfigUI  	}  	public int tracker_motion() throws AltosConfigDataException { -		return (int) AltosConvert.height.parse(tracker_motion_value.getSelectedItem().toString()); +		String str = tracker_motion_value.getSelectedItem().toString(); +		try { +			return (int) (AltosConvert.height.parse_locale(str) + 0.5); +		} catch (ParseException pe) { +			throw new AltosConfigDataException("invalid tracker motion %s", str); +		}  	}  	public void set_tracker_interval(int tracker_interval) {  | 
