# HG changeset patch # User Frank Benoit # Date 1215619303 -7200 # Node ID eb3ef3b7e24488fccd3722c3171ea832dcf652ce # Parent f05207c07a989506cf50b5c8019f4262eeeb8396 Fix: change to lazy intialization, to prevent Display creation too early. diff -r f05207c07a98 -r eb3ef3b7e244 dwtx/jface/preference/PreferenceConverter.d --- a/dwtx/jface/preference/PreferenceConverter.d Mon Jul 07 15:54:03 2008 +0200 +++ b/dwtx/jface/preference/PreferenceConverter.d Wed Jul 09 18:01:43 2008 +0200 @@ -74,30 +74,54 @@ /** * The default-default value for FontData[] preferences. */ - public static const FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT; + private static bool FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized = false; + private static FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT_; + public static FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT(){ + if( !FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized ){ + synchronized( PreferenceConverter.classinfo ){ + if( !FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized ){ + Display display = Display.getCurrent(); + if (display is null) { + display = Display.getDefault (); + } + + FONTDATA_ARRAY_DEFAULT_DEFAULT_ = display.getSystemFont().getFontData(); + FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized = true; + } + } + } + return FONTDATA_ARRAY_DEFAULT_DEFAULT_; + } /** * The default-default value for FontData preferences. */ - public static const FontData FONTDATA_DEFAULT_DEFAULT; + private static FontData FONTDATA_DEFAULT_DEFAULT_; + private static bool FONTDATA_DEFAULT_DEFAULT_initialized = false; + public static FontData FONTDATA_DEFAULT_DEFAULT(){ + if( !FONTDATA_DEFAULT_DEFAULT_initialized ){ + FONTDATA_ARRAY_DEFAULT_DEFAULT(); + synchronized( PreferenceConverter.classinfo ){ + if( !FONTDATA_DEFAULT_DEFAULT_initialized ){ + /** + * The default-default value for FontData preferences. + * This is left in for compatibility purposes. It is recommended that + * FONTDATA_ARRAY_DEFAULT_DEFAULT is actually used. + */ + + FONTDATA_DEFAULT_DEFAULT_ = FONTDATA_ARRAY_DEFAULT_DEFAULT()[0]; + FONTDATA_DEFAULT_DEFAULT_initialized = true; + } + } + } + return FONTDATA_DEFAULT_DEFAULT_; + } + static this() { POINT_DEFAULT_DEFAULT = new Point(0, 0); RECTANGLE_DEFAULT_DEFAULT = new Rectangle(0, 0, 0, 0); COLOR_DEFAULT_DEFAULT = new RGB(0, 0, 0); - Display display = Display.getCurrent(); - if (display is null) { - display = Display.getDefault (); - } - - FONTDATA_ARRAY_DEFAULT_DEFAULT = display.getSystemFont().getFontData(); - /** - * The default-default value for FontData preferences. - * This is left in for compatibility purposes. It is recommended that - * FONTDATA_ARRAY_DEFAULT_DEFAULT is actually used. - */ - - FONTDATA_DEFAULT_DEFAULT = FONTDATA_ARRAY_DEFAULT_DEFAULT[0]; } /* (non-Javadoc)