Example usage for org.eclipse.jface.resource FontRegistry getKeySet

List of usage examples for org.eclipse.jface.resource FontRegistry getKeySet

Introduction

In this page you can find the example usage for org.eclipse.jface.resource FontRegistry getKeySet.

Prototype

@Override
    public Set<String> getKeySet() 

Source Link

Usage

From source file:gov.nasa.arc.spife.ui.timeline.util.TimelineUtils.java

License:Open Source License

private static Font deriveFontSize(Font font, String preferenceKey) {
    int pixelHeight = TIMELINE_PREFERENCES.getInt(preferenceKey);
    if (font == null) {
        font = Display.getDefault().getSystemFont();
    }/*ww  w .java2s  .c o m*/
    Device device = font.getDevice();
    if (device == null) {
        device = WidgetUtils.getDisplay();
    }
    int pixelsPerInch = device.getDPI().y;
    int pointHeight;
    if (pixelsPerInch == 0) {
        pointHeight = pixelHeight;
    } else {
        pointHeight = POINTS_PER_INCH * pixelHeight / pixelsPerInch;
    }
    FontData[] fontData = font.getFontData();
    for (int i = 0; i < fontData.length; i++) {
        fontData[i].setHeight(pointHeight);
    }

    String symbolicFontName = font.toString() + "_" + pointHeight;
    FontRegistry fontRegistry = FontUtils.FONT_REGISTRY_INSTANCE;
    boolean fontExists = fontRegistry.getKeySet().contains(symbolicFontName);
    Font desiredFont = null;
    if (!fontExists) {
        desiredFont = FontUtils.getStyledFont(font.getDevice(), fontData);
        fontRegistry.put(symbolicFontName, fontData);
    } else {
        desiredFont = fontRegistry.get(symbolicFontName);
    }
    return desiredFont;
}

From source file:gov.nasa.ensemble.common.ui.PageSelectionWidget.java

License:Open Source License

private Font getBoldFont() {
    Font systemFont = FontUtils.getSystemFont();
    int desiredFontHeight = 10;
    String symbolicFontName = systemFont.toString() + "_" + desiredFontHeight;
    FontRegistry fontRegistry = FontUtils.FONT_REGISTRY_INSTANCE;
    boolean fontExists = fontRegistry.getKeySet().contains(symbolicFontName);
    Font font = null;/*w  ww .ja  v  a 2 s.c  o m*/
    if (!fontExists) {
        font = FontUtils.getStyledFont(desiredFontHeight, SWT.NONE);
        fontRegistry.put(symbolicFontName, font.getFontData());
    } else {
        font = fontRegistry.get(symbolicFontName);
    }
    return font;
}

From source file:org.eclipse.e4mf.common.ui.viewer.ColumnViewerInformationControlToolTipSupport.java

License:Open Source License

protected String getSymbolicFont() {
    if (font == null) {
        return DEFAULT_FONT;
    } else {//from   w ww.  ja va 2  s.c  o m
        FontData[] fontData = font.getFontData();
        FontRegistry fontRegistry = JFaceResources.getFontRegistry();
        for (Object name : fontRegistry.getKeySet()) {
            FontData[] registerFontData = fontRegistry.getFontData((String) name);
            if (Arrays.equals(fontData, registerFontData)) {
                return (String) name;
            }
        }
        return DEFAULT_FONT;
    }
}

From source file:org.eclipse.ui.internal.themes.WorkbenchThemeManager.java

License:Open Source License

private WorkbenchThemeManager() {
    defaultThemeColorRegistry = new ColorRegistry(PlatformUI.getWorkbench().getDisplay());

    defaultThemeFontRegistry = new FontRegistry(PlatformUI.getWorkbench().getDisplay());

    // copy the font values from preferences.
    FontRegistry jfaceFonts = JFaceResources.getFontRegistry();
    for (Iterator i = jfaceFonts.getKeySet().iterator(); i.hasNext();) {
        String key = (String) i.next();
        defaultThemeFontRegistry.put(key, jfaceFonts.getFontData(key));
    }/* ww  w .j  av  a 2  s .c o m*/

    //Theme might be set via plugin_configuration.ini
    String themeId = PrefUtil.getAPIPreferenceStore()
            .getDefaultString(IWorkbenchPreferenceConstants.CURRENT_THEME_ID);

    //If not set, use default
    if (themeId.length() == 0)
        themeId = IThemeManager.DEFAULT_THEME;

    // Check if we are in high contrast mode. If so then set the theme to
    // the system default
    if (PlatformUI.getWorkbench().getDisplay() != null) {
        // Determine the high contrast setting before
        // any access to preferences
        final boolean[] highContrast = new boolean[] { false };
        PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {

            /*
             * (non-Javadoc)
             * 
             * @see java.lang.Runnable#run()
             */
            public void run() {
                highContrast[0] = Display.getCurrent().getHighContrast();

                Display.getCurrent().addListener(SWT.Settings, new Listener() {
                    public void handleEvent(Event event) {
                        updateThemes();
                    }
                });
            }
        });

        //If in HC, *always* use the system default.
        //This ignores any default theme set via plugin_customization.ini
        if (highContrast[0])
            themeId = SYSTEM_DEFAULT_THEME;
    }

    PrefUtil.getAPIPreferenceStore().setDefault(IWorkbenchPreferenceConstants.CURRENT_THEME_ID, themeId);
}

From source file:org.eclipse.ui.internal.themes.WorkbenchThemeManager.java

License:Open Source License

public void setCurrentTheme(String id) {
    ITheme oldTheme = currentTheme;//from  w ww .j a  v  a2  s . c  o  m
    if (WorkbenchThemeManager.getInstance().doSetCurrentTheme(id)) {
        firePropertyChange(CHANGE_CURRENT_THEME, oldTheme, getCurrentTheme());
        if (oldTheme != null) {
            oldTheme.removePropertyChangeListener(currentThemeListener);
        }
        currentTheme.addPropertyChangeListener(currentThemeListener);

        // update the preference if required.
        if (!PrefUtil.getAPIPreferenceStore().getString(IWorkbenchPreferenceConstants.CURRENT_THEME_ID)
                .equals(id)) {
            PrefUtil.getAPIPreferenceStore().setValue(IWorkbenchPreferenceConstants.CURRENT_THEME_ID, id);
            PrefUtil.saveAPIPrefs();
        }

        // update the jface registries
        {
            ColorRegistry jfaceColors = JFaceResources.getColorRegistry();
            ColorRegistry themeColors = currentTheme.getColorRegistry();
            for (Iterator i = themeColors.getKeySet().iterator(); i.hasNext();) {
                String key = (String) i.next();
                jfaceColors.put(key, themeColors.getRGB(key));
            }
        }
        {
            FontRegistry jfaceFonts = JFaceResources.getFontRegistry();
            FontRegistry themeFonts = currentTheme.getFontRegistry();
            for (Iterator i = themeFonts.getKeySet().iterator(); i.hasNext();) {
                String key = (String) i.next();
                jfaceFonts.put(key, themeFonts.getFontData(key));
            }
        }
    }
}

From source file:org.eclipse.ui.tests.themes.JFaceThemeTest.java

License:Open Source License

private void setAndTest(String themeId, IPropertyChangeListener listener) {
    JFaceResources.getFontRegistry().addListener(listener);
    JFaceResources.getColorRegistry().addListener(listener);
    fManager.setCurrentTheme(themeId);/*from  www .j  av  a 2 s.  c  o m*/
    ITheme theme = fManager.getTheme(themeId);
    assertEquals(theme, fManager.getCurrentTheme());
    {
        FontRegistry jfaceFonts = JFaceResources.getFontRegistry();
        FontRegistry themeFonts = theme.getFontRegistry();
        // don't test for equality - other tests (or clients) may be pushing 
        // new items into jface
        assertTrue(jfaceFonts.getKeySet().containsAll(themeFonts.getKeySet()));
        for (Iterator i = themeFonts.getKeySet().iterator(); i.hasNext();) {
            String key = (String) i.next();
            assertArrayEquals(themeFonts.getFontData(key), jfaceFonts.getFontData(key));
        }
    }
    {
        ColorRegistry jfaceColors = JFaceResources.getColorRegistry();
        ColorRegistry themeColors = theme.getColorRegistry();
        assertTrue(jfaceColors.getKeySet().containsAll(themeColors.getKeySet()));
        for (Iterator i = themeColors.getKeySet().iterator(); i.hasNext();) {
            String key = (String) i.next();
            assertEquals(themeColors.getRGB(key), jfaceColors.getRGB(key));
        }
    }
    JFaceResources.getFontRegistry().removeListener(listener);
    JFaceResources.getColorRegistry().removeListener(listener);
}