# HG changeset patch # User Frank Benoit # Date 1207480908 -7200 # Node ID e10d9c2648bedc90f7ec334eec54251d8347b5c5 # Parent b9ec89a5809cbfdc44a8649031ae12b71e975788 fix static interface and static this diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/action/ExternalActionManager.d --- a/dwtx/jface/action/ExternalActionManager.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/action/ExternalActionManager.d Sun Apr 06 13:21:48 2008 +0200 @@ -361,7 +361,7 @@ * * @since 3.1 */ - public static interface IActiveChecker { + public interface IActiveChecker { /** * Checks whether the command with the given identifier should be * considered active. This can be used in systems using some kind of @@ -389,7 +389,7 @@ * * @since 3.2 */ - public static interface IBindingManagerCallback : ICallback { + public interface IBindingManagerCallback : ICallback { /** *

@@ -413,7 +413,7 @@ * * @since 3.0 */ - public static interface ICallback { + public interface ICallback { /** *

diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/bindings/TriggerSequence.d --- a/dwtx/jface/bindings/TriggerSequence.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/bindings/TriggerSequence.d Sun Apr 06 13:21:48 2008 +0200 @@ -61,9 +61,11 @@ * May be empty. */ public this(Trigger[] triggers) { + /+ if (triggers is null) { throw new NullPointerException("The triggers cannot be null"); //$NON-NLS-1$ } + +/ for (int i = 0; i < triggers.length; i++) { if (triggers[i] is null) { diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/bindings/keys/KeySequence.d --- a/dwtx/jface/bindings/keys/KeySequence.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/bindings/keys/KeySequence.d Sun Apr 06 13:21:48 2008 +0200 @@ -202,7 +202,7 @@ protected this(KeyStroke[] keyStrokes) { super(keyStrokes); - for (int i = 0; i < triggers.length - 1; i++) { + for (int i = 0; i < cast(int)triggers.length - 1; i++) { KeyStroke keyStroke = cast(KeyStroke) triggers[i]; if (!keyStroke.isComplete()) { diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/bindings/keys/formatting/KeyFormatterFactory.d --- a/dwtx/jface/bindings/keys/formatting/KeyFormatterFactory.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/bindings/keys/formatting/KeyFormatterFactory.d Sun Apr 06 13:21:48 2008 +0200 @@ -34,12 +34,12 @@ /** * The formatter that renders key bindings in a platform-dependent manner. */ - private static const IKeyFormatter FORMAL_KEY_FORMATTER; + private static /+const+/ IKeyFormatter FORMAL_KEY_FORMATTER; /** * The formatter that renders key bindings in a form similar to XEmacs */ - private static const IKeyFormatter EMACS_KEY_FORMATTER; + private static /+const+/ IKeyFormatter EMACS_KEY_FORMATTER; /** * The default formatter. This is normally the formal key formatter, but can @@ -47,10 +47,14 @@ */ private static IKeyFormatter defaultKeyFormatter; - static this(){ - FORMAL_KEY_FORMATTER = new FormalKeyFormatter(); - EMACS_KEY_FORMATTER = new EmacsKeyFormatter(); - defaultKeyFormatter = FORMAL_KEY_FORMATTER; + private static void check_static_init(){ + if( FORMAL_KEY_FORMATTER is null ){ + synchronized if( FORMAL_KEY_FORMATTER is null ){ + FORMAL_KEY_FORMATTER = new FormalKeyFormatter(); + EMACS_KEY_FORMATTER = new EmacsKeyFormatter(); + defaultKeyFormatter = FORMAL_KEY_FORMATTER; + } + } } /** @@ -59,6 +63,7 @@ * @return The default formatter; never null. */ public static final IKeyFormatter getDefault() { + check_static_init(); return defaultKeyFormatter; } @@ -68,6 +73,7 @@ * @return The Xemacs formatter; never null. */ public static final IKeyFormatter getEmacsKeyFormatter() { + check_static_init(); return EMACS_KEY_FORMATTER; } @@ -77,6 +83,7 @@ * @return The formal formatter; never null. */ public static final IKeyFormatter getFormalKeyFormatter() { + check_static_init(); return FORMAL_KEY_FORMATTER; } @@ -87,6 +94,7 @@ * the default key formatter. Must not be null. */ public static final void setDefault(IKeyFormatter defaultKeyFormatter) { + check_static_init(); if (defaultKeyFormatter is null) { throw new NullPointerException(); } diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/resource/JFaceResources.d --- a/dwtx/jface/resource/JFaceResources.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/resource/JFaceResources.d Sun Apr 06 13:21:48 2008 +0200 @@ -64,8 +64,12 @@ * the associated display. */ private static Map!(Display,ResourceManager) registries; - static this(){ - registries = new HashMap!(Display,ResourceManager); + private static void init_registries(){ + if( registries is null ){ + synchronized if( registries is null ){ + registries = new HashMap!(Display,ResourceManager); + } + } } /** @@ -78,8 +82,12 @@ * The JFace resource bundle; eagerly initialized. */ private static /+final+/ ResourceBundle bundle; - static this(){ - bundle = ResourceBundle.getBundle("dwtx.jface.messages"); //$NON-NLS-1$ + private static void init_bundle(){ + if( bundle is null ){ + synchronized if( bundle is null ){ + bundle = ResourceBundle.getBundle("dwtx.jface.messages"); //$NON-NLS-1$ + } + } } /** @@ -179,6 +187,7 @@ * @return the resource bundle */ public static ResourceBundle getBundle() { + init_bundle(); return bundle; } @@ -206,6 +215,7 @@ * @return the global resource manager for the given display */ public static ResourceManager getResources(Display toQuery) { + init_registries(); ResourceManager reg = cast(ResourceManager) registries.get(toQuery); if (reg is null) { @@ -505,6 +515,7 @@ * @return the string */ public static String getString(String key) { + init_bundle(); try { return bundle.getString(key); } catch (MissingResourceException e) { diff -r b9ec89a5809c -r e10d9c2648be dwtx/jface/window/Window.d --- a/dwtx/jface/window/Window.d Sun Apr 06 13:19:51 2008 +0200 +++ b/dwtx/jface/window/Window.d Sun Apr 06 13:21:48 2008 +0200 @@ -119,7 +119,7 @@ * This interface defines a Exception Handler which can be set as a global * handler and will be called if an exception happens in the event loop. */ - public static interface IExceptionHandler { + public interface IExceptionHandler { /** * Handle the exception. * @@ -154,9 +154,14 @@ /** * The exception handler for this application. */ - private static IExceptionHandler exceptionHandler; - static this(){ - exceptionHandler = new DefaultExceptionHandler(); + private static IExceptionHandler exceptionHandler_; + private static IExceptionHandler exceptionHandler(){ + if( exceptionHandler_ is null ){ + synchronized if( exceptionHandler_ is null ){ + exceptionHandler_ = new DefaultExceptionHandler(); + } + } + return exceptionHandler_; } /** * The default orientation of the window. By default @@ -168,33 +173,38 @@ /** * Object used to locate the default parent for modal shells */ - private static IShellProvider defaultModalParent; - static this(){ - defaultModalParent = new class IShellProvider { - public Shell getShell() { - Display d = Display.getCurrent(); + private static IShellProvider defaultModalParent_; + private static IShellProvider defaultModalParent(){ + if( defaultModalParent_ is null ){ + synchronized if( defaultModalParent_ is null ){ + defaultModalParent_ = new class IShellProvider { + public Shell getShell() { + Display d = Display.getCurrent(); - if (d is null) { - return null; - } + if (d is null) { + return null; + } - Shell parent = d.getActiveShell(); + Shell parent = d.getActiveShell(); - // Make sure we don't pick a parent that has a modal child (this can lock the app) - if (parent is null) { - // If this is a top-level window, then there must not be any open modal windows. - parent = getModalChild(Display.getCurrent().getShells()); - } else { - // If we picked a parent with a modal child, use the modal child instead - Shell modalChild = getModalChild(parent.getShells()); - if (modalChild !is null) { - parent = modalChild; + // Make sure we don't pick a parent that has a modal child (this can lock the app) + if (parent is null) { + // If this is a top-level window, then there must not be any open modal windows. + parent = getModalChild(Display.getCurrent().getShells()); + } else { + // If we picked a parent with a modal child, use the modal child instead + Shell modalChild = getModalChild(parent.getShells()); + if (modalChild !is null) { + parent = modalChild; + } + } + + return parent; } - } - - return parent; + }; } - }; + } + return defaultModalParent_; } /** @@ -1043,7 +1053,7 @@ */ public static void setExceptionHandler(IExceptionHandler handler) { if ( cast(DefaultExceptionHandler)exceptionHandler ) { - exceptionHandler = handler; + exceptionHandler_ = handler; } } @@ -1056,7 +1066,7 @@ * @since 3.1 */ public static void setDefaultModalParent(IShellProvider provider) { - defaultModalParent = provider; + defaultModalParent_ = provider; } /**