summaryrefslogtreecommitdiff
path: root/altosui
diff options
context:
space:
mode:
Diffstat (limited to 'altosui')
-rw-r--r--altosui/AltosConfigUI.java78
-rw-r--r--altosui/AltosConfigureUI.java6
-rw-r--r--altosui/AltosFlightUI.java7
-rw-r--r--altosui/AltosIgniteUI.java5
-rw-r--r--altosui/AltosScanUI.java2
-rw-r--r--altosui/AltosUI.java4
6 files changed, 96 insertions, 6 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;
diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java
index 51768046..abe08a18 100644
--- a/altosui/AltosFlightUI.java
+++ b/altosui/AltosFlightUI.java
@@ -172,7 +172,10 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
});
c.gridx = 0;
c.gridy = 0;
+ c.weightx = 0;
+ c.weighty = 0;
c.insets = new Insets(3, 3, 3, 3);
+ c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.WEST;
bag.add (frequencies, c);
@@ -186,6 +189,8 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
telemetry = Altos.ao_telemetry_standard;
telemetries.setSelectedIndex(telemetry - 1);
telemetries.setMaximumRowCount(Altos.ao_telemetry_max);
+ telemetries.setPreferredSize(null);
+ telemetries.revalidate();
telemetries.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int telemetry = telemetries.getSelectedIndex() + 1;
@@ -195,6 +200,8 @@ public class AltosFlightUI extends JFrame implements AltosFlightDisplay {
});
c.gridx = 1;
c.gridy = 0;
+ c.weightx = 0;
+ c.weighty = 0;
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.WEST;
bag.add (telemetries, c);
diff --git a/altosui/AltosIgniteUI.java b/altosui/AltosIgniteUI.java
index 806b87b9..c11a8614 100644
--- a/altosui/AltosIgniteUI.java
+++ b/altosui/AltosIgniteUI.java
@@ -341,8 +341,8 @@ public class AltosIgniteUI
c.fill = GridBagConstraints.NONE;
c.anchor = GridBagConstraints.CENTER;
c.insets = i;
- c.weightx = 1;
- c.weighty = 1;
+ c.weightx = 0;
+ c.weighty = 0;
c.gridx = 0;
c.gridy = 0;
@@ -412,7 +412,6 @@ public class AltosIgniteUI
close.addActionListener(this);
close.setActionCommand("close");
-
pack();
setLocationRelativeTo(owner);
diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java
index dd6672aa..bce4b32c 100644
--- a/altosui/AltosScanUI.java
+++ b/altosui/AltosScanUI.java
@@ -386,7 +386,7 @@ public class AltosScanUI
set_label();
- c.fill = GridBagConstraints.NONE;
+ c.fill = GridBagConstraints.HORIZONTAL;
c.anchor = GridBagConstraints.WEST;
c.insets = i;
c.weightx = 1;
diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java
index 36c08882..27c41838 100644
--- a/altosui/AltosUI.java
+++ b/altosui/AltosUI.java
@@ -508,6 +508,10 @@ public class AltosUI extends JFrame {
}
public static void main(final String[] args) {
+ try {
+ UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+ } catch (Exception e) {
+ }
/* Handle batch-mode */
if (args.length == 0) {
AltosUI altosui = new AltosUI();