String label;
String units;
Color color;
+ XYItemRenderer renderer;
- String label() {
- return String.format("%s (%s)", label, units);
- }
-
void set_units(String units) {
this.units = units;
- axis.setLabel(label());
+ axis.setLabel(String.format("%s (%s)", label, units));
+
+ StandardXYToolTipGenerator ttg;
+
+ ttg = new StandardXYToolTipGenerator(String.format("{1}s: {2}%s ({0})", units),
+ new java.text.DecimalFormat("0.00"),
+ new java.text.DecimalFormat("0.00"));
+ renderer.setBaseToolTipGenerator(ttg);
+ }
+
+ void set_enable(boolean enable) {
+ renderer.setSeriesVisible(0, enable);
+ axis.setVisible(enable);
}
public MicroSeries (String label, String units, Color color) {
this.units = units;
this.color = color;
- axis = new NumberAxis(label());
+ axis = new NumberAxis();
axis.setLabelPaint(color);
axis.setTickLabelPaint(color);
+
+ renderer = new XYLineAndShapeRenderer(true, false);
+ renderer.setSeriesPaint(0, color);
+ set_units(units);
}
}
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);
+ 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 gridline_color = new Color(0, 0, 0);
+ static final private Color border_color = new Color(255, 255, 255);
+ static final private Color background_color = new Color(255, 255, 255);
MicroData data;
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")));
+ series.renderer.setPlot(plot);
plot.setRangeAxis(index, series.axis);
plot.setDataset(index, dataset);
- plot.setRenderer(index, renderer);
+ plot.setRenderer(index, series.renderer);
plot.mapDatasetToRangeAxis(index, index);
return series;
}
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)));
+ if (data != null) {
+ for (MicroDataPoint point : data.points()) {
+ heightSeries.add(point.time, AltosConvert.height.value(point.height));
+ speedSeries.add(point.time, AltosConvert.speed.value(point.speed));
+ accelSeries.add(point.time, AltosConvert.accel.value(point.accel));
+ }
}
+// accelSeries.set_enable(false);
}
public void setName (String name) {
public void setData (MicroData data) {
this.data = data;
- chart.setTitle(data.name);
+ if (data != null)
+ setName(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();
- }
+ heightSeries.set_units(AltosConvert.height.show_units());
+ speedSeries.set_units(AltosConvert.speed.show_units());
+ accelSeries.set_units(AltosConvert.accel.show_units());
+ resetData();
}
public MicroGraph() {
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);
-
chart = new JFreeChart("Flight", JFreeChart.DEFAULT_TITLE_FONT,
plot, true);
ChartUtilities.applyCurrentTheme(chart);
+
+ heightSeries = addSeries(0, "Height", AltosConvert.height.show_units(), height_color);
+ speedSeries = addSeries(1, "Speed", AltosConvert.speed.show_units(), speed_color);
+ accelSeries = addSeries(2, "Acceleration", AltosConvert.accel.show_units(), accel_color);
+
+ plot.setDomainGridlinePaint(gridline_color);
+ plot.setRangeGridlinePaint(gridline_color);
+ plot.setBackgroundPaint(background_color);
+ plot.setBackgroundAlpha((float) 1);
+
+ chart.setBackgroundPaint(background_color);
+ chart.setBorderPaint(border_color);
panel = new ChartPanel(chart);
panel.setMouseWheelEnabled(true);
panel.setPreferredSize(new java.awt.Dimension(800, 500));