altosui,telegps: Do not allow radio calibration to be edited
[fw/altos] / telegps / TeleGPSConfigUI.java
index 97ab34b40b0b1846d1a93f8ef4b9e958869199e1..7a5a4dfdc7a856454758aea8ddde7bdb9fef302a 100644 (file)
 
 package org.altusmetrum.telegps;
 
+import java.text.*;
 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.event.*;
-import org.altusmetrum.altoslib_6.*;
-import org.altusmetrum.altosuilib_6.*;
+import org.altusmetrum.altoslib_9.*;
+import org.altusmetrum.altosuilib_9.*;
 
 public class TeleGPSConfigUI
        extends AltosUIDialog
@@ -53,7 +54,7 @@ public class TeleGPSConfigUI
        JLabel                  version_value;
        JLabel                  serial_value;
        AltosUIFreqList         radio_frequency_value;
-       JTextField              radio_calibration_value;
+       JLabel                  radio_calibration_value;
        JRadioButton            radio_enable_value;
        AltosUIRateList         rate_value;
        JComboBox<String>       aprs_interval_value;
@@ -137,13 +138,6 @@ public class TeleGPSConfigUI
                return product != null && product.startsWith("TeleGPS");
        }
 
-       void set_radio_calibration_tool_tip() {
-               if (radio_calibration_value.isEnabled())
-                       radio_calibration_value.setToolTipText("Tune radio output to match desired frequency");
-               else
-                       radio_calibration_value.setToolTipText("Cannot tune radio while connected over packet mode");
-       }
-
        void set_radio_enable_tool_tip() {
                if (radio_enable_value.isEnabled())
                        radio_enable_value.setToolTipText("Enable/Disable telemetry and RDF transmissions");
@@ -315,10 +309,8 @@ public class TeleGPSConfigUI
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = ir;
                c.ipady = 5;
-               radio_calibration_value = new JTextField(String.format("%d", 1186611));
-               radio_calibration_value.getDocument().addDocumentListener(this);
+               radio_calibration_value = new JLabel(String.format("%d", 1186611));
                pane.add(radio_calibration_value, c);
-               set_radio_calibration_tool_tip();
                row++;
 
                /* Radio Enable */
@@ -686,7 +678,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();
@@ -755,10 +751,6 @@ public class TeleGPSConfigUI
                }
        }
 
-       public int radio_calibration() throws AltosConfigDataException {
-               return parse_int("radio calibration", radio_calibration_value.getText(), false);
-       }
-
        public void set_radio_enable(int new_radio_enable) {
                if (new_radio_enable >= 0) {
                        radio_enable_value.setSelected(new_radio_enable > 0);
@@ -886,7 +878,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) {