From: Bill Kuker Date: Mon, 22 Nov 2010 18:48:10 +0000 (+0000) Subject: Add preferredUnitListener X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=a365b6555237eae94166762243b39c301d4da7ad;p=sw%2Fmotorsim Add preferredUnitListener --- diff --git a/src/com/billkuker/rocketry/motorsim/RocketScience.java b/src/com/billkuker/rocketry/motorsim/RocketScience.java index fb13ebb..81cbbce 100644 --- a/src/com/billkuker/rocketry/motorsim/RocketScience.java +++ b/src/com/billkuker/rocketry/motorsim/RocketScience.java @@ -35,6 +35,14 @@ public class RocketScience { public interface Impulse extends Quantity { public static Unit UNIT = NEWTON_SECOND; } + + private static HashSet prefListeners = new HashSet(); + public static interface UnitPreferenceListener{ + public void preferredUnitsChanged(); + } + public static void addUnitPreferenceListener(UnitPreferenceListener l){ + prefListeners.add(l); + } public static enum UnitPreference{ SI(new Unit[]{ @@ -69,9 +77,14 @@ public class RocketScience { } public static void setUnitPreference( final UnitPreference up ){ + if ( preference == up ) + return; preference = up; Preferences prefs = Preferences.userNodeForPackage(RocketScience.class); prefs.put("PreferedUnits", up.toString()); + for ( UnitPreferenceListener l : prefListeners ){ + l.preferredUnitsChanged(); + } } protected Set> units = new HashSet>();