\r
\r
import java.util.Date;\r
+import java.util.HashSet;\r
+import java.util.Set;\r
import java.util.SortedMap;\r
import java.util.TreeMap;\r
\r
public void setProgress(float p);\r
}\r
\r
- private BurnProgressListener bpl = null;\r
+ private Set<BurnProgressListener> bpls = new HashSet<Burn.BurnProgressListener>();\r
\r
private static final Amount<Pressure> atmosphereicPressure = Amount.valueOf(101000, SI.PASCAL);\r
\r
throw new IllegalArgumentException("Invalid Motor: " + e.getMessage());\r
}\r
motor = m;\r
- this.bpl = bpl;\r
+ bpls.add(bpl);\r
burn();\r
}\r
\r
\r
log.debug("Regression: " + next.regression);\r
\r
- if ( bpl != null ){\r
- Amount<Dimensionless> a = next.regression.divide(motor.getGrain().webThickness()).to(Dimensionless.UNIT);\r
+ //Update BurnProgressListeners\r
+ Amount<Dimensionless> a = next.regression.divide(motor.getGrain().webThickness()).to(Dimensionless.UNIT);\r
+ for (BurnProgressListener bpl : bpls ){\r
bpl.setProgress((float)a.doubleValue(Dimensionless.UNIT));\r
}\r
+\r
\r
next.time = prev.time.plus(dt);\r
\r