Add graphing.
[fw/altos] / ao-tools / altosui / AltosUI.java
index 3aaeb888380c5400caed334476238da980e166a6..ad02f2ef990149ae21325a99699418fe84cf2745 100644 (file)
@@ -70,8 +70,22 @@ public class AltosUI extends JFrame {
 
        public AltosVoice voice = new AltosVoice();
 
+       public static boolean load_library(Frame frame) {
+               if (!AltosDevice.load_library()) {
+                       JOptionPane.showMessageDialog(frame,
+                                                     String.format("No AltOS library in \"%s\"",
+                                                                   System.getProperty("java.library.path","<undefined>")),
+                                                     "Cannot load device access library",
+                                                     JOptionPane.ERROR_MESSAGE);
+                       return false;
+               }
+               return true;
+       }
+
        public AltosUI() {
 
+               load_library(null);
+
                String[] statusNames = { "Height (m)", "State", "RSSI (dBm)", "Speed (m/s)" };
                Object[][] statusData = { { "0", "pad", "-50", "0" } };
 
@@ -509,7 +523,8 @@ public class AltosUI extends JFrame {
        }
 
        private void ConnectToDevice() {
-               AltosDevice     device = AltosDeviceDialog.show(AltosUI.this, AltosDevice.BaseStation);
+               AltosDevice     device = AltosDeviceDialog.show(AltosUI.this,
+                                                               AltosDevice.product_basestation);
 
                if (device != null) {
                        try {
@@ -652,6 +667,13 @@ public class AltosUI extends JFrame {
                new AltosCSVUI(AltosUI.this);
        }
 
+       /* Load a flight log CSV file and display a pretty graph.
+        */
+
+       private void GraphData() {
+               new AltosGraphUI(AltosUI.this);
+       }
+
        /* Create the AltosUI menus
         */
        private void createMenu() {
@@ -698,6 +720,14 @@ public class AltosUI extends JFrame {
                                });
                        menu.add(item);
 
+                       item = new JMenuItem("Graph Data",KeyEvent.VK_F);
+                       item.addActionListener(new ActionListener() {
+                                       public void actionPerformed(ActionEvent e) {
+                                               GraphData();
+                                       }
+                               });
+                       menu.add(item);
+
                        item = new JMenuItem("Quit",KeyEvent.VK_Q);
                        item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,
                                                                   ActionEvent.CTRL_MASK));
@@ -880,4 +910,4 @@ public class AltosUI extends JFrame {
                        altosui.setVisible(true);
                }
        }
-}
\ No newline at end of file
+}