summaryrefslogtreecommitdiff
path: root/altosui
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-08-24 00:09:51 -0700
committerKeith Packard <keithp@keithp.com>2011-08-24 00:09:51 -0700
commit2165e82327faaada23f0503b8e49b80f938b746c (patch)
tree2751f4e79c429209f35128264f6d956c6a3396b0 /altosui
parent63808e0392f43633f92fee137d968e969dd364c9 (diff)
altosui: Add tool-tips to config dialogs
Provides more information about the various settings, and, when they're disabled, tells the user why. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosui')
-rw-r--r--altosui/AltosConfigUI.java78
-rw-r--r--altosui/AltosConfigureUI.java6
2 files changed, 82 insertions, 2 deletions
diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java
index bb9e1cd2..d20dd073 100644
--- a/altosui/AltosConfigUI.java
+++ b/altosui/AltosConfigUI.java
@@ -116,6 +116,63 @@ public class AltosConfigUI
}
}
+ boolean is_telemini() {
+ String product = product_value.getText();
+ return product != null && product.startsWith("TeleMini");
+ }
+
+ boolean is_telemetrum() {
+ String product = product_value.getText();
+ return product != null && product.startsWith("TeleMetrum");
+ }
+
+ 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");
+ else
+ radio_enable_value.setToolTipText("Firmware version does not support disabling radio");
+ }
+
+ void set_flight_log_max_tool_tip() {
+ if (flight_log_max_value.isEnabled())
+ flight_log_max_value.setToolTipText("Size reserved for each flight log (in kB)");
+ else {
+ if (is_telemetrum())
+ flight_log_max_value.setToolTipText("Cannot set max value with flight logs in memory");
+ else if (is_telemini())
+ flight_log_max_value.setToolTipText("TeleMini stores only one flight");
+ else
+ flight_log_max_value.setToolTipText("Cannot set max flight log value");
+ }
+ }
+
+ void set_ignite_mode_tool_tip() {
+ if (ignite_mode_value.isEnabled())
+ ignite_mode_value.setToolTipText("Select when igniters will be fired");
+ else
+ ignite_mode_value.setToolTipText("Older firmware could not select ignite mode");
+ }
+
+ void set_pad_orientation_tool_tip() {
+ if (pad_orientation_value.isEnabled())
+ pad_orientation_value.setToolTipText("How will TeleMetrum be mounted in the airframe");
+ else {
+ if (is_telemetrum())
+ pad_orientation_value.setToolTipText("Older TeleMetrum firmware must fly antenna forward");
+ else if (is_telemini())
+ pad_orientation_value.setToolTipText("TeleMini doesn't care how it is mounted");
+ else
+ pad_orientation_value.setToolTipText("Can't select orientation");
+ }
+ }
+
/* Build the UI using a grid bag */
public AltosConfigUI(JFrame in_owner, boolean remote) {
super (in_owner, "Configure TeleMetrum", false);
@@ -216,6 +273,7 @@ public class AltosConfigUI
main_deploy_value.setEditable(true);
main_deploy_value.addItemListener(this);
pane.add(main_deploy_value, c);
+ main_deploy_value.setToolTipText("Height above pad altitude to fire main charge");
/* Apogee delay */
c = new GridBagConstraints();
@@ -240,6 +298,7 @@ public class AltosConfigUI
apogee_delay_value.setEditable(true);
apogee_delay_value.addItemListener(this);
pane.add(apogee_delay_value, c);
+ apogee_delay_value.setToolTipText("Delay after apogee before charge fires");
/* Frequency */
c = new GridBagConstraints();
@@ -263,6 +322,7 @@ public class AltosConfigUI
radio_frequency_value = new AltosFreqList();
radio_frequency_value.addItemListener(this);
pane.add(radio_frequency_value, c);
+ radio_frequency_value.setToolTipText("Telemetry, RDF and packet frequency");
/* Radio Calibration */
c = new GridBagConstraints();
@@ -288,6 +348,7 @@ public class AltosConfigUI
if (remote)
radio_calibration_value.setEnabled(false);
pane.add(radio_calibration_value, c);
+ set_radio_calibration_tool_tip();
/* Radio Enable */
c = new GridBagConstraints();
@@ -311,6 +372,7 @@ public class AltosConfigUI
radio_enable_value = new JRadioButton("Enabled");
radio_enable_value.addItemListener(this);
pane.add(radio_enable_value, c);
+ set_radio_enable_tool_tip();
/* Callsign */
c = new GridBagConstraints();
@@ -334,6 +396,7 @@ public class AltosConfigUI
callsign_value = new JTextField(AltosPreferences.callsign());
callsign_value.getDocument().addDocumentListener(this);
pane.add(callsign_value, c);
+ callsign_value.setToolTipText("Callsign reported in telemetry data");
/* Flight log max */
c = new GridBagConstraints();
@@ -358,6 +421,7 @@ public class AltosConfigUI
flight_log_max_value.setEditable(true);
flight_log_max_value.addItemListener(this);
pane.add(flight_log_max_value, c);
+ set_flight_log_max_tool_tip();
/* Ignite mode */
c = new GridBagConstraints();
@@ -382,6 +446,7 @@ public class AltosConfigUI
ignite_mode_value.setEditable(false);
ignite_mode_value.addItemListener(this);
pane.add(ignite_mode_value, c);
+ set_ignite_mode_tool_tip();
/* Pad orientation */
c = new GridBagConstraints();
@@ -406,6 +471,7 @@ public class AltosConfigUI
pad_orientation_value.setEditable(false);
pad_orientation_value.addItemListener(this);
pane.add(pad_orientation_value, c);
+ set_pad_orientation_tool_tip();
/* Buttons */
c = new GridBagConstraints();
@@ -521,6 +587,8 @@ public class AltosConfigUI
public void set_product(String product) {
radio_frequency_value.set_product(product);
product_value.setText(product);
+ set_pad_orientation_tool_tip();
+ set_flight_log_max_tool_tip();
}
public void set_version(String version) {
@@ -585,12 +653,14 @@ public class AltosConfigUI
}
public void set_radio_enable(int new_radio_enable) {
- if (new_radio_enable >= 0)
+ if (new_radio_enable >= 0) {
radio_enable_value.setSelected(new_radio_enable > 0);
- else {
+ radio_enable_value.setEnabled(true);
+ } else {
radio_enable_value.setSelected(true);
radio_enable_value.setEnabled(false);
}
+ set_radio_enable_tool_tip();
}
public int radio_enable() {
@@ -612,10 +682,12 @@ public class AltosConfigUI
if (new_flight_log_max == 0)
flight_log_max_value.setEnabled(false);
flight_log_max_value.setSelectedItem(Integer.toString(new_flight_log_max));
+ set_flight_log_max_tool_tip();
}
public void set_flight_log_max_enabled(boolean enable) {
flight_log_max_value.setEnabled(enable);
+ set_flight_log_max_tool_tip();
}
public int flight_log_max() {
@@ -642,6 +714,7 @@ public class AltosConfigUI
ignite_mode_value.setEnabled(true);
}
ignite_mode_value.setSelectedIndex(new_ignite_mode);
+ set_ignite_mode_tool_tip();
}
public int ignite_mode() {
@@ -660,6 +733,7 @@ public class AltosConfigUI
pad_orientation_value.setEnabled(true);
}
pad_orientation_value.setSelectedIndex(new_pad_orientation);
+ set_pad_orientation_tool_tip();
}
public int pad_orientation() {
diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java
index abb54c74..0c865d0e 100644
--- a/altosui/AltosConfigureUI.java
+++ b/altosui/AltosConfigureUI.java
@@ -125,6 +125,7 @@ public class AltosConfigureUI
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.WEST;
pane.add(enable_voice, c);
+ enable_voice.setToolTipText("Enable/Disable all audio in-flight announcements");
c.gridx = 2;
c.gridy = 2;
@@ -139,6 +140,7 @@ public class AltosConfigureUI
}
});
pane.add(test_voice, c);
+ test_voice.setToolTipText("Play a stock audio clip to check volume");
/* Log directory settings */
c.gridx = 0;
@@ -161,6 +163,7 @@ public class AltosConfigureUI
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.WEST;
pane.add(configure_log, c);
+ configure_log.setToolTipText("Which directory flight logs are stored in");
/* Callsign setting */
c.gridx = 0;
@@ -178,6 +181,7 @@ public class AltosConfigureUI
c.fill = GridBagConstraints.BOTH;
c.anchor = GridBagConstraints.WEST;
pane.add(callsign_value, c);
+ callsign_value.setToolTipText("Callsign sent in packet mode");
/* Serial debug setting */
c.gridx = 0;
@@ -195,6 +199,7 @@ public class AltosConfigureUI
AltosPreferences.set_serial_debug(enabled);
}
});
+ serial_debug.setToolTipText("Enable/Disable USB I/O getting sent to the console");
c.gridx = 1;
c.gridy = 5;
@@ -223,6 +228,7 @@ public class AltosConfigureUI
AltosConfigFreqUI.show(owner);
}
});
+ manage_frequencies.setToolTipText("Configure which values are shown in frequency menus");
// BLUETOOTH
// c.gridx = 2;
c.gridx = 1;