altosui: Hide non-applicable altimeter config values
authorKeith Packard <keithp@keithp.com>
Wed, 18 Dec 2013 10:03:15 +0000 (02:03 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 18 Dec 2013 10:03:15 +0000 (02:03 -0800)
This makes configuring EasyMini a lot easier...

Signed-off-by: Keith Packard <keithp@keithp.com>
altoslib/AltosConfigData.java
altosui/AltosConfigUI.java
altosui/AltosFreqList.java

index d92f42c3aeb9b43006784f9375303e4d7f3fe2e3..1c3085bd7efc2f39ee41bddabdb806fe82960bfd 100644 (file)
@@ -336,6 +336,10 @@ public class AltosConfigData implements Iterable<String> {
        public double frequency() {
                int     channel = radio_channel;
                int     setting = radio_setting;
        public double frequency() {
                int     channel = radio_channel;
                int     setting = radio_setting;
+
+               if (radio_frequency < 0 && channel < 0 && setting < 0)
+                       return -1;
+
                if (channel < 0)
                        channel = 0;
                if (setting < 0)
                if (channel < 0)
                        channel = 0;
                if (setting < 0)
index e07984b90edce148e6021da22d720e1b5a5bd670..a7d95903ae25d828dc14c214419ed492fdcf3e38 100644 (file)
@@ -786,28 +786,7 @@ public class AltosConfigUI
        }
 
        public void set_radio_frequency(double new_radio_frequency) {
        }
 
        public void set_radio_frequency(double new_radio_frequency) {
-               int i;
-               for (i = 0; i < radio_frequency_value.getItemCount(); i++) {
-                       AltosFrequency  f = (AltosFrequency) radio_frequency_value.getItemAt(i);
-                       
-                       if (f.close(new_radio_frequency)) {
-                               radio_frequency_value.setSelectedIndex(i);
-                               return;
-                       }
-               }
-               for (i = 0; i < radio_frequency_value.getItemCount(); i++) {
-                       AltosFrequency  f = (AltosFrequency) radio_frequency_value.getItemAt(i);
-                       
-                       if (new_radio_frequency < f.frequency)
-                               break;
-               }
-               String  description = String.format("%s serial %s",
-                                                   product_value.getText(),
-                                                   serial_value.getText());
-               AltosFrequency  new_frequency = new AltosFrequency(new_radio_frequency, description);
-               AltosUIPreferences.add_common_frequency(new_frequency);
-               radio_frequency_value.insertItemAt(new_frequency, i);
-               radio_frequency_value.setSelectedIndex(i);
+               radio_frequency_value.set_frequency(new_radio_frequency);
        }
 
        public double radio_frequency() {
        }
 
        public double radio_frequency() {
@@ -815,7 +794,11 @@ public class AltosConfigUI
        }
 
        public void set_radio_calibration(int new_radio_calibration) {
        }
 
        public void set_radio_calibration(int new_radio_calibration) {
-               radio_calibration_value.setText(String.format("%d", new_radio_calibration));
+               radio_calibration_value.setVisible(new_radio_calibration >= 0);
+               if (new_radio_calibration < 0)
+                       radio_calibration_value.setText("Disabled");
+               else
+                       radio_calibration_value.setText(String.format("%d", new_radio_calibration));
        }
 
        public int radio_calibration() {
        }
 
        public int radio_calibration() {
@@ -828,6 +811,7 @@ public class AltosConfigUI
                        radio_enable_value.setEnabled(true);
                } else {
                        radio_enable_value.setSelected(true);
                        radio_enable_value.setEnabled(true);
                } else {
                        radio_enable_value.setSelected(true);
+                       radio_enable_value.setVisible(radio_frequency() > 0);
                        radio_enable_value.setEnabled(false);
                }
                set_radio_enable_tool_tip();
                        radio_enable_value.setEnabled(false);
                }
                set_radio_enable_tool_tip();
@@ -841,6 +825,7 @@ public class AltosConfigUI
        }
 
        public void set_callsign(String new_callsign) {
        }
 
        public void set_callsign(String new_callsign) {
+               callsign_value.setVisible(new_callsign != null);
                callsign_value.setText(new_callsign);
        }
 
                callsign_value.setText(new_callsign);
        }
 
@@ -900,10 +885,10 @@ public class AltosConfigUI
                if (new_pad_orientation >= pad_orientation_values.length)
                        new_pad_orientation = 0;
                if (new_pad_orientation < 0) {
                if (new_pad_orientation >= pad_orientation_values.length)
                        new_pad_orientation = 0;
                if (new_pad_orientation < 0) {
-                       pad_orientation_value.setEnabled(false);
+                       pad_orientation_value.setVisible(false);
                        new_pad_orientation = 0;
                } else {
                        new_pad_orientation = 0;
                } else {
-                       pad_orientation_value.setEnabled(true);
+                       pad_orientation_value.setVisible(true);
                }
                pad_orientation_value.setSelectedIndex(new_pad_orientation);
                set_pad_orientation_tool_tip();
                }
                pad_orientation_value.setSelectedIndex(new_pad_orientation);
                set_pad_orientation_tool_tip();
@@ -918,7 +903,7 @@ public class AltosConfigUI
 
        public void set_pyros(AltosPyro[] new_pyros) {
                pyros = new_pyros;
 
        public void set_pyros(AltosPyro[] new_pyros) {
                pyros = new_pyros;
-               pyro.setEnabled(pyros != null);
+               pyro.setVisible(pyros != null);
                if (pyros != null && pyro_ui != null)
                        pyro_ui.set_pyros(pyros);
        }
                if (pyros != null && pyro_ui != null)
                        pyro_ui.set_pyros(pyros);
        }
@@ -937,7 +922,7 @@ public class AltosConfigUI
                else
                        s = Integer.toString(new_aprs_interval);
                aprs_interval_value.setSelectedItem(s);
                else
                        s = Integer.toString(new_aprs_interval);
                aprs_interval_value.setSelectedItem(s);
-               aprs_interval_value.setEnabled(new_aprs_interval >= 0);
+               aprs_interval_value.setVisible(new_aprs_interval >= 0);
                set_aprs_interval_tool_tip();
        }
 
                set_aprs_interval_tool_tip();
        }
 
index 917ac364b7a09a8925e575172179fc1d641085c2..17a995d41c0b8fa5b3bc5f482551f7bc048b9e7d 100644 (file)
@@ -29,6 +29,12 @@ public class AltosFreqList extends JComboBox {
 
        public void set_frequency(double new_frequency) {
                int i;
 
        public void set_frequency(double new_frequency) {
                int i;
+
+               if (new_frequency < 0) {
+                       setVisible(false);
+                       return;
+               }
+
                for (i = 0; i < getItemCount(); i++) {
                        AltosFrequency  f = (AltosFrequency) getItemAt(i);
                        
                for (i = 0; i < getItemCount(); i++) {
                        AltosFrequency  f = (AltosFrequency) getItemAt(i);