import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.altoslib_13.*;
-import org.altusmetrum.altosuilib_13.*;
+import org.altusmetrum.altoslib_14.*;
+import org.altusmetrum.altosuilib_14.*;
public class MicroPeak extends MicroFrame implements ActionListener, ItemListener, AltosFilterListener {
MicroData data;
Container container;
JTabbedPane pane;
+ JMenuBar menu_bar;
static int number_of_windows;
+ /* File menu */
+ final static String open_command = "open";
+ final static String save_command = "save";
+ final static String export_command = "export";
+ final static String preferences_command = "preferences";
+ final static String close_command = "close";
+ final static String exit_command = "exit";
+
+ static final String[][] file_menu_entries = new String[][] {
+ { "Open", open_command },
+ { "Save a Copy", save_command },
+ { "Export Data", export_command },
+ { "Preferences", preferences_command },
+ { "Close", close_command },
+ { "Exit", exit_command },
+ };
+
+ /* Download menu */
+ final static String download_command = "download";
+ final static String download_label = "Download";
+
+ static final String[][] download_menu_entries = new String[][] {
+ { download_label, download_command }
+ };
+
MicroPeak SetData(MicroData data) {
MicroPeak mp = this;
if (this.data != null) {
private void DownloadData() {
AltosDevice device = MicroDeviceDialog.show(this);
+ MicroSerial serial = null;
+ try {
+ serial = new MicroSerial(device);
+ } catch (FileNotFoundException fe) {
+ JOptionPane.showMessageDialog(this,
+ fe.getMessage(),
+ "Cannot open device",
+ JOptionPane.ERROR_MESSAGE);
+ return;
+ }
- if (device != null)
- new MicroDownload(this, device);
+ new MicroDownload(this, device, serial);
}
private void no_data() {
}
public void actionPerformed(ActionEvent ev) {
- if ("Exit".equals(ev.getActionCommand()))
- System.exit(0);
- else if ("Close".equals(ev.getActionCommand()))
- Close();
- else if ("Open".equals(ev.getActionCommand()))
+ if (open_command.equals(ev.getActionCommand()))
SelectFile();
- else if ("Download".equals(ev.getActionCommand()))
- DownloadData();
- else if ("Export".equals(ev.getActionCommand()))
+ else if (save_command.equals(ev.getActionCommand()))
+ Save();
+ else if (export_command.equals(ev.getActionCommand()))
Export();
- else if ("Preferences".equals(ev.getActionCommand()))
+ else if (preferences_command.equals(ev.getActionCommand()))
Preferences();
- else if ("Save a Copy".equals(ev.getActionCommand()))
- Save();
+ else if (close_command.equals(ev.getActionCommand()))
+ Close();
+ else if (exit_command.equals(ev.getActionCommand()))
+ System.exit(0);
+ else if (download_command.equals(ev.getActionCommand()))
+ DownloadData();
}
public void itemStateChanged(ItemEvent e) {
return 1.0;
}
+ private void add_menu(JMenu menu, String label, String action) {
+ JMenuItem item = new JMenuItem(label);
+ menu.add(item);
+ item.addActionListener(this);
+ item.setActionCommand(action);
+ }
+
+
+ private void make_menu(String label, String[][] items) {
+ JMenu menu = new JMenu(label);
+ for (int i = 0; i < items.length; i++) {
+ if (MAC_OS_X) {
+ if (items[i][1].equals("exit"))
+ continue;
+ if (items[i][1].equals("preferences"))
+ continue;
+ }
+ add_menu(menu, items[i][0], items[i][1]);
+ }
+ menu_bar.add(menu);
+ }
+
public MicroPeak() {
++number_of_windows;
setTitle("MicroPeak");
- JMenuBar menuBar = new JMenuBar();
- setJMenuBar(menuBar);
-
- JMenu fileMenu = new JMenu("File");
- menuBar.add(fileMenu);
+ menu_bar = new JMenuBar();
+ setJMenuBar(menu_bar);
- JMenuItem openAction = new JMenuItem("Open");
- fileMenu.add(openAction);
- openAction.addActionListener(this);
+ make_menu("File", file_menu_entries);
- JMenuItem downloadAction = new JMenuItem("Download");
- fileMenu.add(downloadAction);
- downloadAction.addActionListener(this);
-
- JMenuItem saveAction = new JMenuItem("Save a Copy");
- fileMenu.add(saveAction);
- saveAction.addActionListener(this);
-
- JMenuItem exportAction = new JMenuItem("Export");
- fileMenu.add(exportAction);
- exportAction.addActionListener(this);
-
- JMenuItem preferencesAction = new JMenuItem("Preferences");
- fileMenu.add(preferencesAction);
- preferencesAction.addActionListener(this);
-
- JMenuItem closeAction = new JMenuItem("Close");
- fileMenu.add(closeAction);
- closeAction.addActionListener(this);
-
- JMenuItem exitAction = new JMenuItem("Exit");
- fileMenu.add(exitAction);
- exitAction.addActionListener(this);
-
- JButton downloadButton = new JButton ("Download");
- downloadButton.addActionListener(this);
- menuBar.add(downloadButton);
+ if (MAC_OS_X) {
+ make_menu(download_label, download_menu_entries);
+ } else {
+ JButton download_button = new JButton (download_label);
+ download_button.setActionCommand(download_command);
+ download_button.addActionListener(this);
+ menu_bar.add(download_button);
+ }
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
Dimension ps = pane.getPreferredSize();
ps.width += i.left + i.right;
ps.height += i.top + i.bottom;
-// setPreferredSize(ps);
setSize(ps);
+ pack();
setVisible(true);
}