diff options
| author | Keith Packard <keithp@keithp.com> | 2013-01-10 21:48:12 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2013-01-10 21:48:12 -0800 | 
| commit | 1ed6b13e87c1cc2d6618b6ba3a293ea6e3b5752e (patch) | |
| tree | 10adf6f3c6b6c1ed2bf7540a9972fe72253cfa81 /altosui/AltosConfigureUI.java | |
| parent | acff2f466031fd1a8533fc315411c3734a8bacc6 (diff) | |
| parent | d409417ff8e9ed9d406bf1c04542a4ecb574768b (diff) | |
Merge remote-tracking branch 'origin/micropeak-logging'
Diffstat (limited to 'altosui/AltosConfigureUI.java')
| -rw-r--r-- | altosui/AltosConfigureUI.java | 358 | 
1 files changed, 34 insertions, 324 deletions
| diff --git a/altosui/AltosConfigureUI.java b/altosui/AltosConfigureUI.java index c576b052..0e411b03 100644 --- a/altosui/AltosConfigureUI.java +++ b/altosui/AltosConfigureUI.java @@ -22,86 +22,17 @@ import java.awt.event.*;  import java.beans.*;  import javax.swing.*;  import javax.swing.event.*; - -class DelegatingRenderer implements ListCellRenderer { - -	// ... -	public static void install(JComboBox comboBox) { -		DelegatingRenderer renderer = new DelegatingRenderer(comboBox); -		renderer.initialise(); -		comboBox.setRenderer(renderer); -	} - -	// ... -	private final JComboBox comboBox; - -	// ... -	private ListCellRenderer delegate; - -	// ... -	private DelegatingRenderer(JComboBox comboBox) { -		this.comboBox = comboBox; -	} - -	// ... -	private void initialise() { -		delegate = new JComboBox().getRenderer(); -		comboBox.addPropertyChangeListener("UI", new PropertyChangeListener() { - -				public void propertyChange(PropertyChangeEvent evt) { -					delegate = new JComboBox().getRenderer(); -				} -			}); -	} - -	// ... -	public Component getListCellRendererComponent(JList list, -						      Object value, int index, boolean isSelected, boolean cellHasFocus) { - -		return delegate.getListCellRendererComponent(list, -							     ((UIManager.LookAndFeelInfo) value).getName(), -							     index, isSelected, cellHasFocus); -	} -} +import org.altusmetrum.altosuilib.*;  public class AltosConfigureUI -	extends AltosDialog +	extends AltosUIConfigure  	implements DocumentListener  { -	JFrame		owner;  	AltosVoice	voice; -	Container	pane; - -	JRadioButton	enable_voice; -	JButton		test_voice; -	JButton		close; - -	JButton		configure_log; -	JTextField	log_directory; - -	JLabel		callsign_label; -	JTextField	callsign_value; - -	JRadioButton	imperial_units; - -	JLabel		font_size_label; -	JComboBox	font_size_value; -	JLabel		look_and_feel_label; -	JComboBox	look_and_feel_value; - -	JRadioButton	serial_debug; - -	JButton		manage_bluetooth; -	JButton		manage_frequencies; - -	final static String[] font_size_names = { "Small", "Medium", "Large" }; +	public JTextField	callsign_value;  	/* DocumentListener interface methods */ -	public void changedUpdate(DocumentEvent e) { -		AltosUIPreferences.set_callsign(callsign_value.getText()); -	} -  	public void insertUpdate(DocumentEvent e) {  		changedUpdate(e);  	} @@ -110,49 +41,17 @@ public class AltosConfigureUI  		changedUpdate(e);  	} -	public AltosConfigureUI(JFrame in_owner, AltosVoice in_voice) { -		super(in_owner, "Configure AltosUI", false); - -		GridBagConstraints	c; - -		Insets insets = new Insets(4, 4, 4, 4); - -		int row = 0; - -		owner = in_owner; -		voice = in_voice; -		pane = getContentPane(); -		pane.setLayout(new GridBagLayout()); - -		c = new GridBagConstraints(); -		c.insets = insets; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; - -		/* Nice label at the top */ -		c.gridx = 0; -		c.gridy = row++; -		c.gridwidth = 3; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.CENTER; -		pane.add(new JLabel ("Configure AltOS UI"), c); +	public void changedUpdate(DocumentEvent e) { +		if (callsign_value != null)  +			AltosUIPreferences.set_callsign(callsign_value.getText()); +	} -		c.gridx = 0; -		c.gridy = row++; -		c.gridwidth = 3; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.CENTER; -		pane.add(new JLabel (String.format("AltOS version %s", AltosVersion.version)), c); +	public void add_voice() {  		/* Voice settings */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Voice"), c); +		pane.add(new JLabel("Voice"), constraints(0, 1)); -		enable_voice = new JRadioButton("Enable", AltosUIPreferences.voice()); +		JRadioButton enable_voice = new JRadioButton("Enable", AltosUIPreferences.voice());  		enable_voice.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					JRadioButton item = (JRadioButton) e.getSource(); @@ -164,246 +63,57 @@ public class AltosConfigureUI  						voice.speak_always("Disable voice.");  				}  			}); -		c.gridx = 1; -		c.gridy = row; -		c.gridwidth = 1; -		c.weightx = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(enable_voice, c); +		pane.add(enable_voice, constraints(1, 1));  		enable_voice.setToolTipText("Enable/Disable all audio in-flight announcements"); -		c.gridx = 2; -		c.gridy = row++; -		c.gridwidth = 1; -		c.weightx = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.EAST; -		test_voice = new JButton("Test Voice"); +		JButton test_voice = new JButton("Test Voice");  		test_voice.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					voice.speak("That's one small step for man; one giant leap for mankind.");  				}  			}); -		pane.add(test_voice, c); +		pane.add(test_voice, constraints(2, 1));  		test_voice.setToolTipText("Play a stock audio clip to check volume"); +		row++; +	} -		/* Log directory settings */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Log Directory"), c); - -		configure_log = new JButton(AltosUIPreferences.logdir().getPath()); -		configure_log.addActionListener(new ActionListener() { -				public void actionPerformed(ActionEvent e) { -					AltosUIPreferences.ConfigureLog(); -					configure_log.setText(AltosUIPreferences.logdir().getPath()); -				} -			}); -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.BOTH; -		c.anchor = GridBagConstraints.WEST; -		pane.add(configure_log, c); -		configure_log.setToolTipText("Which directory flight logs are stored in"); - +	public void add_callsign() {  		/* Callsign setting */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Callsign"), c); +		pane.add(new JLabel("Callsign"), constraints(0, 1)); -		callsign_value = new JTextField(AltosUIPreferences.callsign()); +		JTextField callsign_value = new JTextField(AltosUIPreferences.callsign());  		callsign_value.getDocument().addDocumentListener(this); -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.BOTH; -		c.anchor = GridBagConstraints.WEST; -		pane.add(callsign_value, c);  		callsign_value.setToolTipText("Callsign sent in packet mode"); +		pane.add(callsign_value, constraints(1, 2, GridBagConstraints.BOTH)); +		row++; +	} -		/* Imperial units setting */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Imperial Units"), c); - -		imperial_units = new JRadioButton("Enable", AltosUIPreferences.imperial_units()); -		imperial_units.addActionListener(new ActionListener() { -				public void actionPerformed(ActionEvent e) { -					JRadioButton item = (JRadioButton) e.getSource(); -					boolean enabled = item.isSelected(); -					AltosUIPreferences.set_imperial_units(enabled); -				} -			}); -		imperial_units.setToolTipText("Use Imperial units instead of metric"); - -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 3; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(imperial_units, c); - -		/* Font size setting */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Font size"), c); - -		font_size_value = new JComboBox(font_size_names); -		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; - -					AltosUIPreferences.set_font_size(size); -				} -			}); -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.BOTH; -		c.anchor = GridBagConstraints.WEST; -		pane.add(font_size_value, c); -		font_size_value.setToolTipText("Font size used in telemetry window"); - -		/* Look & Feel setting */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Look & feel"), c); - -		/* -		class LookAndFeelRenderer extends BasicComboBoxRenderer implements ListCellRenderer { - -			public LookAndFeelRenderer() { -				super(); -			} - -			public Component getListCellRendererComponent( -				JList list, -				Object value, -				int index, -				boolean isSelected, -				boolean cellHasFocus) -			{ -				super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); -				setText(((UIManager.LookAndFeelInfo) value).getName()); -				return this; -			} -		} -		*/ - -		final UIManager.LookAndFeelInfo[] look_and_feels = UIManager.getInstalledLookAndFeels(); - -		look_and_feel_value = new JComboBox(look_and_feels); - -		DelegatingRenderer.install(look_and_feel_value); - -		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); - -		look_and_feel_value.addActionListener(new ActionListener() { -				public void actionPerformed(ActionEvent e) { -					int	id = look_and_feel_value.getSelectedIndex(); - -					AltosUIPreferences.set_look_and_feel(look_and_feels[id].getClassName()); -				} -			}); -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.BOTH; -		c.anchor = GridBagConstraints.WEST; -		pane.add(look_and_feel_value, c); -		look_and_feel_value.setToolTipText("Look&feel used for new windows"); - -		/* Serial debug setting */ -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 1; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(new JLabel("Serial Debug"), c); - -		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(); -					AltosUIPreferences.set_serial_debug(enabled); -				} -			}); -		serial_debug.setToolTipText("Enable/Disable USB I/O getting sent to the console"); - -		c.gridx = 1; -		c.gridy = row++; -		c.gridwidth = 3; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(serial_debug, c); - -		manage_bluetooth = new JButton("Manage Bluetooth"); +	public void add_bluetooth() { +		JButton manage_bluetooth = new JButton("Manage Bluetooth");  		manage_bluetooth.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					AltosBTManage.show(owner, AltosBTKnown.bt_known());  				}  			}); -		c.gridx = 0; -		c.gridy = row; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(manage_bluetooth, c); +		pane.add(manage_bluetooth, constraints(0, 2)); +		/* in the same row as add_frequencies, so don't bump row */ +	} -		manage_frequencies = new JButton("Manage Frequencies"); +	public void add_frequencies() { +		JButton manage_frequencies = new JButton("Manage Frequencies");  		manage_frequencies.addActionListener(new ActionListener() {  				public void actionPerformed(ActionEvent e) {  					AltosConfigFreqUI.show(owner);  				}  			});  		manage_frequencies.setToolTipText("Configure which values are shown in frequency menus"); -		c.gridx = 2; -		c.gridx = 2; -		c.gridy = row++; -		c.gridwidth = 2; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.WEST; -		pane.add(manage_frequencies, c); +		pane.add(manage_frequencies, constraints(2, 1)); +		row++; +	} -		/* And a close button at the bottom */ -		close = new JButton("Close"); -		close.addActionListener(new ActionListener() { -				public void actionPerformed(ActionEvent e) { -					setVisible(false); -				} -			}); -		c.gridx = 0; -		c.gridy = row++; -		c.gridwidth = 3; -		c.fill = GridBagConstraints.NONE; -		c.anchor = GridBagConstraints.CENTER; -		pane.add(close, c); +	public AltosConfigureUI(JFrame owner, AltosVoice voice) { +		super(owner); -		pack(); -		setLocationRelativeTo(owner); -		setVisible(true); +		this.voice = voice;  	}  } | 
