Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 9331 Details for
Bug 56484
[Fonts/Colors] Theme API cannot rely on JFaceResources.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Work in progress
workbench.patch (text/plain), 7.43 KB, created by
Kim Horne
on 2004-04-08 11:47:01 EDT
(
hide
)
Description:
Work in progress
Filename:
MIME Type:
Creator:
Kim Horne
Created:
2004-04-08 11:47:01 EDT
Size:
7.43 KB
patch
obsolete
>Index: Eclipse UI/org/eclipse/ui/internal/WorkbenchPlugin.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchPlugin.java,v >retrieving revision 1.81 >diff -u -r1.81 WorkbenchPlugin.java >--- Eclipse UI/org/eclipse/ui/internal/WorkbenchPlugin.java 6 Apr 2004 03:03:48 -0000 1.81 >+++ Eclipse UI/org/eclipse/ui/internal/WorkbenchPlugin.java 8 Apr 2004 15:39:54 -0000 >@@ -24,16 +24,12 @@ > import org.eclipse.jface.preference.IPreferenceNode; > import org.eclipse.jface.preference.IPreferenceStore; > import org.eclipse.jface.preference.JFacePreferences; >-import org.eclipse.jface.preference.PreferenceConverter; > import org.eclipse.jface.preference.PreferenceManager; >-import org.eclipse.jface.resource.FontRegistry; > import org.eclipse.jface.resource.ImageDescriptor; > import org.eclipse.jface.resource.ImageRegistry; >-import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.util.OpenStrategy; > import org.eclipse.swt.SWT; > import org.eclipse.swt.custom.BusyIndicator; >-import org.eclipse.swt.graphics.FontData; > import org.eclipse.ui.IEditorRegistry; > import org.eclipse.ui.IElementFactory; > import org.eclipse.ui.IPerspectiveRegistry; >@@ -508,21 +504,9 @@ > //Temporary option to turn off the dialog font > store.setDefault("DISABLE_DIALOG_FONT", false); //$NON-NLS-1$ > >- // @issue get rid of PreferenceConverter - defer setting default fonts until Display created. >- FontRegistry registry = JFaceResources.getFontRegistry(); >- initializeFont(JFaceResources.DIALOG_FONT, registry, store); >- initializeFont(JFaceResources.BANNER_FONT, registry, store); >- initializeFont(JFaceResources.HEADER_FONT, registry, store); >- initializeFont(JFaceResources.TEXT_FONT, registry, store); >- > store.addPropertyChangeListener(new PlatformUIPreferenceListener()); > } > >- private void initializeFont(String fontKey, FontRegistry registry, IPreferenceStore store) { >- >- FontData[] fontData = registry.getFontData(fontKey); >- PreferenceConverter.setDefault(store, fontKey, fontData); >- } > /** > * Log the given status to the ISV log. > * >Index: Eclipse UI/org/eclipse/ui/internal/themes/Theme.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/themes/Theme.java,v >retrieving revision 1.13 >diff -u -r1.13 Theme.java >--- Eclipse UI/org/eclipse/ui/internal/themes/Theme.java 7 Apr 2004 14:33:49 -0000 1.13 >+++ Eclipse UI/org/eclipse/ui/internal/themes/Theme.java 8 Apr 2004 15:39:54 -0000 >@@ -17,7 +17,6 @@ > import org.eclipse.jface.resource.ColorRegistry; > import org.eclipse.jface.resource.DataFormatException; > import org.eclipse.jface.resource.FontRegistry; >-import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.resource.StringConverter; > import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.jface.util.ListenerList; >@@ -200,14 +199,14 @@ > if (themeColorRegistry != null) > return themeColorRegistry; > else >- return JFaceResources.getColorRegistry(); >+ return WorkbenchThemeManager.getInstance().getDefaultThemeColorRegistry(); > } > > public FontRegistry getFontRegistry() { > if (themeFontRegistry != null) > return themeFontRegistry; > else >- return JFaceResources.getFontRegistry(); >+ return WorkbenchThemeManager.getInstance().getDefaultThemeFontRegistry(); > } > > public void dispose() { >Index: Eclipse UI/org/eclipse/ui/internal/themes/WorkbenchThemeManager.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/themes/WorkbenchThemeManager.java,v >retrieving revision 1.9 >diff -u -r1.9 WorkbenchThemeManager.java >--- Eclipse UI/org/eclipse/ui/internal/themes/WorkbenchThemeManager.java 6 Apr 2004 18:58:53 -0000 1.9 >+++ Eclipse UI/org/eclipse/ui/internal/themes/WorkbenchThemeManager.java 8 Apr 2004 15:39:54 -0000 >@@ -14,9 +14,14 @@ > import java.util.Iterator; > import java.util.Map; > >+import org.eclipse.jface.resource.ColorRegistry; >+import org.eclipse.jface.resource.FontRegistry; >+import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.util.IPropertyChangeListener; > import org.eclipse.jface.util.ListenerList; > import org.eclipse.jface.util.PropertyChangeEvent; >+import org.eclipse.swt.graphics.FontData; >+import org.eclipse.swt.graphics.RGB; > import org.eclipse.ui.PlatformUI; > import org.eclipse.ui.internal.IPreferenceConstants; > import org.eclipse.ui.internal.WorkbenchPlugin; >@@ -34,11 +39,23 @@ > private IThemeRegistry themeRegistry; > private static WorkbenchThemeManager instance; > >+ private ColorRegistry defaultThemeColorRegistry; >+ private FontRegistry defaultThemeFontRegistry; >+ > /* > * Call dispose when we close > */ > private WorkbenchThemeManager () { >- //no-op >+ 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)); >+ } > } > > /** >@@ -93,7 +110,13 @@ > private IPropertyChangeListener currentThemeListener = new IPropertyChangeListener() { > > public void propertyChange(PropertyChangeEvent event) { >- firePropertyChange(event); >+ firePropertyChange(event); >+ if (event.getSource() instanceof FontRegistry) { >+ JFaceResources.getFontRegistry().put(event.getProperty(), (FontData[]) event.getNewValue()); >+ } >+ else if (event.getSource() instanceof ColorRegistry) { >+ JFaceResources.getColorRegistry().put(event.getProperty(), (RGB) event.getNewValue()); >+ } > } > }; > >@@ -123,6 +146,24 @@ > > WorkbenchPlugin.getDefault().getPreferenceStore().setValue(IPreferenceConstants.CURRENT_THEME_ID, id == null ? "" : id); //$NON-NLS-1$ > WorkbenchPlugin.getDefault().savePluginPreferences(); >+ >+ //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)); >+ } >+ } > } > } > >@@ -167,4 +208,12 @@ > public void removePropertyChangeListener(IPropertyChangeListener listener) { > propertyChangeListeners.remove(listener); > } >+ >+ public ColorRegistry getDefaultThemeColorRegistry() { >+ return defaultThemeColorRegistry; >+ } >+ >+ public FontRegistry getDefaultThemeFontRegistry() { >+ return defaultThemeFontRegistry; >+ } > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 56484
: 9331