projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altosui/telegps: Undo the frequency/telemetry menu changes
[fw/altos]
/
telegps
/
TeleGPS.java
diff --git
a/telegps/TeleGPS.java
b/telegps/TeleGPS.java
index eddb47d8f2975fc496bd1817aa14c63025a210f5..7e5ff42aa86c0696445c719da12e2745980dac06 100644
(file)
--- a/
telegps/TeleGPS.java
+++ b/
telegps/TeleGPS.java
@@
-23,8
+23,8
@@
import javax.swing.*;
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.altoslib_
4
.*;
-import org.altusmetrum.altosuilib_
2
.*;
+import org.altusmetrum.altoslib_
5
.*;
+import org.altusmetrum.altosuilib_
3
.*;
public class TeleGPS
extends AltosUIFrame
public class TeleGPS
extends AltosUIFrame
@@
-58,12
+58,14
@@
public class TeleGPS
JMenu file_menu;
JMenu monitor_menu;
JMenu device_menu;
JMenu file_menu;
JMenu monitor_menu;
JMenu device_menu;
- AltosFreqList frequencies;
+ AltosUIFreqList frequencies;
+ ActionListener frequency_listener;
Container bag;
TeleGPSStatus telegps_status;
TeleGPSStatusUpdate status_update;
Container bag;
TeleGPSStatus telegps_status;
TeleGPSStatusUpdate status_update;
+ javax.swing.Timer status_timer;
JTabbedPane pane;
JTabbedPane pane;
@@
-174,7
+176,14
@@
public class TeleGPS
void disconnect() {
setTitle("TeleGPS");
stop_display();
void disconnect() {
setTitle("TeleGPS");
stop_display();
- remove_frequency_menu();
+ if (status_timer != null) {
+ status_timer.stop();
+ status_timer = null;
+ status_update = null;
+ }
+
+ telegps_status.disable_receive();
+ disable_frequency_menu();
}
void connect(AltosDevice device) {
}
void connect(AltosDevice device) {
@@
-182,8
+191,7
@@
public class TeleGPS
disconnect();
try {
AltosFlightReader reader = new AltosTelemetryReader(new AltosSerial(device));
disconnect();
try {
AltosFlightReader reader = new AltosTelemetryReader(new AltosSerial(device));
- set_reader(reader);
- add_frequency_menu(device.getSerial(), reader);
+ set_reader(reader, device);
} catch (FileNotFoundException ee) {
JOptionPane.showMessageDialog(this,
ee.getMessage(),
} catch (FileNotFoundException ee) {
JOptionPane.showMessageDialog(this,
ee.getMessage(),
@@
-322,15
+330,12
@@
public class TeleGPS
}
}
}
}
- void add_frequency_menu(int serial, final AltosFlightReader reader) {
- // Channel menu
- if (frequencies != null)
- return;
+ void enable_frequency_menu(int serial, final AltosFlightReader reader) {
- frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));
-
frequencies.set_product("Monitor"
);
- frequencies.set_serial(serial);
- frequenc
ies.addActionListener(
new ActionListener() {
+ if (frequency_listener != null)
+
disable_frequency_menu(
);
+
+ frequenc
y_listener =
new ActionListener() {
public void actionPerformed(ActionEvent e) {
double frequency = frequencies.frequency();
try {
public void actionPerformed(ActionEvent e) {
double frequency = frequencies.frequency();
try {
@@
-340,22
+345,37
@@
public class TeleGPS
}
reader.save_frequency();
}
}
reader.save_frequency();
}
- });
- menu_bar.add(frequencies);
+ };
+
+ frequencies.addActionListener(frequency_listener);
+ frequencies.set_product("Monitor");
+ frequencies.set_serial(serial);
+ frequencies.set_frequency(AltosUIPreferences.frequency(serial));
+ frequencies.setEnabled(true);
+
}
}
- void
remov
e_frequency_menu() {
- if (frequenc
ies
!= null) {
-
menu_bar.remove(frequencies
);
-
menu_bar.repaint(
);
- frequenc
ies
= null;
+ void
disabl
e_frequency_menu() {
+ if (frequenc
y_listener
!= null) {
+
frequencies.removeActionListener(frequency_listener
);
+
frequencies.setEnabled(false
);
+ frequenc
y_listener
= null;
}
}
+
}
}
- public void set_reader(AltosFlightReader reader) {
+ public void set_reader(AltosFlightReader reader, AltosDevice device) {
+ status_update = new TeleGPSStatusUpdate(telegps_status);
+
+ status_timer = new javax.swing.Timer(100, status_update);
+ status_timer.start();
+
setTitle(String.format("TeleGPS %s", reader.name));
thread = new TeleGPSDisplayThread(this, voice(), this, reader);
thread.start();
setTitle(String.format("TeleGPS %s", reader.name));
thread = new TeleGPSDisplayThread(this, voice(), this, reader);
thread.start();
+
+ if (device != null)
+ enable_frequency_menu(device.getSerial(), reader);
}
static int number_of_windows;
}
static int number_of_windows;
@@
-389,16
+409,38
@@
public class TeleGPS
private JMenu make_menu(String label, String[][] items) {
JMenu menu = new JMenu(label);
private JMenu make_menu(String label, String[][] items) {
JMenu menu = new JMenu(label);
- for (int i = 0; i < items.length; i++)
+ for (int i = 0; i < items.length; i++) {
+ if (MAC_OS_X) {
+ if (items[i][1].equals("exit"))
+ continue;
+ if (items[i][1].equals("preferences"))
+ continue;
+ }
add_menu(menu, items[i][0], items[i][1]);
add_menu(menu, items[i][0], items[i][1]);
+ }
menu_bar.add(menu);
return menu;
}
menu_bar.add(menu);
return menu;
}
+ /* OSXAdapter interfaces */
+ public void macosx_file_handler(String path) {
+ process_graph(new File(path));
+ }
+
+ public void macosx_quit_handler() {
+ System.exit(0);
+ }
+
+ public void macosx_preferences_handler() {
+ preferences();
+ }
+
public TeleGPS() {
AltosUIPreferences.set_component(this);
public TeleGPS() {
AltosUIPreferences.set_component(this);
+ register_for_macosx_events();
+
reader = null;
bag = getContentPane();
reader = null;
bag = getContentPane();
@@
-414,6
+456,17
@@
public class TeleGPS
file_menu = make_menu("File", file_menu_entries);
monitor_menu = make_menu("Monitor", monitor_menu_entries);
device_menu = make_menu("Device", device_menu_entries);
file_menu = make_menu("File", file_menu_entries);
monitor_menu = make_menu("Monitor", monitor_menu_entries);
device_menu = make_menu("Device", device_menu_entries);
+
+ frequencies = new AltosUIFreqList();
+ frequencies.setEnabled(false);
+ c.gridx = 0;
+ c.gridy = 0;
+ c.fill = GridBagConstraints.NONE;
+ c.anchor = GridBagConstraints.WEST;
+ c.weightx = 0;
+ c.gridwidth = 1;
+ bag.add(frequencies, c);
+
displays = new LinkedList<AltosFlightDisplay>();
int serial = -1;
displays = new LinkedList<AltosFlightDisplay>();
int serial = -1;
@@
-476,15
+529,11
@@
public class TeleGPS
setVisible(true);
add_window();
setVisible(true);
add_window();
-
- status_update = new TeleGPSStatusUpdate(telegps_status);
-
- new javax.swing.Timer(100, status_update).start();
}
public TeleGPS(AltosFlightReader reader) {
this();
}
public TeleGPS(AltosFlightReader reader) {
this();
- set_reader(reader);
+ set_reader(reader
, null
);
}
public TeleGPS(AltosDevice device) {
}
public TeleGPS(AltosDevice device) {