diff --git a/source/org/thdl/tib/input/DuffPane.java b/source/org/thdl/tib/input/DuffPane.java index eeb7744..55abcef 100644 --- a/source/org/thdl/tib/input/DuffPane.java +++ b/source/org/thdl/tib/input/DuffPane.java @@ -85,7 +85,6 @@ import org.thdl.tib.input.SettingsServiceProvider; import org.thdl.tib.input.DictionaryLoadState; import java.util.Observable ; import org.thdl.tib.input.GlobalResourceHolder ; -import org.thdl.tib.input.SettingsChangeListener ; /** @@ -1958,22 +1957,15 @@ public void paste(int offset) public void onDictionarySettingsChanged () { GlobalResourceHolder.getListener ().update ( getObservable (), - (Object)new Integer ( SettingsChangeListener.DICTIONARY_SETTINGS ) ) ; + (Object)new Integer ( GlobalResourceHolder.Listener.DICTIONARY_SETTINGS ) ) ; if ( null == buttonToggleDict || null == buttonLookupDict ) return ; - if ( GlobalResourceHolder.isDictionaryValid () && - GlobalResourceHolder.isDictionaryEnabled () ) - { - buttonToggleDict.setEnabled ( true ) ; - buttonLookupDict.setEnabled ( true ) ; - } - else - { - buttonToggleDict.setEnabled ( false ) ; - buttonLookupDict.setEnabled ( false ) ; - } + boolean enableDictionaryButtons = GlobalResourceHolder.getDictionarySettings ().isValid () && + GlobalResourceHolder.getDictionarySettings ().isEnabled () ; + buttonToggleDict.setEnabled ( enableDictionaryButtons ) ; + buttonLookupDict.setEnabled ( enableDictionaryButtons ) ; } @@ -2177,8 +2169,10 @@ public void paste(int offset) toolbar.add ( buttonLookupDict ) ; - buttonToggleDict.setEnabled ( GlobalResourceHolder.isDictionaryValid () && GlobalResourceHolder.isDictionaryEnabled () ) ; - buttonLookupDict.setEnabled ( GlobalResourceHolder.isDictionaryValid () && GlobalResourceHolder.isDictionaryEnabled () ) ; + boolean enableDictionaryButtons = GlobalResourceHolder.getDictionarySettings ().isValid () && + GlobalResourceHolder.getDictionarySettings ().isEnabled () ; + buttonToggleDict.setEnabled ( enableDictionaryButtons ) ; + buttonLookupDict.setEnabled ( enableDictionaryButtons ) ; } } diff --git a/source/org/thdl/tib/input/GlobalResourceHolder.java b/source/org/thdl/tib/input/GlobalResourceHolder.java index 83fa823..230d305 100644 --- a/source/org/thdl/tib/input/GlobalResourceHolder.java +++ b/source/org/thdl/tib/input/GlobalResourceHolder.java @@ -10,9 +10,9 @@ import org.thdl.tib.scanner.LocalTibetanScanner ; import org.thdl.tib.scanner.RemoteTibetanScanner ; import org.thdl.tib.scanner.Word ; -import org.thdl.tib.input.SettingsChangeListener ; import org.thdl.tib.input.SettingsServiceProvider ; import org.thdl.tib.input.DictionaryLoadState ; +import org.thdl.tib.input.DictionarySettings ; import java.awt.GraphicsEnvironment ; import java.awt.Font ; @@ -35,18 +35,16 @@ public class GlobalResourceHolder private static TibetanScanner tibetanScanner = null ; private static SettingsServiceProvider settingsServiceProvider ; - private static boolean dictionaryValid = false ; - private static boolean dictionaryEnabled = false ; - private static boolean dictionaryLocal = false ; - private static String dictionaryPath = "" ; + private static DictionarySettings dictionarySettings = null ; private static int dictionaryLoadState = DictionaryLoadState.UNDEFINED ; private static Object dictionaryLoadLock = null ; - //static class Listener implements SettingsChangeListener static class Listener implements Observer { - /** + public static final int DICTIONARY_SETTINGS = 1 ; + + /** * update * */ @@ -64,7 +62,7 @@ public class GlobalResourceHolder if ( null == GlobalResourceHolder.settingsServiceProvider ) return ; - if ( SettingsChangeListener.DICTIONARY_SETTINGS == setting ) + if ( DICTIONARY_SETTINGS == setting ) { // // compare with the current settings @@ -76,16 +74,13 @@ public class GlobalResourceHolder String newDictionaryPath = GlobalResourceHolder. settingsServiceProvider.getDictionarySettingsPath () ; + DictionarySettings newSettings = new DictionarySettings ( newDictionaryEnabled, + newDictionaryLocal, + newDictionaryPath ) ; - if ( newDictionaryEnabled != GlobalResourceHolder.dictionaryEnabled || - newDictionaryLocal != GlobalResourceHolder.dictionaryLocal || - ! newDictionaryPath.equals ( GlobalResourceHolder.dictionaryPath ) ) + if ( ! newSettings.equal ( GlobalResourceHolder.dictionarySettings ) ) { - GlobalResourceHolder.dictionaryEnabled = newDictionaryEnabled ; - GlobalResourceHolder.dictionaryLocal = newDictionaryLocal ; - GlobalResourceHolder.dictionaryPath = newDictionaryPath ; - - + GlobalResourceHolder.dictionarySettings.set ( newSettings ) ; GlobalResourceHolder.tibetanScanner = GlobalResourceHolder.loadDictionaryScanner () ; } } @@ -96,7 +91,7 @@ public class GlobalResourceHolder static { - listenerObj = new Listener () ; + listenerObj = new Listener () ; // // we have no service provider until the client class is born @@ -123,11 +118,7 @@ public class GlobalResourceHolder // tibetanScanner = null ; - dictionaryValid = false ; - dictionaryEnabled = false ; - dictionaryLocal = false ; - dictionaryPath = "" ; - + dictionarySettings = new DictionarySettings () ; dictionaryLoadLock = new Object () ; } @@ -160,21 +151,18 @@ public class GlobalResourceHolder } } - - - /* + /** * loadDictionaryScanner * */ protected static TibetanScanner loadDictionaryScanner () - { - //return new LocalTibetanScanner ( "F:/tmp/free/free" ) ; + { TibetanScanner ts = null ; - if ( ! dictionaryEnabled ) + if ( ! dictionarySettings.isEnabled () ) return null ; - dictionaryValid = false ; + dictionarySettings.setValid ( false ) ; synchronized ( dictionaryLoadLock ) { @@ -182,15 +170,15 @@ public class GlobalResourceHolder try { - if ( dictionaryLocal ) + if ( dictionarySettings.isLocal () ) { - ts = new LocalTibetanScanner ( dictionaryPath ) ; - dictionaryValid = true ; + ts = new LocalTibetanScanner ( dictionarySettings.getPathOrUrl () ) ; + dictionarySettings.setValid ( true ) ; } else { - ts = new RemoteTibetanScanner ( dictionaryPath ) ; - dictionaryValid = true ; + ts = new RemoteTibetanScanner ( dictionarySettings.getPathOrUrl () ) ; + dictionarySettings.setValid ( true ) ; } dictionaryLoadState = DictionaryLoadState.READY ; @@ -395,17 +383,8 @@ public class GlobalResourceHolder /** * */ - public static boolean isDictionaryValid () + public static DictionarySettings getDictionarySettings () { - return dictionaryValid ; - } - - /** - * - */ - public static boolean isDictionaryEnabled () - { - return dictionaryEnabled ; - } - + return dictionarySettings ; + } };