Mercurial > projects > dwt-addons
changeset 93:eb3ef3b7e244
Fix: change to lazy intialization, to prevent Display creation too early.
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 09 Jul 2008 18:01:43 +0200 |
parents | f05207c07a98 |
children | dadb23ea55a6 |
files | dwtx/jface/preference/PreferenceConverter.d |
diffstat | 1 files changed, 39 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- 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 <code>FontData[]</code> 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 <code>FontData</code> 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 <code>FontData</code> 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 <code>FontData</code> 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)