Changeset 93:eb3ef3b7e244

Show
Ignore:
Timestamp:
07/09/08 12:01:43 (5 months ago)
Author:
Frank Benoit <benoit@tionex.de>
branch:
default
Message:

Fix: change to lazy intialization, to prevent Display creation too early.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • dwtx/jface/preference/PreferenceConverter.d

    r90 r93  
    7575     * The default-default value for <code>FontData[]</code> preferences. 
    7676     */ 
    77     public static const FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT; 
     77    private static bool FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized = false; 
     78    private static FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT_; 
     79    public static FontData[] FONTDATA_ARRAY_DEFAULT_DEFAULT(){ 
     80        if( !FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized ){ 
     81            synchronized( PreferenceConverter.classinfo ){ 
     82                if( !FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized ){ 
     83                    Display display = Display.getCurrent(); 
     84                    if (display is null) { 
     85                        display = Display.getDefault (); 
     86                    } 
     87 
     88                    FONTDATA_ARRAY_DEFAULT_DEFAULT_ = display.getSystemFont().getFontData(); 
     89                    FONTDATA_ARRAY_DEFAULT_DEFAULT_initialized = true; 
     90                } 
     91            } 
     92        } 
     93        return FONTDATA_ARRAY_DEFAULT_DEFAULT_; 
     94    } 
    7895 
    7996    /** 
    8097     * The default-default value for <code>FontData</code> preferences. 
    8198     */ 
    82     public static const FontData FONTDATA_DEFAULT_DEFAULT; 
     99    private static FontData FONTDATA_DEFAULT_DEFAULT_; 
     100    private static bool FONTDATA_DEFAULT_DEFAULT_initialized = false; 
     101    public static FontData FONTDATA_DEFAULT_DEFAULT(){ 
     102        if( !FONTDATA_DEFAULT_DEFAULT_initialized ){ 
     103            FONTDATA_ARRAY_DEFAULT_DEFAULT(); 
     104            synchronized( PreferenceConverter.classinfo ){ 
     105                if( !FONTDATA_DEFAULT_DEFAULT_initialized ){ 
     106                    /** 
     107                    * The default-default value for <code>FontData</code> preferences. 
     108                    * This is left in for compatibility purposes. It is recommended that 
     109                    * FONTDATA_ARRAY_DEFAULT_DEFAULT is actually used. 
     110                    */ 
     111 
     112                    FONTDATA_DEFAULT_DEFAULT_ = FONTDATA_ARRAY_DEFAULT_DEFAULT()[0]; 
     113                    FONTDATA_DEFAULT_DEFAULT_initialized = true; 
     114                } 
     115            } 
     116        } 
     117        return FONTDATA_DEFAULT_DEFAULT_; 
     118    } 
     119 
    83120    static this() { 
    84121        POINT_DEFAULT_DEFAULT = new Point(0, 0); 
     
    86123            0, 0, 0); 
    87124        COLOR_DEFAULT_DEFAULT = new RGB(0, 0, 0); 
    88         Display display = Display.getCurrent(); 
    89         if (display is null) { 
    90             display = Display.getDefault (); 
    91         } 
    92  
    93         FONTDATA_ARRAY_DEFAULT_DEFAULT = display.getSystemFont().getFontData(); 
    94         /** 
    95          * The default-default value for <code>FontData</code> preferences. 
    96          * This is left in for compatibility purposes. It is recommended that 
    97          * FONTDATA_ARRAY_DEFAULT_DEFAULT is actually used. 
    98          */ 
    99  
    100         FONTDATA_DEFAULT_DEFAULT = FONTDATA_ARRAY_DEFAULT_DEFAULT[0]; 
    101125    } 
    102126