X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=gui%2Fcom%2Fbillkuker%2Frocketry%2Fmotorsim%2Fvisual%2Fworkbench%2FMultiMotorPressureChart.java;h=8eeba3295c09c6aa7c60f9dfa358cd5a3b5a3be2;hb=295f767b904f73dca597e72bdee65871eb35467d;hp=874518fcdfc3340350a38dbeedb4b245fdeedb8f;hpb=a365b6555237eae94166762243b39c301d4da7ad;p=sw%2Fmotorsim diff --git a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiMotorPressureChart.java b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiMotorPressureChart.java index 874518f..8eeba32 100644 --- a/gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiMotorPressureChart.java +++ b/gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiMotorPressureChart.java @@ -2,12 +2,15 @@ package com.billkuker.rocketry.motorsim.visual.workbench; 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; @@ -18,6 +21,7 @@ import org.jfree.data.xy.XYSeriesCollection; 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; @@ -30,6 +34,30 @@ public class MultiMotorPressureChart extends JPanel implements BurnWatcher { 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 burns = new HashSet(); + 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()