doc: new TeleLaunch system manual
[fw/altos] / altosuilib / AltosEepromSelect.java
index 2c9d10cf84dccc5693994e145b5b6cea1d8c581c..427826fad46b49feb40fdb2b8ed0bf99fa3975b7 100644 (file)
@@ -3,7 +3,8 @@
  *
  * 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.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
  */
 
-package org.altusmetrum.altosuilib_7;
+package org.altusmetrum.altosuilib_13;
 
 import javax.swing.*;
 import javax.swing.border.*;
 import java.awt.*;
 import java.awt.event.*;
-import org.altusmetrum.altoslib_7.*;
+import org.altusmetrum.altoslib_13.*;
 
 class AltosEepromItem implements ActionListener {
        AltosEepromLog  log;
        JLabel          label;
-       JCheckBox       action;
+       JCheckBox       download;
        JCheckBox       delete;
+       JCheckBox       graph;
 
        public void actionPerformed(ActionEvent e) {
-               log.selected = action.isSelected();
+               log.download_selected = download.isSelected();
+               log.delete_selected = delete.isSelected();
+               log.graph_selected = graph.isSelected();
        }
 
        public AltosEepromItem(AltosEepromLog in_log) {
                log = in_log;
 
                String  text;
-               if (log.year != 0)
-                       text = String.format("Flight #%02d - %04d-%02d-%02d",
-                                            log.flight, log.year, log.month, log.day);
-               else
+               if (log.flight >= 0)
                        text = String.format("Flight #%02d", log.flight);
+               else
+                       text = String.format("Corrupt #%02d", -log.flight);
 
                label = new JLabel(text);
 
-               action = new JCheckBox("", log.selected);
-               action.addActionListener(this);
+               download = new JCheckBox("", log.download_selected);
+               download.addActionListener(this);
+
+               delete = new JCheckBox("", log.delete_selected);
+               delete.addActionListener(this);
+
+               graph = new JCheckBox("", log.graph_selected);
+               graph.addActionListener(this);
        }
 }
 
@@ -75,7 +84,7 @@ public class AltosEepromSelect extends AltosUIDialog implements ActionListener {
 
        public AltosEepromSelect (JFrame in_frame,
                                  AltosEepromList flights,
-                                 String action) {
+                                 boolean has_graph) {
 
                super(in_frame, String.format("Flight list for serial %d", flights.config_data.serial), true);
                frame = in_frame;
@@ -84,7 +93,7 @@ public class AltosEepromSelect extends AltosUIDialog implements ActionListener {
                Container contentPane = getContentPane();
 
                /* First, we create a pane containing the dialog's header/title */
-               JLabel  selectLabel = new JLabel(String.format ("Select flights to %s", action), SwingConstants.CENTER);
+               JLabel  selectLabel = new JLabel(String.format ("Select flights"), SwingConstants.CENTER);
 
                JPanel  labelPane = new JPanel();
                labelPane.setLayout(new BoxLayout(labelPane, BoxLayout.X_AXIS));
@@ -121,9 +130,31 @@ public class AltosEepromSelect extends AltosUIDialog implements ActionListener {
                c.weightx = 0.5;
                c.anchor = GridBagConstraints.CENTER;
                c.insets = i;
-               JLabel downloadHeaderLabel = new JLabel(action);
+               JLabel downloadHeaderLabel = new JLabel("Download");
                flightPane.add(downloadHeaderLabel, c);
 
+               /* Delete Header */
+               c = new GridBagConstraints();
+               c.gridx = 2; c.gridy = 0;
+               c.fill = GridBagConstraints.NONE;
+               c.weightx = 0.5;
+               c.anchor = GridBagConstraints.CENTER;
+               c.insets = i;
+               JLabel deleteHeaderLabel = new JLabel("Delete");
+               flightPane.add(deleteHeaderLabel, c);
+
+               if (has_graph) {
+                       /* Graph Header */
+                       c = new GridBagConstraints();
+                       c.gridx = 3; c.gridy = 0;
+                       c.fill = GridBagConstraints.NONE;
+                       c.weightx = 0.5;
+                       c.anchor = GridBagConstraints.CENTER;
+                       c.insets = i;
+                       JLabel graphHeaderLabel = new JLabel("Graph");
+                       flightPane.add(graphHeaderLabel, c);
+               }
+
                /* Add the flights to the GridBag */
                AltosEepromItem item;
                int itemNumber = 1;
@@ -142,14 +173,34 @@ public class AltosEepromSelect extends AltosUIDialog implements ActionListener {
                        c.insets = i;
                        flightPane.add(item.label, c);
 
-                       /* Add action checkbox for the flight */
+                       /* Add download checkbox for the flight */
                        c = new GridBagConstraints();
                        c.gridx = 1; c.gridy = itemNumber;
                        c.fill = GridBagConstraints.NONE;
                        c.weightx = 0.5;
                        c.anchor = GridBagConstraints.CENTER;
                        c.insets = i;
-                       flightPane.add(item.action, c);
+                       flightPane.add(item.download, c);
+
+                       /* Add delete checkbox for the flight */
+                       c = new GridBagConstraints();
+                       c.gridx = 2; c.gridy = itemNumber;
+                       c.fill = GridBagConstraints.NONE;
+                       c.weightx = 0.5;
+                       c.anchor = GridBagConstraints.CENTER;
+                       c.insets = i;
+                       flightPane.add(item.delete, c);
+
+                       if (has_graph) {
+                               /* Add graph checkbox for the flight */
+                               c = new GridBagConstraints();
+                               c.gridx = 3; c.gridy = itemNumber;
+                               c.fill = GridBagConstraints.NONE;
+                               c.weightx = 0.5;
+                               c.anchor = GridBagConstraints.CENTER;
+                               c.insets = i;
+                               flightPane.add(item.graph, c);
+                       }
 
                        itemNumber++;
                }