docs: Document altosui "Graph Data" button
[fw/altos] / ao-tools / altosui / AltosConfigUI.java
index 9e3856b04f1555a425808dec51dfa6d2d8a7a7d3..cfa5d7b9ee7b5982d7b497d8aaeeb448ef35f38e 100644 (file)
@@ -61,6 +61,7 @@ public class AltosConfigUI
 
        JButton         save;
        JButton         reset;
+       JButton         reboot;
        JButton         close;
 
        ActionListener  listener;
@@ -92,12 +93,12 @@ public class AltosConfigUI
                public void windowClosing(WindowEvent e) {
                        ui.actionPerformed(new ActionEvent(e.getSource(),
                                                           ActionEvent.ACTION_PERFORMED,
-                                                          "close"));
+                                                          "Close"));
                }
        }
 
        /* Build the UI using a grid bag */
-       public AltosConfigUI(JFrame in_owner) {
+       public AltosConfigUI(JFrame in_owner, boolean remote) {
                super (in_owner, "Configure TeleMetrum", false);
 
                owner = in_owner;
@@ -112,7 +113,7 @@ public class AltosConfigUI
                /* Product */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 0;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -120,8 +121,8 @@ public class AltosConfigUI
                pane.add(product_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 0;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 0;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -132,7 +133,7 @@ public class AltosConfigUI
                /* Version */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 1;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -141,8 +142,8 @@ public class AltosConfigUI
                pane.add(version_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 1;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 1;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -154,7 +155,7 @@ public class AltosConfigUI
                /* Serial */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 2;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -163,8 +164,8 @@ public class AltosConfigUI
                pane.add(serial_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 2;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 2;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -176,7 +177,7 @@ public class AltosConfigUI
                /* Main deploy */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 3;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -185,8 +186,8 @@ public class AltosConfigUI
                pane.add(main_deploy_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 3;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -200,7 +201,7 @@ public class AltosConfigUI
                /* Apogee delay */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 4;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -209,8 +210,8 @@ public class AltosConfigUI
                pane.add(apogee_delay_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 4;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 4;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -224,7 +225,7 @@ public class AltosConfigUI
                /* Radio channel */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 5;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -233,8 +234,8 @@ public class AltosConfigUI
                pane.add(radio_channel_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 5;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 5;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -243,12 +244,14 @@ public class AltosConfigUI
                radio_channel_value = new JComboBox(radio_channel_values);
                radio_channel_value.setEditable(false);
                radio_channel_value.addItemListener(this);
+               if (remote)
+                       radio_channel_value.setEnabled(false);
                pane.add(radio_channel_value, c);
 
                /* Radio Calibration */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 6;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -257,8 +260,8 @@ public class AltosConfigUI
                pane.add(radio_calibration_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 6;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 6;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
@@ -266,12 +269,14 @@ public class AltosConfigUI
                c.ipady = 5;
                radio_calibration_value = new JTextField(String.format("%d", 1186611));
                radio_calibration_value.getDocument().addDocumentListener(this);
+               if (remote)
+                       radio_calibration_value.setEnabled(false);
                pane.add(radio_calibration_value, c);
 
                /* Callsign */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 7;
-               c.gridwidth = 3;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
@@ -280,50 +285,61 @@ public class AltosConfigUI
                pane.add(callsign_label, c);
 
                c = new GridBagConstraints();
-               c.gridx = 3; c.gridy = 7;
-               c.gridwidth = 3;
+               c.gridx = 4; c.gridy = 7;
+               c.gridwidth = 4;
                c.fill = GridBagConstraints.HORIZONTAL;
                c.weightx = 1;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = ir;
                c.ipady = 5;
-               callsign_value = new JTextField("N0CALL");
+               callsign_value = new JTextField(AltosPreferences.callsign());
                callsign_value.getDocument().addDocumentListener(this);
                pane.add(callsign_value, c);
 
                /* Buttons */
                c = new GridBagConstraints();
                c.gridx = 0; c.gridy = 8;
-               c.gridwidth = 6;
+               c.gridwidth = 2;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_START;
                c.insets = il;
                save = new JButton("Save");
                pane.add(save, c);
                save.addActionListener(this);
-               save.setActionCommand("save");
+               save.setActionCommand("Save");
 
                c = new GridBagConstraints();
-               c.gridx = 0; c.gridy = 8;
-               c.gridwidth = 6;
+               c.gridx = 2; c.gridy = 8;
+               c.gridwidth = 2;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.CENTER;
                c.insets = il;
                reset = new JButton("Reset");
                pane.add(reset, c);
                reset.addActionListener(this);
-               reset.setActionCommand("reset");
+               reset.setActionCommand("Reset");
 
                c = new GridBagConstraints();
-               c.gridx = 0; c.gridy = 8;
-               c.gridwidth = 6;
+               c.gridx = 4; c.gridy = 8;
+               c.gridwidth = 2;
+               c.fill = GridBagConstraints.NONE;
+               c.anchor = GridBagConstraints.CENTER;
+               c.insets = il;
+               reboot = new JButton("Reboot");
+               pane.add(reboot, c);
+               reboot.addActionListener(this);
+               reboot.setActionCommand("Reboot");
+
+               c = new GridBagConstraints();
+               c.gridx = 6; c.gridy = 8;
+               c.gridwidth = 2;
                c.fill = GridBagConstraints.NONE;
                c.anchor = GridBagConstraints.LINE_END;
                c.insets = il;
                close = new JButton("Close");
                pane.add(close, c);
                close.addActionListener(this);
-               close.setActionCommand("close");
+               close.setActionCommand("Close");
 
                addWindowListener(new ConfigListener(this));
        }
@@ -336,12 +352,12 @@ public class AltosConfigUI
        }
 
        /* If any values have been changed, confirm before closing */
-       public boolean check_dirty() {
+       public boolean check_dirty(String operation) {
                if (dirty) {
-                       Object[] options = { "Close anyway", "Keep editing" };
+                       Object[] options = { String.format("%s anyway", operation), "Keep editing" };
                        int i;
                        i = JOptionPane.showOptionDialog(this,
-                                                        "Configuration modified, close anyway?",
+                                                        String.format("Configuration modified. %s anyway?", operation),
                                                         "Configuration Modified",
                                                         JOptionPane.DEFAULT_OPTION,
                                                         JOptionPane.WARNING_MESSAGE,
@@ -356,11 +372,11 @@ public class AltosConfigUI
        public void actionPerformed(ActionEvent e) {
                String  cmd = e.getActionCommand();
 
-               if (cmd.equals("close"))
-                       if (!check_dirty())
+               if (cmd.equals("Close") || cmd.equals("Reboot"))
+                       if (!check_dirty(cmd))
                                return;
                listener.actionPerformed(e);
-               if (cmd.equals("close")) {
+               if (cmd.equals("Close") || cmd.equals("Reboot")) {
                        setVisible(false);
                        dispose();
                }