public class MotorWorkbench extends JFrame {\r
private static final long serialVersionUID = 1L;\r
\r
- private MultiBurnChart mb;\r
+ private MultiMotorThrustChart mb;\r
private JFrame allBurns;\r
\r
private JFrame fuelEditorFrame = new JFrame(){\r
\r
addMenu();\r
\r
- mb = new MultiBurnChart();\r
+ mb = new MultiMotorThrustChart();\r
allBurns = new JFrame();\r
allBurns.setTitle("All Burns");\r
allBurns.setSize(800, 600);\r
public class MotorsEditor extends MultiObjectEditor<Motor, MotorEditor> {\r
private static final long serialVersionUID = 1L;\r
\r
- MultiBurnChart mbc = new MultiBurnChart();\r
+ MultiMotorThrustChart mbc = new MultiMotorThrustChart();\r
\r
public MotorsEditor(JFrame f) {\r
super(f, "Motor");\r
+++ /dev/null
-package com.billkuker.rocketry.motorsim.visual.workbench;
-
-import java.awt.BorderLayout;
-import java.util.HashMap;
-
-import javax.measure.quantity.Duration;
-import javax.measure.quantity.Force;
-import javax.measure.unit.SI;
-import javax.measure.unit.Unit;
-import javax.swing.JPanel;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.ChartPanel;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-
-import com.billkuker.rocketry.motorsim.Burn;
-import com.billkuker.rocketry.motorsim.RocketScience;
-
-public class MultiBurnChart extends JPanel implements BurnWatcher {
- private static final long serialVersionUID = 1L;
-
- private XYSeriesCollection dataset = new XYSeriesCollection();
-
- private HashMap<Burn, XYSeries> burnToSeries = new HashMap<Burn, XYSeries>();
- private Unit<Duration> time;
- private Unit<Force> force;
-
- public MultiBurnChart() {
- this.setLayout(new BorderLayout());
- time = RocketScience.UnitPreference.getUnitPreference()
- .getPreferredUnit(SI.SECOND);
- force = RocketScience.UnitPreference.getUnitPreference()
- .getPreferredUnit(SI.NEWTON);
- JFreeChart chart = ChartFactory.createXYLineChart(
- "", // Title
- "Time (" + time.toString() + ")", // x-axis Label
- "Thrust (" + force.toString() + ")", // y-axis Label
- dataset, PlotOrientation.VERTICAL, // Plot Orientation
- true, // Show Legend
- true, // Use tool tips
- false // Configure chart to generate URLs?
- );
- add(new ChartPanel(chart));
- }
-
- public void addBurn(Burn b) {
- XYSeries s = createSeries(b);
- burnToSeries.put(b, s);
- dataset.addSeries(s);
- }
-
- private XYSeries createSeries(Burn b) {
- XYSeries s = new XYSeries(b.getMotor().getName());
- for( Burn.Interval i : b.getData().values() ){
- s.add(i.time.doubleValue(time), i.thrust.doubleValue(force));
- }
- return s;
- }
-
- public void removeBurn(Burn b) {
- XYSeries s = burnToSeries.get(b);
- if (s == null)
- return;
- dataset.removeSeries(s);
- }
-
- @Override
- public void replace(Burn oldBurn, Burn newBurn) {
- removeBurn(oldBurn);
- addBurn(newBurn);
- }
-}
--- /dev/null
+package com.billkuker.rocketry.motorsim.visual.workbench;
+
+import java.awt.BorderLayout;
+import java.util.HashMap;
+
+import javax.measure.quantity.Duration;
+import javax.measure.quantity.Force;
+import javax.measure.unit.SI;
+import javax.measure.unit.Unit;
+import javax.swing.JPanel;
+
+import org.jfree.chart.ChartFactory;
+import org.jfree.chart.ChartPanel;
+import org.jfree.chart.JFreeChart;
+import org.jfree.chart.plot.PlotOrientation;
+import org.jfree.data.xy.XYSeries;
+import org.jfree.data.xy.XYSeriesCollection;
+
+import com.billkuker.rocketry.motorsim.Burn;
+import com.billkuker.rocketry.motorsim.RocketScience;
+
+public class MultiMotorThrustChart extends JPanel implements BurnWatcher {
+ private static final long serialVersionUID = 1L;
+
+ private XYSeriesCollection dataset = new XYSeriesCollection();
+
+ private HashMap<Burn, XYSeries> burnToSeries = new HashMap<Burn, XYSeries>();
+ private Unit<Duration> time;
+ private Unit<Force> force;
+
+ public MultiMotorThrustChart() {
+ this.setLayout(new BorderLayout());
+ time = RocketScience.UnitPreference.getUnitPreference()
+ .getPreferredUnit(SI.SECOND);
+ force = RocketScience.UnitPreference.getUnitPreference()
+ .getPreferredUnit(SI.NEWTON);
+ JFreeChart chart = ChartFactory.createXYLineChart(
+ "", // Title
+ "Time (" + time.toString() + ")", // x-axis Label
+ "Thrust (" + force.toString() + ")", // y-axis Label
+ dataset, PlotOrientation.VERTICAL, // Plot Orientation
+ true, // Show Legend
+ true, // Use tool tips
+ false // Configure chart to generate URLs?
+ );
+ add(new ChartPanel(chart));
+ }
+
+ public void addBurn(Burn b) {
+ XYSeries s = createSeries(b);
+ burnToSeries.put(b, s);
+ dataset.addSeries(s);
+ }
+
+ private XYSeries createSeries(Burn b) {
+ XYSeries s = new XYSeries(b.getMotor().getName());
+ for( Burn.Interval i : b.getData().values() ){
+ s.add(i.time.doubleValue(time), i.thrust.doubleValue(force));
+ }
+ return s;
+ }
+
+ public void removeBurn(Burn b) {
+ XYSeries s = burnToSeries.get(b);
+ if (s == null)
+ return;
+ dataset.removeSeries(s);
+ }
+
+ @Override
+ public void replace(Burn oldBurn, Burn newBurn) {
+ removeBurn(oldBurn);
+ addBurn(newBurn);
+ }
+}