micropeak: Add flight stats pane
[fw/altos] / micropeak / MicroPeak.java
index cd09c475312d24caa9ba2e3b0953a03ffc2e3888..c69f7167904df828f9a103927fa1efec28dd3cb5 100644 (file)
@@ -24,18 +24,22 @@ import java.io.*;
 import java.util.concurrent.*;
 import java.util.*;
 import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altosuilib.*;
 
-public class MicroPeak extends JFrame implements ActionListener, ItemListener {
+public class MicroPeak extends MicroFrame implements ActionListener, ItemListener {
 
        File            filename;
        MicroGraph      graph;
+       MicroStatsTable stats;
        MicroData       data;
-       Container       pane;
+       Container       container;
+       JTabbedPane     pane;
 
        private void RunFile(InputStream input) {
                try {
                        data = new MicroData(input);
                        graph.setData(data);
+                       stats.setData(data);
                } catch (IOException ioe) {
                }
                try {
@@ -59,6 +63,10 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
                        RunFile(input);
        }
 
+       private void Preferences() {
+               new AltosConfigureUI(this);
+       }
+               
        private void DownloadData() {
                java.util.List<MicroUSB>        devices = MicroUSB.list();
                for (MicroUSB device : devices)
@@ -66,7 +74,6 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
        }
 
        public void actionPerformed(ActionEvent ev) {
-               System.out.printf("action %s %s\n", ev.getActionCommand(), ev.paramString());
                if ("Exit".equals(ev.getActionCommand()))
                        System.exit(0);
                else if ("Open".equals(ev.getActionCommand()))
@@ -75,6 +82,8 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
                        new MicroPeak();
                else if ("Download".equals(ev.getActionCommand()))
                        DownloadData();
+               else if ("Preferences".equals(ev.getActionCommand()))
+                       Preferences();
        }
 
        public void itemStateChanged(ItemEvent e) {
@@ -82,9 +91,10 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
 
        public MicroPeak() {
 
-               this.filename = filename;
+               AltosUIPreferences.set_component(this);
 
-               pane = getContentPane();
+               container = getContentPane();
+               pane = new JTabbedPane();
 
                setTitle("MicroPeak");
 
@@ -106,6 +116,10 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
                fileMenu.add(downloadAction);
                downloadAction.addActionListener(this);
 
+               JMenuItem preferencesAction = new JMenuItem("Preferences");
+               fileMenu.add(preferencesAction);
+               preferencesAction.addActionListener(this);
+
                JMenuItem exitAction = new JMenuItem("Exit");
                fileMenu.add(exitAction);
                exitAction.addActionListener(this);
@@ -118,10 +132,15 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
                        }
                });
 
-               graph = new MicroGraph(data);
-               pane.add(graph.panel);
+               graph = new MicroGraph();
+               stats = new MicroStatsTable();
+               pane.add(graph.panel, "Graph");
+               pane.add(stats, "Statistics");
                pane.doLayout();
                pane.validate();
+               container.add(pane);
+               container.doLayout();
+               container.validate();
                doLayout();
                validate();
                Insets i = getInsets();
@@ -136,6 +155,11 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
        public static void main(final String[] args) {
                boolean opened = false;
 
+               try {
+                       UIManager.setLookAndFeel(AltosUIPreferences.look_and_feel());
+               } catch (Exception e) {
+               }
+
                for (int i = 0; i < args.length; i++) {
                        MicroPeak m = new MicroPeak();
                        m.OpenFile(new File(args[i]));