exit_on_close = true;
}
- Container bag;
-
- JMenuBar menu_bar;
- AltosFreqList frequencies;
- AltosUITelemetryMenu telemetries;
+ Container bag;
+ AltosUIFreqList frequencies;
+ AltosUIRateList rates;
+ AltosUITelemetryList telemetries;
JLabel telemetry;
ActionListener show_timer;
public AltosFlightUI(AltosVoice in_voice, AltosFlightReader in_reader, final int serial) {
- super();
-
AltosUIPreferences.set_component(this);
displays = new LinkedList<AltosFlightDisplay>();
/* Stick channel selector at top of table for telemetry monitoring */
if (serial >= 0) {
-
- menu_bar = new JMenuBar();
- setJMenuBar(menu_bar);
-
- // Channel menu
- frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));
+ // Frequency menu
+ frequencies = new AltosUIFreqList(AltosUIPreferences.frequency(serial));
frequencies.set_product("Monitor");
frequencies.set_serial(serial);
frequencies.addActionListener(new ActionListener() {
reader.save_frequency();
}
});
- menu_bar.add (frequencies);
-
- // Telemetry format menu
- if (reader.supports_telemetry(AltosLib.ao_telemetry_standard)) {
- telemetries = new AltosUITelemetryMenu(serial);
+ 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);
+
+ // Telemetry rate list
+ rates = new AltosUIRateList(AltosUIPreferences.telemetry_rate(serial));
+ rates.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ int rate = rates.rate();
+ try {
+ reader.set_telemetry_rate(rate);
+ } catch (TimeoutException te) {
+ } catch (InterruptedException ie) {
+ }
+ reader.save_telemetry_rate();
+ }
+ });
+ rates.setEnabled(reader.supports_telemetry_rate(AltosLib.ao_telemetry_rate_2400));
+ c.gridx = 1;
+ 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 (rates, c);
+
+ // Telemetry format list
+ if (reader.supports_telemetry(Altos.ao_telemetry_standard)) {
+ telemetries = new AltosUITelemetryList(serial);
telemetries.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int telemetry = telemetries.get_selected();
reader.save_telemetry();
}
});
- menu_bar.add(telemetries);
+ c.gridx = 2;
+ c.gridy = 0;
+ c.weightx = 0;
+ c.weighty = 0;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ bag.add (telemetries, c);
+ c.insets = new Insets(0, 0, 0, 0);
} else {
String version;
version = "Telemetry: None";
telemetry = new JLabel(version);
- menu_bar.add(telemetry);
+ c.gridx = 2;
+ c.gridy = 0;
+ c.weightx = 0;
+ c.weighty = 0;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ bag.add (telemetry, c);
+ c.insets = new Insets(0, 0, 0, 0);
}
}
c.gridy = 1;
c.fill = GridBagConstraints.HORIZONTAL;
c.weightx = 1;
- c.gridwidth = 2;
+ c.gridwidth = 3;
bag.add(flightStatus, c);
- c.gridwidth = 1;
/* The rest of the window uses a tabbed pane to
* show one of the alternate data views
c.fill = GridBagConstraints.BOTH;
c.weightx = 1;
c.weighty = 1;
- c.gridwidth = 2;
bag.add(pane, c);
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);