From a365b6555237eae94166762243b39c301d4da7ad Mon Sep 17 00:00:00 2001 From: Bill Kuker Date: Mon, 22 Nov 2010 18:48:10 +0000 Subject: [PATCH] Add preferredUnitListener --- .../billkuker/rocketry/motorsim/RocketScience.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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>(); -- 2.47.2