From dd540664b6b36e50e7c014943d42805d54192354 Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Sun, 7 Nov 2010 15:59:24 +0000 Subject: [PATCH] Changed BurnProgressListeners into a set --- src/com/billkuker/rocketry/motorsim/Burn.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/billkuker/rocketry/motorsim/Burn.java b/src/com/billkuker/rocketry/motorsim/Burn.java index 1c70cb6..d863cd9 100644 --- a/src/com/billkuker/rocketry/motorsim/Burn.java +++ b/src/com/billkuker/rocketry/motorsim/Burn.java @@ -3,6 +3,8 @@ package com.billkuker.rocketry.motorsim; import java.util.Date; +import java.util.HashSet; +import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -42,7 +44,7 @@ public class Burn { public void setProgress(float p); } - private BurnProgressListener bpl = null; + private Set bpls = new HashSet(); private static final Amount atmosphereicPressure = Amount.valueOf(101000, SI.PASCAL); @@ -90,7 +92,7 @@ public class Burn { throw new IllegalArgumentException("Invalid Motor: " + e.getMessage()); } motor = m; - this.bpl = bpl; + bpls.add(bpl); burn(); } @@ -139,10 +141,12 @@ public class Burn { log.debug("Regression: " + next.regression); - if ( bpl != null ){ - Amount a = next.regression.divide(motor.getGrain().webThickness()).to(Dimensionless.UNIT); + //Update BurnProgressListeners + Amount a = next.regression.divide(motor.getGrain().webThickness()).to(Dimensionless.UNIT); + for (BurnProgressListener bpl : bpls ){ bpl.setProgress((float)a.doubleValue(Dimensionless.UNIT)); } + next.time = prev.time.plus(dt); -- 2.47.2