docs: Document altosui "Graph Data" button
[fw/altos] / ao-tools / altosui / AltosConfigureUI.java
index 88c180f1f07a1f487fa4b3ddc9f5ccb774b1e85d..153c59fdedc719818f7fa605b8a2f825c30ac410 100644 (file)
@@ -22,13 +22,17 @@ import java.awt.event.*;
 import javax.swing.*;
 import javax.swing.filechooser.FileNameExtensionFilter;
 import javax.swing.table.*;
+import javax.swing.event.*;
 import java.io.*;
 import java.util.*;
 import java.text.*;
 import java.util.prefs.*;
 import java.util.concurrent.LinkedBlockingQueue;
 
-public class AltosConfigureUI extends JDialog {
+public class AltosConfigureUI
+       extends JDialog
+       implements DocumentListener
+{
        JFrame          owner;
        AltosVoice      voice;
        Container       pane;
@@ -40,6 +44,22 @@ public class AltosConfigureUI extends JDialog {
        JButton         configure_log;
        JTextField      log_directory;
 
+       JLabel          callsign_label;
+       JTextField      callsign_value;
+
+       /* DocumentListener interface methods */
+       public void changedUpdate(DocumentEvent e) {
+               AltosPreferences.set_callsign(callsign_value.getText());
+       }
+
+       public void insertUpdate(DocumentEvent e) {
+               changedUpdate(e);
+       }
+
+       public void removeUpdate(DocumentEvent e) {
+               changedUpdate(e);
+       }
+
        public AltosConfigureUI(JFrame in_owner, AltosVoice in_voice) {
                super(in_owner, "Configure AltosUI", false);
 
@@ -55,12 +75,25 @@ public class AltosConfigureUI extends JDialog {
                c = new GridBagConstraints();
                c.insets = insets;
                c.fill = GridBagConstraints.NONE;
-               c.anchor = GridBagConstraints.CENTER;
+               c.anchor = GridBagConstraints.WEST;
 
-               /* Enable Voice */
+               /* Nice label at the top */
                c.gridx = 0;
                c.gridy = 0;
-               enable_voice = new JRadioButton("Enable Voice", AltosPreferences.voice());
+               c.gridwidth = 3;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.CENTER;
+               pane.add(new JLabel ("Configure AltOS UI"), c);
+
+               /* Voice settings */
+               c.gridx = 0;
+               c.gridy = 1;
+               c.gridwidth = 1;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.WEST;
+               pane.add(new JLabel("Voice"), c);
+
+               enable_voice = new JRadioButton("Enable", AltosPreferences.voice());
                enable_voice.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        JRadioButton item = (JRadioButton) e.getSource();
@@ -72,9 +105,20 @@ public class AltosConfigureUI extends JDialog {
                                                voice.speak_always("Disable voice.");
                                }
                        });
-               pane.add(enable_voice, c);
                c.gridx = 1;
-               c.gridy = 0;
+               c.gridy = 1;
+               c.gridwidth = 1;
+               c.weightx = 1;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.WEST;
+               pane.add(enable_voice, c);
+
+               c.gridx = 2;
+               c.gridy = 1;
+               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) {
@@ -83,35 +127,58 @@ public class AltosConfigureUI extends JDialog {
                        });
                pane.add(test_voice, c);
 
-               close = new JButton("Close");
-               close.addActionListener(new ActionListener() {
-                               public void actionPerformed(ActionEvent e) {
-                                       setVisible(false);
-                               }
-                       });
+               /* Log directory settings */
                c.gridx = 0;
-               c.gridy = 3;
-               c.gridwidth = 2;
-               pane.add(close, c);
+               c.gridy = 2;
+               c.gridwidth = 1;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.WEST;
+               pane.add(new JLabel("Log Directory"), c);
 
-               configure_log = new JButton("Configure Log");
+               configure_log = new JButton(AltosPreferences.logdir().getPath());
                configure_log.addActionListener(new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                        AltosPreferences.ConfigureLog();
-                                       log_directory.setText(AltosPreferences.logdir().getPath());
+                                       configure_log.setText(AltosPreferences.logdir().getPath());
                                }
                        });
-               c.gridwidth = 1;
-
-               c.gridx = 0;
+               c.gridx = 1;
                c.gridy = 2;
+               c.gridwidth = 2;
+               c.fill = GridBagConstraints.BOTH;
+               c.anchor = GridBagConstraints.WEST;
                pane.add(configure_log, c);
 
-               log_directory = new JTextField(AltosPreferences.logdir().getPath());
+               /* Callsign setting */
+               c.gridx = 0;
+               c.gridy = 3;
+               c.gridwidth = 1;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.WEST;
+               pane.add(new JLabel("Callsign"), c);
+
+               callsign_value = new JTextField(AltosPreferences.callsign());
+               callsign_value.getDocument().addDocumentListener(this);
                c.gridx = 1;
-               c.gridy = 2;
+               c.gridy = 3;
+               c.gridwidth = 2;
                c.fill = GridBagConstraints.BOTH;
-               pane.add(log_directory, c);
+               c.anchor = GridBagConstraints.WEST;
+               pane.add(callsign_value, c);
+
+               /* 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 = 4;
+               c.gridwidth = 3;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.CENTER;
+               pane.add(close, c);
 
                pack();
                setLocationRelativeTo(owner);