*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
import java.io.*;
import java.util.concurrent.*;
import java.util.*;
-import org.altusmetrum.AltosLib.*;
-import org.altusmetrum.altosuilib.*;
+import org.altusmetrum.altoslib_13.*;
+import org.altusmetrum.altosuilib_13.*;
-public class MicroPeak extends MicroFrame implements ActionListener, ItemListener {
+public class MicroPeak extends MicroFrame implements ActionListener, ItemListener, AltosFilterListener {
File filename;
- MicroGraph graph;
- MicroStatsTable stats;
+ AltosGraph graph;
+ AltosUIEnable enable;
+ AltosFlightStatsTable statsTable;
MicroRaw raw;
MicroData data;
Container container;
return mp.SetData(data);
}
this.data = data;
- graph.setData(data);
- stats.setData(data);
+ if (data.flight_series == null)
+ System.out.printf("no data in flight\n");
+ if (data.flight_stats == null)
+ System.out.printf("no stats in flight\n");
+ graph.set_data(data.flight_stats, data.flight_series);
+ statsTable.set_stats(data.flight_stats);
raw.setData(data);
setTitle(data.name);
return this;
FileInputStream fis = new FileInputStream(filename);
try {
data = new MicroData((InputStream) fis, filename.getName());
+ AltosUIPreferences.set_last_logdir(filename);
+ } catch (MicroData.NonHexcharException nhe) {
+ data = null;
+ } catch (MicroData.FileEndedException nhe) {
+ data = null;
} catch (InterruptedException ie) {
data = null;
} finally {
private void DownloadData() {
AltosDevice device = MicroDeviceDialog.show(this);
-
+
if (device != null)
new MicroDownload(this, device);
}
if (save.runDialog())
SetName(data.name);
}
-
+
private void Export() {
if (data == null) {
no_data();
public void itemStateChanged(ItemEvent e) {
}
+ /* OSXAdapter interfaces */
+ public void macosx_file_handler(String path) {
+ CommandGraph(new File(path));
+ }
+
+ public void macosx_quit_handler() {
+ System.exit(0);
+ }
+
+ public void macosx_preferences_handler() {
+ Preferences();
+ }
+
+ public void filter_changed(double speed_filter, double accel_filter) {
+ data.flight_series.set_filter(speed_filter, accel_filter);
+ graph.filter_changed();
+ data.flight_stats = new AltosFlightStats(data.flight_series);
+ statsTable.filter_changed(data.flight_stats);
+ }
+
+ public double speed_filter() {
+ if (data != null && data.flight_series != null)
+ return data.flight_series.speed_filter_width;
+ return 4.0;
+ }
+
+ public double accel_filter() {
+ if (data != null && data.flight_series != null)
+ return data.flight_series.accel_filter_width;
+ return 1.0;
+ }
+
public MicroPeak() {
++number_of_windows;
+ register_for_macosx_events();
+
AltosUIPreferences.set_component(this);
container = getContentPane();
fileMenu.add(exitAction);
exitAction.addActionListener(this);
+ JButton downloadButton = new JButton ("Download");
+ downloadButton.addActionListener(this);
+ menuBar.add(downloadButton);
+
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
+ statsTable.tell_closing();
+ raw.tell_closing();
Close();
}
});
- graph = new MicroGraph();
- stats = new MicroStatsTable();
+ enable = new AltosUIEnable(this);
+
+ graph = new AltosGraph(enable);
+ statsTable = new AltosFlightStatsTable();
raw = new MicroRaw();
pane.add(graph.panel, "Graph");
- pane.add(stats, "Statistics");
+ pane.add(enable, "Configure Graph");
+ pane.add(statsTable, "Statistics");
JScrollPane scroll = new JScrollPane(raw);
pane.add(scroll, "Raw Data");
pane.doLayout();
ps.height += i.top + i.bottom;
// setPreferredSize(ps);
setSize(ps);
- setLocationByPlatform(true);
setVisible(true);
}
}
for (int i = 0; i < args.length; i++) {
- System.out.printf ("Arg %d: %s\n", i, args[i]);
if (args[i].equals("--help"))
help(0);
else if (args[i].equals("--export"))
CommandExport(file);
opened = true;
} catch (Exception e) {
- System.err.printf("Error processing \"%s\": %s\n",
- file.getName(), e.getMessage());
+ System.err.printf("Error processing \"%s\": %s %s\n",
+ file.getName(), e.toString(), e.getMessage());
+ e.printStackTrace();
}
}
}