altosui: Use altosuilib for configuration
authorKeith Packard <keithp@keithp.com>
Wed, 2 Jan 2013 17:06:41 +0000 (09:06 -0800)
committerKeith Packard <keithp@keithp.com>
Wed, 2 Jan 2013 17:06:41 +0000 (09:06 -0800)
Start moving to shared UI code

Signed-off-by: Keith Packard <keithp@keithp.com>
altosui/AltosConfigureUI.java
altosui/Makefile.am
altosuilib/AltosUIConfigure.java
altosuilib/Makefile.am

index c576b052f71f2db15e9360ba253fbfc9762ad2fa..0e411b03e4dfc7f87fc4641f40f9a86c1bfb18d2 100644 (file)
@@ -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;
        }
 }
index a42426cdef0a1e3ab1542923a4c2a613f6928be2..494539ae8ff997bcbe272a9896b88123819c74de 100644 (file)
@@ -6,7 +6,7 @@ man_MANS=altosui.1
 
 altoslibdir=$(libdir)/altos
 
-CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH=".:classes:../altoslib/*:../libaltos:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar:$(FREETTS)/freetts.jar"
+CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH="./*:$(JAVAROOT):../libaltos:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar:$(FREETTS)/freetts.jar"
 
 bin_SCRIPTS=altosui
 
@@ -109,6 +109,9 @@ FREETTS_CLASS= \
 ALTOSLIB_CLASS=\
        AltosLib.jar
 
+ALTOSUILIB_CLASS=\
+       altosuilib.jar
+
 LIBALTOS= \
        libaltos.so \
        libaltos.dylib \
@@ -172,7 +175,7 @@ LINUX_DIST=Altos-Linux-$(VERSION).tar.bz2
 MACOSX_DIST=Altos-Mac-$(VERSION).zip
 WINDOWS_DIST=Altos-Windows-$(VERSION_DASH).exe
 
-FAT_FILES=$(FATJAR) $(ALTOSLIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS)
+FAT_FILES=$(FATJAR) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS)
 
 LINUX_FILES=$(FAT_FILES) libaltos.so $(FIRMWARE) $(DOC)
 LINUX_EXTRA=altosui-fat
@@ -187,7 +190,7 @@ all-local: classes/altosui $(JAR) altosui altosui-test altosui-jdb
 
 clean-local:
        -rm -rf classes $(JAR) $(FATJAR) \
-               $(LINUX_DIST) $(MACOSX_DIST) windows $(WINDOWS_DIST) $(ALTOSLIB_CLASS) $(FREETTS_CLASS) \
+               $(LINUX_DIST) $(MACOSX_DIST) windows $(WINDOWS_DIST) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) \
                $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) Manifest.txt Manifest-fat.txt altos-windows.log \
                altosui altosui-test altosui-jdb macosx linux
 
@@ -229,13 +232,13 @@ install-altosuiJAVA: altosui.jar
 classes/altosui:
        mkdir -p classes/altosui
 
-$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS)
+$(JAR): classaltosui.stamp Manifest.txt $(JAVA_ICONS) $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS)
        jar cfm $@ Manifest.txt \
                $(ICONJAR) \
                -C classes altosui \
                -C ../libaltos libaltosJNI
 
-$(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) $(JAVA_ICONS)
+$(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS_CLASS) $(JFREECHART_CLASS) $(JCOMMON_CLASS) $(LIBALTOS) $(JAVA_ICONS)
        jar cfm $@ Manifest-fat.txt \
                $(ICONJAR) \
                -C classes altosui \
@@ -243,25 +246,25 @@ $(FATJAR): classaltosui.stamp Manifest-fat.txt $(ALTOSLIB_CLASS) $(FREETTS_CLASS
 
 Manifest.txt: Makefile
        echo 'Main-Class: altosui.AltosUI' > $@
-       echo "Class-Path: AltosLib.jar $(FREETTS)/freetts.jar $(JCOMMON)/jcommon.jar $(JFREECHART)/jfreechart.jar" >> $@
+       echo "Class-Path: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) $(FREETTS)/freetts.jar $(JCOMMON)/jcommon.jar $(JFREECHART)/jfreechart.jar" >> $@
 
 Manifest-fat.txt:
        echo 'Main-Class: altosui.AltosUI' > $@
-       echo "Class-Path: AltosLib.jar freetts.jar jcommon.jar jfreechart.jar" >> $@
+       echo "Class-Path: $(ALTOSLIB_CLASS) $(ALTOSUILIB_CLASS) freetts.jar jcommon.jar jfreechart.jar" >> $@
 
 altosui: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec java  -cp "$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="$(altoslibdir)" -jar "$(altosuidir)/altosui.jar" "$$@"' >> $@
+       echo 'exec java -Djava.library.path="$(altoslibdir)" -jar "$(altosuidir)/altosui.jar" "$$@"' >> $@
        chmod +x $@
 
 altosui-test: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec java -cp "./*:../libaltos:$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="../libaltos/.libs" -jar altosui.jar "$$@"' >> $@
+       echo 'exec java -Djava.library.path="../libaltos/.libs" -jar altosui.jar "$$@"' >> $@
        chmod +x $@
 
 altosui-jdb: Makefile
        echo "#!/bin/sh" > $@
-       echo 'exec jdb -classpath "classes:../libaltos:$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="../libaltos/.libs" altosui/AltosUI "$$@"' >> $@
+       echo 'exec jdb -classpath "classes:./*:../libaltos:$(FREETTS)/freetts.jar:$(JCOMMON)/jcommon.jar:$(JFREECHART)/jfreechart.jar" -Djava.library.path="../libaltos/.libs" altosui/AltosUI "$$@"' >> $@
        chmod +x $@
 
 libaltos.so: build-libaltos
@@ -298,6 +301,10 @@ $(ALTOSLIB_CLASS):
        -rm -f "$@"
        $(LN_S) ../altoslib/"$@" .
 
+$(ALTOSUILIB_CLASS):
+       -rm -f "$@"
+       $(LN_S) ../altosuilib/"$@" .
+
 $(FREETTS_CLASS):
        -rm -f "$@"
        $(LN_S) "$(FREETTS)"/"$@" .
@@ -329,6 +336,7 @@ $(MACOSX_DIST): $(MACOSX_FILES) $(MACOSX_EXTRA)
        cp -p $(FATJAR) macosx/AltosUI.app/Contents/Resources/Java/altosui.jar
        cp -p libaltos.dylib macosx/AltosUI.app/Contents/Resources/Java
        cp -p $(ALTOSLIB_CLASS) macosx/AltosUI.app/Contents/Resources/Java
+       cp -p $(ALTOSUILIB_CLASS) macosx/AltosUI.app/Contents/Resources/Java
        cp -p $(FREETTS_CLASS) macosx/AltosUI.app/Contents/Resources/Java
        cp -p $(JFREECHART_CLASS) macosx/AltosUI.app/Contents/Resources/Java
        cp -p $(JCOMMON_CLASS) macosx/AltosUI.app/Contents/Resources/Java
index ef44f0bed9e4d9eb854d24a39a9b08aefde919c5..6c9a841e9a294e1eec33a1c64d37ac67385a5a64 100644 (file)
@@ -66,52 +66,14 @@ class DelegatingRenderer implements ListCellRenderer {
 
 public class AltosUIConfigure
        extends AltosUIDialog
-       implements DocumentListener
 {
-       JFrame          owner;
-       Container       pane;
+       public JFrame           owner;
+       public 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;
-
-       int             row;
+       public int              row;
 
        final static String[] font_size_names = { "Small", "Medium", "Large" };
 
-       /* DocumentListener interface methods */
-       public void changedUpdate(DocumentEvent e) {
-               if (callsign_value != null) 
-                       AltosUIPreferences.set_callsign(callsign_value.getText());
-       }
-
-       public void insertUpdate(DocumentEvent e) {
-               changedUpdate(e);
-       }
-
-       public void removeUpdate(DocumentEvent e) {
-               changedUpdate(e);
-       }
-
        public GridBagConstraints constraints (int x, int width, int fill) {
                GridBagConstraints c = new GridBagConstraints();
                Insets insets = new Insets(4, 4, 4, 4);
@@ -120,6 +82,8 @@ public class AltosUIConfigure
                c.fill = fill;
                if (width == 3)
                        c.anchor = GridBagConstraints.CENTER;
+               else if (x == 2)
+                       c.anchor = GridBagConstraints.EAST;
                else
                        c.anchor = GridBagConstraints.WEST;
                c.gridx = x;
@@ -133,59 +97,13 @@ public class AltosUIConfigure
        }
 
        public void add_voice() {
-//             GridBagConstraints c = new GridBagConstraints();
-//
-//             /* 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);
-//
-//             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();
-//                                     AltosUIPreferences.set_voice(enabled);
-//                                     if (enabled)
-//                                             voice.speak_always("Enable voice.");
-//                                     else
-//                                             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);
-//             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");
-//             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);
-//             test_voice.setToolTipText("Play a stock audio clip to check volume");
-//             row++;
        }
 
        public void add_log_dir() {
                /* Log directory settings */
                pane.add(new JLabel("Log Directory"), constraints(0, 1));
 
-               configure_log = new JButton(AltosUIPreferences.logdir().getPath());
+               final JButton configure_log = new JButton(AltosUIPreferences.logdir().getPath());
                configure_log.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        AltosUIPreferences.ConfigureLog();
@@ -198,21 +116,13 @@ public class AltosUIConfigure
        }
 
        public void add_callsign() {
-//             /* Callsign setting */
-//             pane.add(new JLabel("Callsign"), constraints(0, 1));
-//
-//             callsign_value = new JTextField(AltosUIPreferences.callsign());
-//             callsign_value.getDocument().addDocumentListener(this);
-//             callsign_value.setToolTipText("Callsign sent in packet mode");
-//             pane.add(callsign_value, constraints(1, 2, GridBagConstraints.BOTH));
-//             row++;
        }
 
        public void add_units() {
                /* Imperial units setting */
                pane.add(new JLabel("Imperial Units"), constraints(0, 1));
 
-               imperial_units = new JRadioButton("Enable", AltosUIPreferences.imperial_units());
+               JRadioButton imperial_units = new JRadioButton("Enable", AltosUIPreferences.imperial_units());
                imperial_units.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        JRadioButton item = (JRadioButton) e.getSource();
@@ -229,7 +139,7 @@ public class AltosUIConfigure
                /* Font size setting */
                pane.add(new JLabel("Font size"), constraints(0, 1));
 
-               font_size_value = new JComboBox(font_size_names);
+               final JComboBox font_size_value = new JComboBox(font_size_names);
                int font_size = AltosUIPreferences.font_size();
                font_size_value.setSelectedIndex(font_size - AltosUILib.font_size_small);
                font_size_value.addActionListener(new ActionListener() {
@@ -271,7 +181,7 @@ public class AltosUIConfigure
 
                final UIManager.LookAndFeelInfo[] look_and_feels = UIManager.getInstalledLookAndFeels();
 
-               look_and_feel_value = new JComboBox(look_and_feels);
+               final JComboBox look_and_feel_value = new JComboBox(look_and_feels);
 
                DelegatingRenderer.install(look_and_feel_value);
 
@@ -298,7 +208,7 @@ public class AltosUIConfigure
                /* Serial debug setting */
                pane.add(new JLabel("Serial Debug"), constraints(0, 1));
 
-               serial_debug = new JRadioButton("Enable", AltosUIPreferences.serial_debug());
+               JRadioButton serial_debug = new JRadioButton("Enable", AltosUIPreferences.serial_debug());
                serial_debug.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        JRadioButton item = (JRadioButton) e.getSource();
@@ -307,47 +217,18 @@ public class AltosUIConfigure
                                }
                        });
                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);
        }
 
        public void add_bluetooth() {
-//             GridBagConstraints c = new GridBagConstraints();
-//             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");
-//             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);
        }
 
        public void add_frequencies() {
-//             GridBagConstraints c = new GridBagConstraints();
-//             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);
        }
 
        public AltosUIConfigure(JFrame in_owner) {
@@ -378,7 +259,7 @@ public class AltosUIConfigure
                add_frequencies();
 
                /* And a close button at the bottom */
-               close = new JButton("Close");
+               JButton close = new JButton("Close");
                close.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        setVisible(false);
index d93d941519b7963ee52ae0bd5ae4c0e6548c1e5b..d4aa011693b31a54d8d21e8740480d8d3d768fb4 100644 (file)
@@ -2,14 +2,13 @@ AM_JAVACFLAGS=-encoding UTF-8 -Xlint:deprecation
 
 JAVAROOT=bin
 
-CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH="bin:../altoslib/*:../libaltos:$(FREETTS)/*:/usr/share/java/*"
+CLASSPATH_ENV=mkdir -p $(JAVAROOT); CLASSPATH="$(JAVAROOT):../altoslib/*:../libaltos:/usr/share/java/*"
 
 SRC=.
-BIN=bin/org/altusmetrum/AltosUILib
 
-AltosUILibdir = $(datadir)/java
+altosuilibdir = $(datadir)/java
 
-AltosUILib_JAVA = \
+altosuilib_JAVA = \
        AltosUIConfigure.java \
        AltosDevice.java \
        AltosDeviceDialog.java \
@@ -24,21 +23,21 @@ AltosUILib_JAVA = \
        AltosUIVersion.java \
        AltosUnitsListener.java
 
-JAR=AltosUILib.jar
+JAR=altosuilib.jar
 
 all-local: $(JAR)
 
 clean-local:
-       -rm -rf bin $(JAR)
+       -rm -rf $(JAVAROOT) $(JAR)
 
-install-AltosUILibJAVA: $(JAR)
+install-altosuilibjava: $(JAR)
        @$(NORMAL_INSTALL)
-       test -z "$(AltosUILibdir)" || $(MKDIR_P) "$(DESTDIR)$(AltosUILibdir)"
-       echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(AltosUILibdir)/$(JAR)"; \
-       $(INSTALL_DATA) "$<" "$(DESTDIR)$(AltosUILibdir)"
+       test -z "$(altosuilibdir)" || $(MKDIR_P) "$(DESTDIR)$(altosuilibdir)"
+       echo " $(INSTALL_DATA)" "$<" "'$(DESTDIR)$(altosuilibdir)/$(JAR)"; \
+       $(INSTALL_DATA) "$<" "$(DESTDIR)$(altosuilibdir)"
 
-bin:
-       mkdir -p bin
+$(JAVAROOT):
+       mkdir -p $(JAVAROOT)
 
-$(JAR): classAltosUILib.stamp
-       jar cf $@ -C bin org
+$(JAR): classaltosuilib.stamp
+       jar cf $@ -C $(JAVAROOT) .