diff options
| -rw-r--r-- | altosui/AltosBTKnown.java | 6 | ||||
| -rw-r--r-- | altosui/AltosConfig.java | 2 | ||||
| -rw-r--r-- | altosui/AltosConfigFreqUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosConfigureUI.java | 26 | ||||
| -rw-r--r-- | altosui/AltosDataChooser.java | 2 | ||||
| -rw-r--r-- | altosui/AltosDialog.java | 8 | ||||
| -rw-r--r-- | altosui/AltosFile.java | 2 | ||||
| -rw-r--r-- | altosui/AltosFlashUI.java | 4 | ||||
| -rw-r--r-- | altosui/AltosFlightUI.java | 8 | ||||
| -rw-r--r-- | altosui/AltosFrame.java | 6 | ||||
| -rw-r--r-- | altosui/AltosFreqList.java | 4 | ||||
| -rw-r--r-- | altosui/AltosIdleMonitorUI.java | 8 | ||||
| -rw-r--r-- | altosui/AltosLaunchUI.java | 8 | ||||
| -rw-r--r-- | altosui/AltosPreferences.java | 127 | ||||
| -rw-r--r-- | altosui/AltosScanUI.java | 6 | ||||
| -rw-r--r-- | altosui/AltosSerial.java | 4 | ||||
| -rw-r--r-- | altosui/AltosSiteMap.java | 2 | ||||
| -rw-r--r-- | altosui/AltosTelemetryReader.java | 10 | ||||
| -rw-r--r-- | altosui/AltosUI.java | 8 | ||||
| -rw-r--r-- | altosui/AltosUIPreferences.java | 159 | ||||
| -rw-r--r-- | altosui/AltosVoice.java | 2 | ||||
| -rw-r--r-- | altosui/Makefile.am | 4 | 
23 files changed, 227 insertions, 187 deletions
diff --git a/altosui/AltosBTKnown.java b/altosui/AltosBTKnown.java index 95830637..e30be057 100644 --- a/altosui/AltosBTKnown.java +++ b/altosui/AltosBTKnown.java @@ -23,7 +23,7 @@ import java.util.prefs.*;  public class AltosBTKnown implements Iterable<AltosBTDevice> {  	LinkedList<AltosBTDevice>	devices = new LinkedList<AltosBTDevice>(); -	Preferences			bt_pref = AltosPreferences.bt_devices(); +	Preferences			bt_pref = AltosUIPreferences.bt_devices();  	private String get_address(String name) {  		return bt_pref.get(name, ""); @@ -57,7 +57,7 @@ public class AltosBTKnown implements Iterable<AltosBTDevice> {  	}  	private void flush() { -		AltosPreferences.flush_preferences(); +		AltosUIPreferences.flush_preferences();  	}  	public void set(Iterable<AltosBTDevice> new_devices) { @@ -91,7 +91,7 @@ public class AltosBTKnown implements Iterable<AltosBTDevice> {  	public AltosBTKnown() {  		devices = new LinkedList<AltosBTDevice>(); -		bt_pref = AltosPreferences.bt_devices(); +		bt_pref = AltosUIPreferences.bt_devices();  		load();  	}  }
\ No newline at end of file diff --git a/altosui/AltosConfig.java b/altosui/AltosConfig.java index 58da405f..bd930206 100644 --- a/altosui/AltosConfig.java +++ b/altosui/AltosConfig.java @@ -299,7 +299,7 @@ public class AltosConfig implements ActionListener {  				if (remote) {  					serial_line.stop_remote();  					serial_line.set_radio_frequency(frequency); -					AltosPreferences.set_frequency(device.getSerial(), frequency); +					AltosUIPreferences.set_frequency(device.getSerial(), frequency);  					serial_line.start_remote();  				}  				serial_line.printf("c c %s\n", callsign.get()); diff --git a/altosui/AltosConfigFreqUI.java b/altosui/AltosConfigFreqUI.java index c6eabc53..ecb55449 100644 --- a/altosui/AltosConfigFreqUI.java +++ b/altosui/AltosConfigFreqUI.java @@ -246,7 +246,7 @@ public class AltosConfigFreqUI extends AltosDialog implements ActionListener {  	FrequencyList	frequencies;  	void save_frequencies() { -		AltosPreferences.set_common_frequencies(frequencies.frequencies()); +		AltosUIPreferences.set_common_frequencies(frequencies.frequencies());  	}  	JButton	add, edit, remove; @@ -411,7 +411,7 @@ public class AltosConfigFreqUI extends AltosDialog implements ActionListener {  		Frame	frame = JOptionPane.getFrameForComponent(frameComp);  		AltosConfigFreqUI	dialog; -		dialog = new AltosConfigFreqUI(frame, AltosPreferences.common_frequencies()); +		dialog = new AltosConfigFreqUI(frame, AltosUIPreferences.common_frequencies());  		dialog.setVisible(true);  	} diff --git a/altosui/AltosConfigUI.java b/altosui/AltosConfigUI.java index b0cd7f27..eddb223f 100644 --- a/altosui/AltosConfigUI.java +++ b/altosui/AltosConfigUI.java @@ -434,7 +434,7 @@ public class AltosConfigUI  		c.anchor = GridBagConstraints.LINE_START;  		c.insets = ir;  		c.ipady = 5; -		callsign_value = new JTextField(AltosPreferences.callsign()); +		callsign_value = new JTextField(AltosUIPreferences.callsign());  		callsign_value.getDocument().addDocumentListener(this);  		pane.add(callsign_value, c);  		callsign_value.setToolTipText("Callsign reported in telemetry data"); @@ -689,7 +689,7 @@ public class AltosConfigUI  						    product_value.getText(),  						    serial_value.getText());  		AltosFrequency	new_frequency = new AltosFrequency(new_radio_frequency, description); -		AltosPreferences.add_common_frequency(new_frequency); +		AltosUIPreferences.add_common_frequency(new_frequency);  		radio_frequency_value.insertItemAt(new_frequency, i);  		radio_frequency_value.setSelectedIndex(i);  	} diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java index 06b5745c..1789cd25 100644 --- a/altosui/AltosConfigureUI.java +++ b/altosui/AltosConfigureUI.java @@ -105,7 +105,7 @@ public class AltosConfigureUI  	/* DocumentListener interface methods */  	public void changedUpdate(DocumentEvent e) { -		AltosPreferences.set_callsign(callsign_value.getText()); +		AltosUIPreferences.set_callsign(callsign_value.getText());  	}  	public void insertUpdate(DocumentEvent e) { @@ -158,12 +158,12 @@ public class AltosConfigureUI  		c.anchor = GridBagConstraints.WEST;  		pane.add(new JLabel("Voice"), c); -		enable_voice = new JRadioButton("Enable", AltosPreferences.voice()); +		enable_voice = new JRadioButton("Enable", AltosUIPreferences.voice());  		enable_voice.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					JRadioButton item = (JRadioButton) e.getSource();  					boolean enabled = item.isSelected(); -					AltosPreferences.set_voice(enabled); +					AltosUIPreferences.set_voice(enabled);  					if (enabled)  						voice.speak_always("Enable voice.");  					else @@ -202,11 +202,11 @@ public class AltosConfigureUI  		c.anchor = GridBagConstraints.WEST;  		pane.add(new JLabel("Log Directory"), c); -		configure_log = new JButton(AltosPreferences.logdir().getPath()); +		configure_log = new JButton(AltosUIPreferences.logdir().getPath());  		configure_log.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) { -					AltosPreferences.ConfigureLog(); -					configure_log.setText(AltosPreferences.logdir().getPath()); +					AltosUIPreferences.ConfigureLog(); +					configure_log.setText(AltosUIPreferences.logdir().getPath());  				}  			});  		c.gridx = 1; @@ -225,7 +225,7 @@ public class AltosConfigureUI  		c.anchor = GridBagConstraints.WEST;  		pane.add(new JLabel("Callsign"), c); -		callsign_value = new JTextField(AltosPreferences.callsign()); +		callsign_value = new JTextField(AltosUIPreferences.callsign());  		callsign_value.getDocument().addDocumentListener(this);  		c.gridx = 1;  		c.gridy = row++; @@ -244,13 +244,13 @@ public class AltosConfigureUI  		pane.add(new JLabel("Font size"), c);  		font_size_value = new JComboBox(font_size_names); -		int font_size = AltosPreferences.font_size(); +		int font_size = AltosUIPreferences.font_size();  		font_size_value.setSelectedIndex(font_size - Altos.font_size_small);  		font_size_value.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					int	size = font_size_value.getSelectedIndex() + Altos.font_size_small; -					AltosPreferences.set_font_size(size); +					AltosUIPreferences.set_font_size(size);  				}  			});  		c.gridx = 1; @@ -295,7 +295,7 @@ public class AltosConfigureUI  		DelegatingRenderer.install(look_and_feel_value); -		String look_and_feel  = AltosPreferences.look_and_feel(); +		String look_and_feel  = AltosUIPreferences.look_and_feel();  		for (int i = 0; i < look_and_feels.length; i++)  			if (look_and_feel.equals(look_and_feels[i].getClassName()))  				look_and_feel_value.setSelectedIndex(i); @@ -304,7 +304,7 @@ public class AltosConfigureUI  				public void actionPerformed(ActionEvent e) {  					int	id = look_and_feel_value.getSelectedIndex(); -					AltosPreferences.set_look_and_feel(look_and_feels[id].getClassName()); +					AltosUIPreferences.set_look_and_feel(look_and_feels[id].getClassName());  				}  			});  		c.gridx = 1; @@ -323,12 +323,12 @@ public class AltosConfigureUI  		c.anchor = GridBagConstraints.WEST;  		pane.add(new JLabel("Serial Debug"), c); -		serial_debug = new JRadioButton("Enable", AltosPreferences.serial_debug()); +		serial_debug = new JRadioButton("Enable", AltosUIPreferences.serial_debug());  		serial_debug.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					JRadioButton item = (JRadioButton) e.getSource();  					boolean enabled = item.isSelected(); -					AltosPreferences.set_serial_debug(enabled); +					AltosUIPreferences.set_serial_debug(enabled);  				}  			});  		serial_debug.setToolTipText("Enable/Disable USB I/O getting sent to the console"); diff --git a/altosui/AltosDataChooser.java b/altosui/AltosDataChooser.java index 488e1068..c4a46d01 100644 --- a/altosui/AltosDataChooser.java +++ b/altosui/AltosDataChooser.java @@ -77,6 +77,6 @@ public class AltosDataChooser extends JFileChooser {  		setDialogTitle("Select Flight Record File");  		setFileFilter(new FileNameExtensionFilter("Flight data file",  							  "telem", "eeprom")); -		setCurrentDirectory(AltosPreferences.logdir()); +		setCurrentDirectory(AltosUIPreferences.logdir());  	}  } diff --git a/altosui/AltosDialog.java b/altosui/AltosDialog.java index c30b5757..1e8e538c 100644 --- a/altosui/AltosDialog.java +++ b/altosui/AltosDialog.java @@ -32,7 +32,7 @@ import libaltosJNI.*;  class AltosDialogListener extends WindowAdapter {  	public void windowClosing (WindowEvent e) { -		AltosPreferences.unregister_ui_listener((AltosDialog) e.getWindow()); +		AltosUIPreferences.unregister_ui_listener((AltosDialog) e.getWindow());  	}  } @@ -44,19 +44,19 @@ public class AltosDialog extends JDialog implements AltosUIListener {  	}  	public AltosDialog() { -		AltosPreferences.register_ui_listener(this); +		AltosUIPreferences.register_ui_listener(this);  		addWindowListener(new AltosDialogListener());  	}  	public AltosDialog(Frame frame, String label, boolean modal) {  		super(frame, label, modal); -		AltosPreferences.register_ui_listener(this); +		AltosUIPreferences.register_ui_listener(this);  		addWindowListener(new AltosDialogListener());  	}  	public AltosDialog(Frame frame, boolean modal) {  		super(frame, modal); -		AltosPreferences.register_ui_listener(this); +		AltosUIPreferences.register_ui_listener(this);  		addWindowListener(new AltosDialogListener());  	}  } diff --git a/altosui/AltosFile.java b/altosui/AltosFile.java index 2e33b271..e2b6d5a6 100644 --- a/altosui/AltosFile.java +++ b/altosui/AltosFile.java @@ -24,7 +24,7 @@ import java.util.*;  class AltosFile extends File {  	public AltosFile(int year, int month, int day, int serial, int flight, String extension) { -		super (AltosPreferences.logdir(), +		super (AltosUIPreferences.logdir(),  		       String.format("%04d-%02d-%02d-serial-%03d-flight-%03d.%s",  				     year, month, day, serial, flight, extension));  	} diff --git a/altosui/AltosFlashUI.java b/altosui/AltosFlashUI.java index 704ce35c..f91c542d 100644 --- a/altosui/AltosFlashUI.java +++ b/altosui/AltosFlashUI.java @@ -161,7 +161,7 @@ public class AltosFlashUI  	boolean select_source_file() {  		JFileChooser	hexfile_chooser = new JFileChooser(); -		File firmwaredir = AltosPreferences.firmwaredir(); +		File firmwaredir = AltosUIPreferences.firmwaredir();  		if (firmwaredir != null)  			hexfile_chooser.setCurrentDirectory(firmwaredir); @@ -174,7 +174,7 @@ public class AltosFlashUI  		file = hexfile_chooser.getSelectedFile();  		if (file == null)  			return false; -		AltosPreferences.set_firmwaredir(file.getParentFile()); +		AltosUIPreferences.set_firmwaredir(file.getParentFile());  		return true;  	} diff --git a/altosui/AltosFlightUI.java b/altosui/AltosFlightUI.java index b2ae4858..5c6e0629 100644 --- a/altosui/AltosFlightUI.java +++ b/altosui/AltosFlightUI.java @@ -159,7 +159,7 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt  	ActionListener	show_timer;  	public AltosFlightUI(AltosVoice in_voice, AltosFlightReader in_reader, final int serial) { -		AltosPreferences.set_component(this); +		AltosUIPreferences.set_component(this);  		voice = in_voice;  		reader = in_reader; @@ -178,7 +178,7 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt  		/* Stick channel selector at top of table for telemetry monitoring */  		if (serial >= 0) {  			// Channel menu -			frequencies = new AltosFreqList(AltosPreferences.frequency(serial)); +			frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));  			frequencies.set_product("Monitor");  			frequencies.set_serial(serial);  			frequencies.addActionListener(new ActionListener() { @@ -298,7 +298,7 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt  		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); -		AltosPreferences.register_font_listener(this); +		AltosUIPreferences.register_font_listener(this);  		addWindowListener(new WindowAdapter() {  				@Override @@ -306,7 +306,7 @@ public class AltosFlightUI extends AltosFrame implements AltosFlightDisplay, Alt  					disconnect();  					setVisible(false);  					dispose(); -					AltosPreferences.unregister_font_listener(AltosFlightUI.this); +					AltosUIPreferences.unregister_font_listener(AltosFlightUI.this);  					if (exit_on_close)  						System.exit(0);  				} diff --git a/altosui/AltosFrame.java b/altosui/AltosFrame.java index f8cc4f52..36ddcae9 100644 --- a/altosui/AltosFrame.java +++ b/altosui/AltosFrame.java @@ -32,7 +32,7 @@ import libaltosJNI.*;  class AltosFrameListener extends WindowAdapter {  	public void windowClosing (WindowEvent e) { -		AltosPreferences.unregister_ui_listener((AltosFrame) e.getWindow()); +		AltosUIPreferences.unregister_ui_listener((AltosFrame) e.getWindow());  	}  } @@ -44,13 +44,13 @@ public class AltosFrame extends JFrame implements AltosUIListener {  	}  	public AltosFrame() { -		AltosPreferences.register_ui_listener(this); +		AltosUIPreferences.register_ui_listener(this);  		addWindowListener(new AltosFrameListener());  	}  	public AltosFrame(String name) {  		super(name); -		AltosPreferences.register_ui_listener(this); +		AltosUIPreferences.register_ui_listener(this);  		addWindowListener(new AltosFrameListener());  	}  } diff --git a/altosui/AltosFreqList.java b/altosui/AltosFreqList.java index 59b0e127..e4135df7 100644 --- a/altosui/AltosFreqList.java +++ b/altosui/AltosFreqList.java @@ -52,7 +52,7 @@ public class AltosFreqList extends JComboBox {  		}  		String	description = String.format("%s serial %d", product, serial);  		AltosFrequency	frequency = new AltosFrequency(new_frequency, description); -		AltosPreferences.add_common_frequency(frequency); +		AltosUIPreferences.add_common_frequency(frequency);  		insertItemAt(frequency, i);  		setMaximumRowCount(getItemCount());  	} @@ -73,7 +73,7 @@ public class AltosFreqList extends JComboBox {  	}  	public AltosFreqList () { -		super(AltosPreferences.common_frequencies()); +		super(AltosUIPreferences.common_frequencies());  		setMaximumRowCount(getItemCount());  		setEditable(false);  		product = "Unknown"; diff --git a/altosui/AltosIdleMonitorUI.java b/altosui/AltosIdleMonitorUI.java index d877be4d..8eb0d520 100644 --- a/altosui/AltosIdleMonitorUI.java +++ b/altosui/AltosIdleMonitorUI.java @@ -342,12 +342,12 @@ public class AltosIdleMonitorUI extends AltosFrame implements AltosFlightDisplay  		/* Stick frequency selector at top of table for telemetry monitoring */  		if (remote && serial >= 0) {  			// Frequency menu -			frequencies = new AltosFreqList(AltosPreferences.frequency(serial)); +			frequencies = new AltosFreqList(AltosUIPreferences.frequency(serial));  			frequencies.addActionListener(new ActionListener() {  					public void actionPerformed(ActionEvent e) {  						double frequency = frequencies.frequency();  						thread.set_frequency(frequency); -						AltosPreferences.set_frequency(device.getSerial(), +						AltosUIPreferences.set_frequency(device.getSerial(),  									       frequency);  					}  			}); @@ -391,7 +391,7 @@ public class AltosIdleMonitorUI extends AltosFrame implements AltosFlightDisplay  		setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); -		AltosPreferences.register_font_listener(this); +		AltosUIPreferences.register_font_listener(this);  		addWindowListener(new WindowAdapter() {  				@Override @@ -399,7 +399,7 @@ public class AltosIdleMonitorUI extends AltosFrame implements AltosFlightDisplay  					disconnect();  					setVisible(false);  					dispose(); -					AltosPreferences.unregister_font_listener(AltosIdleMonitorUI.this); +					AltosUIPreferences.unregister_font_listener(AltosIdleMonitorUI.this);  				}  			}); diff --git a/altosui/AltosLaunchUI.java b/altosui/AltosLaunchUI.java index 73fae16b..a6c36604 100644 --- a/altosui/AltosLaunchUI.java +++ b/altosui/AltosLaunchUI.java @@ -316,7 +316,7 @@ public class AltosLaunchUI  	void set_serial() {  		try {  			launcher_serial = Integer.parseInt(launcher_serial_text.getText()); -			AltosPreferences.set_launcher_serial(launcher_serial); +			AltosUIPreferences.set_launcher_serial(launcher_serial);  			send_command("set_remote");  		} catch (NumberFormatException ne) {  			launcher_serial_text.setText(String.format("%d", launcher_serial)); @@ -326,7 +326,7 @@ public class AltosLaunchUI  	void set_channel() {  		try {  			launcher_channel = Integer.parseInt(launcher_channel_text.getText()); -			AltosPreferences.set_launcher_serial(launcher_channel); +			AltosUIPreferences.set_launcher_serial(launcher_channel);  			send_command("set_remote");  		} catch (NumberFormatException ne) {  			launcher_channel_text.setText(String.format("%d", launcher_channel)); @@ -388,8 +388,8 @@ public class AltosLaunchUI  	public AltosLaunchUI(JFrame in_owner) { -		launcher_channel = AltosPreferences.launcher_channel(); -		launcher_serial = AltosPreferences.launcher_serial(); +		launcher_channel = AltosUIPreferences.launcher_channel(); +		launcher_serial = AltosUIPreferences.launcher_serial();  		owner = in_owner;  		armed_status = AltosLaunch.Unknown;  		igniter_status = AltosLaunch.Unknown; diff --git a/altosui/AltosPreferences.java b/altosui/AltosPreferences.java index cc2b1a95..7510c7c2 100644 --- a/altosui/AltosPreferences.java +++ b/altosui/AltosPreferences.java @@ -26,7 +26,7 @@ import javax.swing.*;  import javax.swing.filechooser.FileSystemView;  class AltosPreferences { -	static Preferences preferences; +	public static Preferences preferences;  	/* logdir preference name */  	final static String logdirPreference = "LOGDIR"; @@ -55,24 +55,15 @@ class AltosPreferences {  	/* scanning telemetry preferences name */  	final static String scanningTelemetryPreference = "SCANNING-TELEMETRY"; -	/* font size preferences name */ -	final static String fontSizePreference = "FONT-SIZE"; -  	/* Launcher serial preference name */  	final static String launcherSerialPreference = "LAUNCHER-SERIAL";  	/* Launcher channel preference name */  	final static String launcherChannelPreference = "LAUNCHER-CHANNEL"; -	/* Look&Feel preference name */ -	final static String lookAndFeelPreference = "LOOK-AND-FEEL"; -  	/* Default logdir is ~/TeleMetrum */  	final static String logdirName = "TeleMetrum"; -	/* UI Component to pop dialogs up */ -	static Component component; -  	/* Log directory */  	static File logdir; @@ -100,14 +91,6 @@ class AltosPreferences {  	/* Scanning telemetry */  	static int scanning_telemetry; -	static LinkedList<AltosFontListener> font_listeners; - -	static int font_size = Altos.font_size_medium; - -	static LinkedList<AltosUIListener> ui_listeners; - -	static String look_and_feel = null; -  	/* List of frequencies */  	final static String common_frequencies_node_name = "COMMON-FREQUENCIES";  	static AltosFrequency[] common_frequencies; @@ -187,11 +170,6 @@ class AltosPreferences {  		scanning_telemetry = preferences.getInt(scanningTelemetryPreference,(1 << Altos.ao_telemetry_standard)); -		font_listeners = new LinkedList<AltosFontListener>(); - -		font_size = preferences.getInt(fontSizePreference, Altos.font_size_medium); -		Altos.set_fonts(font_size); -  		launcher_serial = preferences.getInt(launcherSerialPreference, 0);  		launcher_channel = preferences.getInt(launcherChannelPreference, 0); @@ -207,27 +185,22 @@ class AltosPreferences {  		common_frequencies = load_common_frequencies(); -		look_and_feel = preferences.get(lookAndFeelPreference, UIManager.getSystemLookAndFeelClassName()); - -		ui_listeners = new LinkedList<AltosUIListener>();  	}  	static { init(); } -	static void set_component(Component in_component) { -		component = in_component; -	} -  	static void flush_preferences() {  		try {  			preferences.flush();  		} catch (BackingStoreException ee) { +/*  			if (component != null)  				JOptionPane.showMessageDialog(component,  							      preferences.absolutePath(),  							      "Cannot save prefernces",  							      JOptionPane.ERROR_MESSAGE);  			else +*/  				System.err.printf("Cannot save preferences\n");  		}  	} @@ -243,41 +216,6 @@ class AltosPreferences {  		}  	} -	private static boolean check_dir(File dir) { -		if (!dir.exists()) { -			if (!dir.mkdirs()) { -				JOptionPane.showMessageDialog(component, -							      dir.getName(), -							      "Cannot create directory", -							      JOptionPane.ERROR_MESSAGE); -				return false; -			} -		} else if (!dir.isDirectory()) { -			JOptionPane.showMessageDialog(component, -						      dir.getName(), -						      "Is not a directory", -						      JOptionPane.ERROR_MESSAGE); -			return false; -		} -		return true; -	} - -	/* Configure the log directory. This is where all telemetry and eeprom files -	 * will be written to, and where replay will look for telemetry files -	 */ -	public static void ConfigureLog() { -		JFileChooser	logdir_chooser = new JFileChooser(logdir.getParentFile()); - -		logdir_chooser.setDialogTitle("Configure Data Logging Directory"); -		logdir_chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - -		if (logdir_chooser.showDialog(component, "Select Directory") == JFileChooser.APPROVE_OPTION) { -			File dir = logdir_chooser.getSelectedFile(); -			if (check_dir(dir)) -				set_logdir(dir); -		} -	} -  	public static File logdir() {  		return logdir;  	} @@ -371,65 +309,6 @@ class AltosPreferences {  		return firmwaredir;  	} -	public static int font_size() { -		return font_size; -	} - -	static void set_fonts() { -	} - -	public static void set_font_size(int new_font_size) { -		font_size = new_font_size; -		synchronized (preferences) { -			preferences.putInt(fontSizePreference, font_size); -			flush_preferences(); -			Altos.set_fonts(font_size); -			for (AltosFontListener l : font_listeners) -				l.font_size_changed(font_size); -		} -	} - -	public static void register_font_listener(AltosFontListener l) { -		synchronized (preferences) { -			font_listeners.add(l); -		} -	} - -	public static void unregister_font_listener(AltosFontListener l) { -		synchronized (preferences) { -			font_listeners.remove(l); -		} -	} - -	public static void set_look_and_feel(String new_look_and_feel) { -		look_and_feel = new_look_and_feel; -		try { -			UIManager.setLookAndFeel(look_and_feel); -		} catch (Exception e) { -		} -		synchronized(preferences) { -			preferences.put(lookAndFeelPreference, look_and_feel); -			flush_preferences(); -			for (AltosUIListener l : ui_listeners) -				l.ui_changed(look_and_feel); -		} -	} - -	public static String look_and_feel() { -		return look_and_feel; -	} - -	public static void register_ui_listener(AltosUIListener l) { -		synchronized(preferences) { -			ui_listeners.add(l); -		} -	} - -	public static void unregister_ui_listener(AltosUIListener l) { -		synchronized (preferences) { -			ui_listeners.remove(l); -		} -	}  	public static void set_serial_debug(boolean new_serial_debug) {  		serial_debug = new_serial_debug;  		AltosSerial.set_debug(serial_debug); diff --git a/altosui/AltosScanUI.java b/altosui/AltosScanUI.java index e188834e..2b9137d8 100644 --- a/altosui/AltosScanUI.java +++ b/altosui/AltosScanUI.java @@ -267,7 +267,7 @@ public class AltosScanUI  					scanning_telemetry |= (1 << Altos.ao_telemetry_standard);  					telemetry_boxes[Altos.ao_telemetry_standard - Altos.ao_telemetry_min].setSelected(true);  				} -				AltosPreferences.set_scanning_telemetry(scanning_telemetry); +				AltosUIPreferences.set_scanning_telemetry(scanning_telemetry);  			}  			if (cmd.equals("monitor")) { @@ -359,7 +359,7 @@ public class AltosScanUI  		owner = in_owner; -		frequencies = AltosPreferences.common_frequencies(); +		frequencies = AltosUIPreferences.common_frequencies();  		frequency_index = 0;  		telemetry = Altos.ao_telemetry_min; @@ -400,7 +400,7 @@ public class AltosScanUI  		c.gridy = 2;  		pane.add(telemetry_label, c); -		int	scanning_telemetry = AltosPreferences.scanning_telemetry(); +		int	scanning_telemetry = AltosUIPreferences.scanning_telemetry();  		telemetry_boxes = new JCheckBox[Altos.ao_telemetry_max - Altos.ao_telemetry_min + 1];  		for (int k = Altos.ao_telemetry_min; k <= Altos.ao_telemetry_max; k++) {  			int j = k - Altos.ao_telemetry_min; diff --git a/altosui/AltosSerial.java b/altosui/AltosSerial.java index 77c926b1..afb9f21a 100644 --- a/altosui/AltosSerial.java +++ b/altosui/AltosSerial.java @@ -438,9 +438,9 @@ public class AltosSerial implements Runnable {  		if (debug)  			System.out.printf("start remote %7.3f\n", frequency);  		if (frequency == 0.0) -			frequency = AltosPreferences.frequency(device.getSerial()); +			frequency = AltosUIPreferences.frequency(device.getSerial());  		set_radio_frequency(frequency); -		set_callsign(AltosPreferences.callsign()); +		set_callsign(AltosUIPreferences.callsign());  		printf("p\nE 0\n");  		flush_input();  		remote = true; diff --git a/altosui/AltosSiteMap.java b/altosui/AltosSiteMap.java index 63995c40..93c54d02 100644 --- a/altosui/AltosSiteMap.java +++ b/altosui/AltosSiteMap.java @@ -250,7 +250,7 @@ public class AltosSiteMap extends JScrollPane implements AltosFlightDisplay {  		char chlng = lng < 0 ? 'W' : 'E';  		if (lat < 0) lat = -lat;  		if (lng < 0) lng = -lng; -		return new File(AltosPreferences.mapdir(), +		return new File(AltosUIPreferences.mapdir(),  				String.format("map-%c%.6f,%c%.6f-%d.png",  					      chlat, lat, chlng, lng, zoom));  	} diff --git a/altosui/AltosTelemetryReader.java b/altosui/AltosTelemetryReader.java index 85dc9cbc..dde60dc9 100644 --- a/altosui/AltosTelemetryReader.java +++ b/altosui/AltosTelemetryReader.java @@ -84,7 +84,7 @@ class AltosTelemetryReader extends AltosFlightReader {  	}  	void save_frequency() { -		AltosPreferences.set_frequency(device.getSerial(), frequency); +		AltosUIPreferences.set_frequency(device.getSerial(), frequency);  	}  	void set_telemetry(int in_telemetry) { @@ -93,7 +93,7 @@ class AltosTelemetryReader extends AltosFlightReader {  	}  	void save_telemetry() { -		AltosPreferences.set_telemetry(device.getSerial(), telemetry); +		AltosUIPreferences.set_telemetry(device.getSerial(), telemetry);  	}  	File backing_file() { @@ -109,11 +109,11 @@ class AltosTelemetryReader extends AltosFlightReader {  		previous = null;  		telem = new LinkedBlockingQueue<AltosLine>(); -		frequency = AltosPreferences.frequency(device.getSerial()); +		frequency = AltosUIPreferences.frequency(device.getSerial());  		set_frequency(frequency); -		telemetry = AltosPreferences.telemetry(device.getSerial()); +		telemetry = AltosUIPreferences.telemetry(device.getSerial());  		set_telemetry(telemetry); -		serial.set_callsign(AltosPreferences.callsign()); +		serial.set_callsign(AltosUIPreferences.callsign());  		serial.add_monitor(telem);  	}  } diff --git a/altosui/AltosUI.java b/altosui/AltosUI.java index 7d4b2edb..a2816a3a 100644 --- a/altosui/AltosUI.java +++ b/altosui/AltosUI.java @@ -108,7 +108,7 @@ public class AltosUI extends AltosFrame {  		if (imgURL != null)  			setIconImage(new ImageIcon(imgURL).getImage()); -		AltosPreferences.set_component(this); +		AltosUIPreferences.set_component(this);  		pane = getContentPane();  		gridbag = new GridBagLayout(); @@ -262,9 +262,9 @@ public class AltosUI extends AltosFrame {  		String	result;  		result = JOptionPane.showInputDialog(AltosUI.this,  						     "Configure Callsign", -						     AltosPreferences.callsign()); +						     AltosUIPreferences.callsign());  		if (result != null) -			AltosPreferences.set_callsign(result); +			AltosUIPreferences.set_callsign(result);  	}  	void ConfigureTeleMetrum() { @@ -538,7 +538,7 @@ public class AltosUI extends AltosFrame {  	public static void main(final String[] args) {  		try { -			UIManager.setLookAndFeel(AltosPreferences.look_and_feel()); +			UIManager.setLookAndFeel(AltosUIPreferences.look_and_feel());  		} catch (Exception e) {  		}  		/* Handle batch-mode */ diff --git a/altosui/AltosUIPreferences.java b/altosui/AltosUIPreferences.java new file mode 100644 index 00000000..da6c3968 --- /dev/null +++ b/altosui/AltosUIPreferences.java @@ -0,0 +1,159 @@ +/* + * Copyright © 2011 Keith Packard <keithp@keithp.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. + */ + +package altosui; + +import java.io.*; +import java.util.*; +import java.text.*; +import java.util.prefs.*; +import java.util.concurrent.LinkedBlockingQueue; +import java.awt.Component; +import javax.swing.*; +import javax.swing.filechooser.FileSystemView; + +/* import org.altusmetrum.AltosLib.*; */ + +class AltosUIPreferences extends AltosPreferences { + +	/* font size preferences name */ +	final static String fontSizePreference = "FONT-SIZE"; + +	/* Look&Feel preference name */ +	final static String lookAndFeelPreference = "LOOK-AND-FEEL"; + +	/* UI Component to pop dialogs up */ +	static Component component; + +	static LinkedList<AltosFontListener> font_listeners; + +	static int font_size = Altos.font_size_medium; + +	static LinkedList<AltosUIListener> ui_listeners; + +	static String look_and_feel = null; + +	public static void init() { +		font_listeners = new LinkedList<AltosFontListener>(); + +		font_size = preferences.getInt(fontSizePreference, Altos.font_size_medium); +		Altos.set_fonts(font_size); +		look_and_feel = preferences.get(lookAndFeelPreference, UIManager.getSystemLookAndFeelClassName()); + +		ui_listeners = new LinkedList<AltosUIListener>(); +	} + +	static { init(); } + +	static void set_component(Component in_component) { +		component = in_component; +	} + +	private static boolean check_dir(File dir) { +		if (!dir.exists()) { +			if (!dir.mkdirs()) { +				JOptionPane.showMessageDialog(component, +							      dir.getName(), +							      "Cannot create directory", +							      JOptionPane.ERROR_MESSAGE); +				return false; +			} +		} else if (!dir.isDirectory()) { +			JOptionPane.showMessageDialog(component, +						      dir.getName(), +						      "Is not a directory", +						      JOptionPane.ERROR_MESSAGE); +			return false; +		} +		return true; +	} + +	/* Configure the log directory. This is where all telemetry and eeprom files +	 * will be written to, and where replay will look for telemetry files +	 */ +	public static void ConfigureLog() { +		JFileChooser	logdir_chooser = new JFileChooser(logdir.getParentFile()); + +		logdir_chooser.setDialogTitle("Configure Data Logging Directory"); +		logdir_chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + +		if (logdir_chooser.showDialog(component, "Select Directory") == JFileChooser.APPROVE_OPTION) { +			File dir = logdir_chooser.getSelectedFile(); +			if (check_dir(dir)) +				set_logdir(dir); +		} +	} +	public static int font_size() { +		return font_size; +	} + +	static void set_fonts() { +	} + +	public static void set_font_size(int new_font_size) { +		font_size = new_font_size; +		synchronized (preferences) { +			preferences.putInt(fontSizePreference, font_size); +			flush_preferences(); +			Altos.set_fonts(font_size); +			for (AltosFontListener l : font_listeners) +				l.font_size_changed(font_size); +		} +	} + +	public static void register_font_listener(AltosFontListener l) { +		synchronized (preferences) { +			font_listeners.add(l); +		} +	} + +	public static void unregister_font_listener(AltosFontListener l) { +		synchronized (preferences) { +			font_listeners.remove(l); +		} +	} + +	public static void set_look_and_feel(String new_look_and_feel) { +		look_and_feel = new_look_and_feel; +		try { +			UIManager.setLookAndFeel(look_and_feel); +		} catch (Exception e) { +		} +		synchronized(preferences) { +			preferences.put(lookAndFeelPreference, look_and_feel); +			flush_preferences(); +			for (AltosUIListener l : ui_listeners) +				l.ui_changed(look_and_feel); +		} +	} + +	public static String look_and_feel() { +		return look_and_feel; +	} + +	public static void register_ui_listener(AltosUIListener l) { +		synchronized(preferences) { +			ui_listeners.add(l); +		} +	} + +	public static void unregister_ui_listener(AltosUIListener l) { +		synchronized (preferences) { +			ui_listeners.remove(l); +		} +	} +}
\ No newline at end of file diff --git a/altosui/AltosVoice.java b/altosui/AltosVoice.java index ac13ee14..ab74e0b3 100644 --- a/altosui/AltosVoice.java +++ b/altosui/AltosVoice.java @@ -65,7 +65,7 @@ public class AltosVoice implements Runnable {  	}  	public void speak(String s) { -		if (AltosPreferences.voice()) +		if (AltosUIPreferences.voice())  			speak_always(s);  	} diff --git a/altosui/Makefile.am b/altosui/Makefile.am index 16b57d40..c3fd6bb6 100644 --- a/altosui/Makefile.am +++ b/altosui/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS=libaltos +SUBDIRS=libaltos altoslib  JAVAROOT=classes  AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation @@ -87,7 +87,9 @@ altosui_JAVA = \  	AltosLog.java \  	AltosPad.java \  	AltosParse.java \ +	AltosUIPreferences.java \  	AltosPreferences.java \ +	AltosUIPreferences.java \  	AltosReader.java \  	AltosRecord.java \  	AltosRecordCompanion.java \  | 
