import javax.measure.unit.SI;
import javax.measure.unit.Unit;
import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import com.billkuker.rocketry.motorsim.Fuel;
import com.billkuker.rocketry.motorsim.RocketScience;
+import com.billkuker.rocketry.motorsim.RocketScience.UnitPreferenceListener;
public class MultiFuelChart extends JPanel implements FuelResolver.FuelsChangeListener {
private static final long serialVersionUID = 1L;
public MultiFuelChart() {
this.setLayout(new BorderLayout());
+ RocketScience.addUnitPreferenceListener(new UnitPreferenceListener() {
+ @Override
+ public void preferredUnitsChanged() {
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ setup();
+ revalidate();
+ }
+ });
+ }
+ });
+ setup();
+ FuelResolver.addFuelsChangeListener(this);
+ }
+
+ private void setup(){
pressureUnit = RocketScience.UnitPreference.getUnitPreference()
.getPreferredUnit(SI.PASCAL);
rateUnit = RocketScience.UnitPreference.getUnitPreference()
.getPreferredUnit(SI.METERS_PER_SECOND);
+ System.err.println(pressureUnit);
+ removeAll();
JFreeChart chart = ChartFactory.createXYLineChart(
"", // Title
pressureUnit.toString(), // x-axis Label
false // Configure chart to generate URLs?
);
add(new ChartPanel(chart));
- FuelResolver.addFuelsChangeListener(this);
+ dataset.removeAllSeries();
+ fuelToSeries.clear();
fuelsChanged();
}
import java.awt.BorderLayout;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
import javax.measure.quantity.Duration;
import javax.measure.quantity.Pressure;
import javax.measure.unit.SI;
import javax.measure.unit.Unit;
import javax.swing.JPanel;
+import javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import com.billkuker.rocketry.motorsim.Burn;
import com.billkuker.rocketry.motorsim.RocketScience;
+import com.billkuker.rocketry.motorsim.RocketScience.UnitPreferenceListener;
public class MultiMotorPressureChart extends JPanel implements BurnWatcher {
private static final long serialVersionUID = 1L;
public MultiMotorPressureChart() {
this.setLayout(new BorderLayout());
+ RocketScience.addUnitPreferenceListener(new UnitPreferenceListener() {
+ @Override
+ public void preferredUnitsChanged() {
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ removeAll();
+ dataset.removeAllSeries();
+ Set<Burn> burns = new HashSet<Burn>();
+ burns.addAll(burnToSeries.keySet());
+ burnToSeries.clear();
+ setup();
+ for ( Burn b : burns ){
+ addBurn(b);
+ }
+ revalidate();
+ }
+ });
+ }
+ });
+ setup();
+ }
+
+ private void setup(){
time = RocketScience.UnitPreference.getUnitPreference()
.getPreferredUnit(SI.SECOND);
pressureUnit = RocketScience.UnitPreference.getUnitPreference()
import java.awt.BorderLayout;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
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 javax.swing.SwingUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import com.billkuker.rocketry.motorsim.Burn;
import com.billkuker.rocketry.motorsim.RocketScience;
+import com.billkuker.rocketry.motorsim.RocketScience.UnitPreferenceListener;
public class MultiMotorThrustChart extends JPanel implements BurnWatcher {
private static final long serialVersionUID = 1L;
public MultiMotorThrustChart() {
this.setLayout(new BorderLayout());
+ RocketScience.addUnitPreferenceListener(new UnitPreferenceListener() {
+ @Override
+ public void preferredUnitsChanged() {
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ removeAll();
+ dataset.removeAllSeries();
+ Set<Burn> burns = new HashSet<Burn>();
+ burns.addAll(burnToSeries.keySet());
+ burnToSeries.clear();
+ setup();
+ for ( Burn b : burns ){
+ addBurn(b);
+ }
+ revalidate();
+ }
+ });
+ }
+ });
+ setup();
+
+ }
+
+ private void setup(){
time = RocketScience.UnitPreference.getUnitPreference()
.getPreferredUnit(SI.SECOND);
force = RocketScience.UnitPreference.getUnitPreference()