diff options
author | Keith Packard <keithp@keithp.com> | 2010-11-19 22:44:48 -0800 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2010-11-19 22:48:11 -0800 |
commit | 594e80572821f1848db062d0cff18ca8bf0d90ce (patch) | |
tree | 10a626e1752894b540af115c9e4d12ff089885b8 /ao-tools/altosui/AltosChannelMenu.java | |
parent | fa07afc73bc5eccff8464a2def05ad600da33c97 (diff) |
altosui: switch channel selector to combo box. Shorten displayed device names
A combo box displays the current value, which is quite nice to
have. Add a 'toShortString' for AltosDevice so that the window frames
and error messages don't have extra spaces generated by the
altos_device toString method.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/altosui/AltosChannelMenu.java')
-rw-r--r-- | ao-tools/altosui/AltosChannelMenu.java | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/ao-tools/altosui/AltosChannelMenu.java b/ao-tools/altosui/AltosChannelMenu.java index 504c13c6..8069c853 100644 --- a/ao-tools/altosui/AltosChannelMenu.java +++ b/ao-tools/altosui/AltosChannelMenu.java @@ -28,8 +28,7 @@ import java.text.*; import java.util.prefs.*; import java.util.concurrent.LinkedBlockingQueue; -public class AltosChannelMenu extends JMenu implements ActionListener { - ButtonGroup group; +public class AltosChannelMenu extends JComboBox implements ActionListener { int channel; LinkedList<ActionListener> listeners; @@ -38,33 +37,28 @@ public class AltosChannelMenu extends JMenu implements ActionListener { } public void actionPerformed(ActionEvent e) { - channel = Integer.parseInt(e.getActionCommand()); + channel = getSelectedIndex(); + + ActionEvent newe = new ActionEvent(this, channel, e.getActionCommand()); ListIterator<ActionListener> i = listeners.listIterator(); - ActionEvent newe = new ActionEvent(this, channel, e.getActionCommand()); while (i.hasNext()) { ActionListener listener = i.next(); listener.actionPerformed(newe); } + setMaximumSize(getPreferredSize()); } public AltosChannelMenu(int current_channel) { - super("Channel", true); - group = new ButtonGroup(); channel = current_channel; listeners = new LinkedList<ActionListener>(); - for (int c = 0; c <= 9; c++) { - JRadioButtonMenuItem radioitem = new JRadioButtonMenuItem(String.format("Channel %1d (%7.3fMHz)", c, - 434.550 + c * 0.1), - c == channel); - radioitem.setActionCommand(String.format("%d", c)); - radioitem.addActionListener(this); - add(radioitem); - group.add(radioitem); - } + for (int c = 0; c <= 9; c++) + addItem(String.format("Channel %1d (%7.3fMHz)", c, 434.550 + c * 0.1)); + setSelectedIndex(channel); + setMaximumRowCount(10); } } |