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

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

Introduction

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

Prototype

@Override
    public Set<String> getKeySet() 

Source Link

Usage

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

License:Open Source License

public void setCurrentTheme(String id) {
    ITheme oldTheme = currentTheme;//ww  w .  ja  v  a2 s  .co 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 ww w  . j a v a 2  s .c  om
    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);
}