java: Bump java library versions for next release
[fw/altos] / micropeak / MicroGraph.java
index b9b084f855880539fb7fc422b002920a41e7ce9c..811b1e7c14984c6511e46611285371f9c6a4538a 100644 (file)
@@ -22,7 +22,8 @@ import java.util.ArrayList;
 
 import java.awt.*;
 import javax.swing.*;
-import org.altusmetrum.AltosLib.*;
+import org.altusmetrum.altoslib_5.*;
+import org.altusmetrum.altosuilib_3.*;
 
 import org.jfree.ui.*;
 import org.jfree.chart.*;
@@ -34,126 +35,19 @@ import org.jfree.chart.labels.*;
 import org.jfree.data.xy.*;
 import org.jfree.data.*;
 
-class MicroSeries extends XYSeries {
-       NumberAxis      axis;
-       String          label;
-       String          units;
-       Color           color;
-       
-       String label() {
-               return String.format("%s (%s)", label, units);
-       }
-
-       void set_units(String units) {
-               this.units = units;
-
-               axis.setLabel(label());
-       }
-
-       public MicroSeries (String label, String units, Color color) {
-               super(label);
-               this.label = label;
-               this.units = units;
-               this.color = color;
-
-               axis = new NumberAxis(label());
-               axis.setLabelPaint(color);
-               axis.setTickLabelPaint(color);
-       }
-}
-
-public class MicroGraph implements AltosUnitsListener {
-
-       XYPlot          plot;
-       JFreeChart      chart;
-       ChartPanel      panel;
-       NumberAxis      xAxis;
-       MicroSeries     heightSeries;
-        MicroSeries    speedSeries;
-       MicroSeries     accelSeries;
-
-       static final private Color red = new Color(194,31,31);
-       static final private Color green = new Color(31,194,31);
-       static final private Color blue = new Color(31,31,194);
-
-       MicroData       data;
-
-       public JPanel panel() {
-               return panel;
-       }
-
-       private MicroSeries addSeries(int index, String label, String units, Color color) {
-               MicroSeries             series = new MicroSeries(label, units, color);
-               XYSeriesCollection      dataset = new XYSeriesCollection(series);
-               XYItemRenderer          renderer = new XYLineAndShapeRenderer(true, false);
-
-               renderer.setSeriesPaint(0, color);
-               renderer.setPlot(plot);
-               renderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator(String.format("{1}s: {2}%s ({0})", units),
-                                                                               new java.text.DecimalFormat("0.00"),
-                                                                               new java.text.DecimalFormat("0.00")));
-               plot.setRangeAxis(index, series.axis);
-               plot.setDataset(index, dataset);
-               plot.setRenderer(index, renderer);
-               plot.mapDatasetToRangeAxis(index, index);
-               return series;
-       }
-       
-       public void resetData() {
-               heightSeries.clear();
-               speedSeries.clear();
-               accelSeries.clear();
-               for (int i = 0; i < data.pressures.length; i++) {
-                       double x = data.time(i);
-                       heightSeries.add(x, AltosConvert.height.value(data.height(i)));
-                       speedSeries.add(x, AltosConvert.speed.value(data.speed(i)));
-                       accelSeries.add(x, AltosConvert.accel.value(data.acceleration(i)));
-               }
-       }
-
-       public void setName (String name) {
-               chart.setTitle(name);
-       }
-
-       public void setData (MicroData data) {
-               this.data = data;
-               chart.setTitle(data.name);
-               resetData();
-       }
-
-       public void units_changed(boolean imperial_units) {
-               if (data != null) {
-                       heightSeries.set_units(AltosConvert.height.show_units());
-                       speedSeries.set_units(AltosConvert.speed.show_units());
-                       accelSeries.set_units(AltosConvert.accel.show_units());
-                       resetData();
-               }
-       }
-
-       public MicroGraph() {
-
-               xAxis = new NumberAxis("Time (s)");
-               
-               xAxis.setAutoRangeIncludesZero(true);
-
-               plot = new XYPlot();
-               plot.setDomainAxis(xAxis);
-               plot.setOrientation(PlotOrientation.VERTICAL);
-               plot.setDomainPannable(true);
-               plot.setRangePannable(true);
-
-               heightSeries = addSeries(0, "Height", AltosConvert.height.show_units(), red);
-               speedSeries = addSeries(1, "Speed", AltosConvert.speed.show_units(), green);
-               accelSeries = addSeries(2, "Acceleration", AltosConvert.accel.show_units(), blue);
+public class MicroGraph extends AltosUIGraph {
 
-               chart = new JFreeChart("Flight", JFreeChart.DEFAULT_TITLE_FONT,
-                                      plot, true);
+       static final private Color height_color = new Color(194,31,31);
+       static final private Color speed_color = new Color(31,194,31);
+       static final private Color accel_color = new Color(31,31,194);
+       static final private Color state_color = new Color(3,3,3);
 
-               ChartUtilities.applyCurrentTheme(chart);
-               panel = new ChartPanel(chart);
-               panel.setMouseWheelEnabled(true);
-               panel.setPreferredSize(new java.awt.Dimension(800, 500));
+       public MicroGraph(AltosUIEnable enable) {
+               super(enable);
 
-               AltosPreferences.register_units_listener(this);
+               addSeries("Height", MicroDataPoint.data_height, AltosConvert.height, height_color);
+               addSeries("Speed", MicroDataPoint.data_speed, AltosConvert.speed, speed_color);
+               addSeries("Acceleration", MicroDataPoint.data_accel, AltosConvert.accel, accel_color);
+               addMarker("State", MicroDataPoint.data_state, state_color);
        }
 }
\ No newline at end of file