micropeak: Use altosuilib
[fw/altos] / micropeak / MicroPeak.java
index 82d926fb81ee67c5732ed5cfc87b38b0d70217f1..463238c83b1af3fd9982c67af35c3ef5344e982c 100644 (file)
@@ -24,34 +24,46 @@ 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;
        MicroData       data;
        Container       pane;
 
+       private void RunFile(InputStream input) {
+               try {
+                       data = new MicroData(input);
+                       graph.setData(data);
+               } catch (IOException ioe) {
+               }
+               try {
+                       input.close();
+               } catch (IOException ioe) {
+               }
+       }
+
        private void OpenFile(File filename) {
                try {
-                       FileInputStream input = new FileInputStream(filename);
-                       try {
-                               data = new MicroData(input);
-                               graph = new MicroGraph(data);
-                               pane.add(graph.panel);
-                       } catch (IOException ioe) {
-                       }
-                       try {
-                               input.close();
-                       } catch (IOException ioe) {
-                       }
+                       RunFile (new FileInputStream(filename));
                } catch (FileNotFoundException fne) {
                }
        }
 
        private void SelectFile() {
+               MicroFileChooser        chooser = new MicroFileChooser(this);
+               InputStream             input = chooser.runDialog();
+
+               if (input != null)
+                       RunFile(input);
        }
 
+       private void Preferences() {
+               new AltosConfigureUI(this);
+       }
+               
        private void DownloadData() {
                java.util.List<MicroUSB>        devices = MicroUSB.list();
                for (MicroUSB device : devices)
@@ -59,7 +71,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()))
@@ -68,22 +79,19 @@ 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) {
        }
 
-       public MicroPeak(File filename) {
+       public MicroPeak() {
 
-               this.filename = filename;
+               AltosUIPreferences.set_component(this);
 
                pane = getContentPane();
 
-//             JLabel label = new JLabel ("Hello, World");
-//             pane.add(label);
-
-               setSize(800, 500);
-
                setTitle("MicroPeak");
 
                JMenuBar menuBar = new JMenuBar();
@@ -104,6 +112,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);
@@ -116,20 +128,32 @@ public class MicroPeak extends JFrame implements ActionListener, ItemListener {
                        }
                });
 
-               if (filename != null)
-                       this.OpenFile(filename);
+               graph = new MicroGraph();
+               pane.add(graph.panel);
+               pane.doLayout();
+               pane.validate();
+               doLayout();
+               validate();
+               Insets i = getInsets();
+               Dimension ps = pane.getPreferredSize();
+               ps.width += i.left + i.right;
+               ps.height += i.top + i.bottom;
+               setPreferredSize(ps);
+               setSize(ps);
                setVisible(true);
        }
 
-       public MicroPeak() {
-               this(null);
-       }
-
        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++) {
-                       new MicroPeak(new File(args[i]));
+                       MicroPeak m = new MicroPeak();
+                       m.OpenFile(new File(args[i]));
                        opened = true;
                }
                if (!opened)