altosui: eliminate menu bar, moving elements to buttons.
authorKeith Packard <keithp@keithp.com>
Mon, 15 Nov 2010 14:38:35 +0000 (22:38 +0800)
committerKeith Packard <keithp@keithp.com>
Mon, 15 Nov 2010 14:38:35 +0000 (22:38 +0800)
This adds a new 'configure AltosUI' dialog to set the log directory
and voice preferences.

Signed-off-by: Keith Packard <keithp@keithp.com>
ao-tools/altosui/AltosConfigureUI.java [new file with mode: 0644]
ao-tools/altosui/AltosUI.java
ao-tools/altosui/Makefile.am

diff --git a/ao-tools/altosui/AltosConfigureUI.java b/ao-tools/altosui/AltosConfigureUI.java
new file mode 100644 (file)
index 0000000..88c180f
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ * Copyright © 2010 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.awt.*;
+import java.awt.event.*;
+import javax.swing.*;
+import javax.swing.filechooser.FileNameExtensionFilter;
+import javax.swing.table.*;
+import java.io.*;
+import java.util.*;
+import java.text.*;
+import java.util.prefs.*;
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class AltosConfigureUI extends JDialog {
+       JFrame          owner;
+       AltosVoice      voice;
+       Container       pane;
+
+       JRadioButton    enable_voice;
+       JButton         test_voice;
+       JButton         close;
+
+       JButton         configure_log;
+       JTextField      log_directory;
+
+       public AltosConfigureUI(JFrame in_owner, AltosVoice in_voice) {
+               super(in_owner, "Configure AltosUI", false);
+
+               GridBagConstraints      c;
+
+               Insets insets = new Insets(4, 4, 4, 4);
+
+               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.CENTER;
+
+               /* Enable Voice */
+               c.gridx = 0;
+               c.gridy = 0;
+               enable_voice = new JRadioButton("Enable Voice", AltosPreferences.voice());
+               enable_voice.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       JRadioButton item = (JRadioButton) e.getSource();
+                                       boolean enabled = item.isSelected();
+                                       AltosPreferences.set_voice(enabled);
+                                       if (enabled)
+                                               voice.speak_always("Enable voice.");
+                                       else
+                                               voice.speak_always("Disable voice.");
+                               }
+                       });
+               pane.add(enable_voice, c);
+               c.gridx = 1;
+               c.gridy = 0;
+               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);
+
+               close = new JButton("Close");
+               close.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       setVisible(false);
+                               }
+                       });
+               c.gridx = 0;
+               c.gridy = 3;
+               c.gridwidth = 2;
+               pane.add(close, c);
+
+               configure_log = new JButton("Configure Log");
+               configure_log.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       AltosPreferences.ConfigureLog();
+                                       log_directory.setText(AltosPreferences.logdir().getPath());
+                               }
+                       });
+               c.gridwidth = 1;
+
+               c.gridx = 0;
+               c.gridy = 2;
+               pane.add(configure_log, c);
+
+               log_directory = new JTextField(AltosPreferences.logdir().getPath());
+               c.gridx = 1;
+               c.gridy = 2;
+               c.fill = GridBagConstraints.BOTH;
+               pane.add(log_directory, c);
+
+               pack();
+               setLocationRelativeTo(owner);
+               setVisible(true);
+       }
+}
index a2e416bad59308548b9099baa927e7e3817dff81..bedf24598c2bd29406dcf304dc093176b3073e49 100644 (file)
@@ -144,9 +144,28 @@ public class AltosUI extends JFrame {
                                        }
                                });
 
                                        }
                                });
 
-               setTitle("AltOS");
+               b = addButton(0, 2, "Configure AltosUI");
+               b.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       ConfigureAltosUI();
+                               }
+                       });
+
+               b = addButton(1, 2, "Flash Image");
+               b.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       FlashImage();
+                               }
+                       });
+
+               b = addButton(2, 2, "Quit");
+               b.addActionListener(new ActionListener() {
+                               public void actionPerformed(ActionEvent e) {
+                                       System.exit(0);
+                               }
+                       });
 
 
-               createMenu();
+               setTitle("AltOS");
 
                pane.doLayout();
                pane.validate();
 
                pane.doLayout();
                pane.validate();
@@ -232,139 +251,8 @@ public class AltosUI extends JFrame {
                new AltosGraphUI(AltosUI.this);
        }
 
                new AltosGraphUI(AltosUI.this);
        }
 
-       /* Create the AltosUI menus
-        */
-       private void createMenu() {
-               JMenuBar menubar = new JMenuBar();
-               JMenu menu;
-               JMenuItem item;
-               JRadioButtonMenuItem radioitem;
-
-               // File menu
-               {
-                       menu = new JMenu("File");
-                       menu.setMnemonic(KeyEvent.VK_F);
-                       menubar.add(menu);
-
-                       item = new JMenuItem("Flash Image",KeyEvent.VK_I);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               FlashImage();
-                                       }
-                               });
-                       menu.add(item);
-
-                       item = new JMenuItem("Export Data",KeyEvent.VK_E);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               ExportData();
-                                       }
-                               });
-                       menu.add(item);
-
-                       item = new JMenuItem("Graph Data",KeyEvent.VK_G);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               GraphData();
-                                       }
-                               });
-                       menu.add(item);
-
-                       item = new JMenuItem("Quit",KeyEvent.VK_Q);
-                       item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
-                                                                  ActionEvent.CTRL_MASK));
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               System.out.printf("exiting\n");
-                                               System.exit(0);
-                                       }
-                               });
-                       menu.add(item);
-               }
-
-               // Device menu
-               if (false) {
-                       menu = new JMenu("Device");
-                       menu.setMnemonic(KeyEvent.VK_D);
-                       menubar.add(menu);
-
-                       item = new JMenuItem("Connect to Device",KeyEvent.VK_C);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               ConnectToDevice();
-                                       }
-                               });
-                       menu.add(item);
-
-                       menu.addSeparator();
-
-                       item = new JMenuItem("Set Callsign",KeyEvent.VK_S);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               ConfigureCallsign();
-                                       }
-                               });
-
-                       menu.add(item);
-
-                       item = new JMenuItem("Configure TeleMetrum device",KeyEvent.VK_T);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               ConfigureTeleMetrum();
-                                       }
-                               });
-
-                       menu.add(item);
-               }
-               // Log menu
-               {
-                       menu = new JMenu("Log");
-                       menu.setMnemonic(KeyEvent.VK_L);
-                       menubar.add(menu);
-
-                       item = new JMenuItem("New Log",KeyEvent.VK_N);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                       }
-                               });
-                       menu.add(item);
-
-                       item = new JMenuItem("Configure Log",KeyEvent.VK_C);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               AltosPreferences.ConfigureLog();
-                                       }
-                               });
-                       menu.add(item);
-               }
-               // Voice menu
-               {
-                       menu = new JMenu("Voice", true);
-                       menu.setMnemonic(KeyEvent.VK_V);
-                       menubar.add(menu);
-
-                       radioitem = new JRadioButtonMenuItem("Enable Voice", AltosPreferences.voice());
-                       radioitem.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               JRadioButtonMenuItem item = (JRadioButtonMenuItem) e.getSource();
-                                               boolean enabled = item.isSelected();
-                                               AltosPreferences.set_voice(enabled);
-                                               if (enabled)
-                                                       voice.speak_always("Enable voice.");
-                                               else
-                                                       voice.speak_always("Disable voice.");
-                                       }
-                               });
-                       menu.add(radioitem);
-                       item = new JMenuItem("Test Voice",KeyEvent.VK_T);
-                       item.addActionListener(new ActionListener() {
-                                       public void actionPerformed(ActionEvent e) {
-                                               voice.speak("That's one small step for man; one giant leap for mankind.");
-                                       }
-                               });
-                       menu.add(item);
-               }
-               this.setJMenuBar(menubar);
+       private void ConfigureAltosUI() {
+               new AltosConfigureUI(AltosUI.this, voice);
        }
 
        static AltosRecordIterable open_logfile(String filename) {
        }
 
        static AltosRecordIterable open_logfile(String filename) {
index d11ea3e29e770d514ff0af75b28314865f006e1d..8d0fe16eca2ec78e32f57e5b5b3b0806c7b6ac39 100644 (file)
@@ -14,6 +14,7 @@ altosui_JAVA = \
        AltosChannelMenu.java \
        AltosConfig.java \
        AltosConfigUI.java \
        AltosChannelMenu.java \
        AltosConfig.java \
        AltosConfigUI.java \
+       AltosConfigureUI.java \
        AltosConvert.java \
        AltosCRCException.java \
        AltosCSV.java \
        AltosConvert.java \
        AltosCRCException.java \
        AltosCSV.java \