MicroData data;
Container container;
JTabbedPane pane;
+ static int number_of_windows;
- private void RunFile(InputStream input) {
+ MicroPeak SetData(MicroData data) {
+ MicroPeak mp = this;
+ if (this.data != null) {
+ mp = new MicroPeak();
+ return mp.SetData(data);
+ }
+ this.data = data;
+ graph.setData(data);
+ stats.setData(data);
+ setTitle(data.name);
+ return this;
+ }
+
+ void SetName(String name) {
+ graph.setName(name);
+ setTitle(name);
+ }
+
+ private void RunFile(InputStream input, String name) {
try {
- data = new MicroData(input);
- graph.setData(data);
- stats.setData(data);
+ MicroData data = new MicroData(input, name);
+ SetData(data);
} catch (IOException ioe) {
+ JOptionPane.showMessageDialog(this,
+ ioe.getMessage(),
+ "File Read Error",
+ JOptionPane.ERROR_MESSAGE);
+ } catch (InterruptedException ie) {
}
try {
input.close();
private void OpenFile(File filename) {
try {
- RunFile (new FileInputStream(filename));
+ RunFile (new FileInputStream(filename), filename.getName());
} catch (FileNotFoundException fne) {
+ JOptionPane.showMessageDialog(this,
+ fne.getMessage(),
+ "Cannot open file",
+ JOptionPane.ERROR_MESSAGE);
}
}
InputStream input = chooser.runDialog();
if (input != null)
- RunFile(input);
+ RunFile(input, chooser.filename);
}
private void Preferences() {
- new AltosConfigureUI(this);
+ new AltosUIConfigure(this);
}
-
+
private void DownloadData() {
- java.util.List<MicroUSB> devices = MicroUSB.list();
- for (MicroUSB device : devices)
- System.out.printf("device %s\n", device.toString());
+ AltosDevice device = MicroDeviceDialog.show(this);
+
+ if (device != null)
+ new MicroDownload(this, device);
+ }
+
+ private void no_data() {
+ JOptionPane.showMessageDialog(this,
+ "No data available",
+ "No data",
+ JOptionPane.INFORMATION_MESSAGE);
+ }
+ private void Save() {
+ if (data == null) {
+ no_data();
+ return;
+ }
+ MicroSave save = new MicroSave (this, data);
+ if (save.runDialog())
+ SetName(data.name);
+ }
+
+ private void Export() {
+ if (data == null) {
+ no_data();
+ return;
+ }
+ MicroExport export = new MicroExport (this, data);
+ export.runDialog();
+ }
+
+ private void Close() {
+ setVisible(false);
+ dispose();
+ --number_of_windows;
+ if (number_of_windows == 0)
+ System.exit(0);
}
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()))
SelectFile();
- else if ("New".equals(ev.getActionCommand()))
- new MicroPeak();
else if ("Download".equals(ev.getActionCommand()))
DownloadData();
+ else if ("Export".equals(ev.getActionCommand()))
+ Export();
else if ("Preferences".equals(ev.getActionCommand()))
Preferences();
+ else if ("Save a Copy".equals(ev.getActionCommand()))
+ Save();
}
public void itemStateChanged(ItemEvent e) {
public MicroPeak() {
+ ++number_of_windows;
+
AltosUIPreferences.set_component(this);
container = getContentPane();
JMenu fileMenu = new JMenu("File");
menuBar.add(fileMenu);
- JMenuItem newAction = new JMenuItem("New");
- fileMenu.add(newAction);
- newAction.addActionListener(this);
-
JMenuItem openAction = new JMenuItem("Open");
fileMenu.add(openAction);
openAction.addActionListener(this);
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);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
- System.exit(0);
+ Close();
}
});
Dimension ps = pane.getPreferredSize();
ps.width += i.left + i.right;
ps.height += i.top + i.bottom;
- setPreferredSize(ps);
+// setPreferredSize(ps);
setSize(ps);
+ setLocationByPlatform(true);
setVisible(true);
}