📄 jfaceresources.java
字号:
/******************************************************************************* * Copyright (c) 2000, 2006 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/package org.eclipse.jface.resource;import java.text.MessageFormat; // Not using ICU to support standalone JFace scenarioimport java.util.HashMap;import java.util.Map;import java.util.MissingResourceException;import java.util.ResourceBundle;import org.eclipse.jface.util.Assert;import org.eclipse.swt.graphics.Font;import org.eclipse.swt.graphics.Image;import org.eclipse.swt.widgets.Display;/** * Utility methods to access JFace-specific resources. * <p> * All methods declared on this class are static. This * class cannot be instantiated. * </p> * <p> * The following global state is also maintained by this class: * <ul> * <li>a font registry</li> * <li>a color registry</li> * <li>an image registry</li> * <li>a resource bundle</li> * </ul> * </p> */public class JFaceResources { /** * Map of Display onto DeviceResourceManager. Holds all the resources for the associated display. */ private static final Map registries = new HashMap(); /** * The symbolic font name for the banner font * (value <code>"org.eclipse.jface.bannerfont"</code>). */ public static final String BANNER_FONT = "org.eclipse.jface.bannerfont"; //$NON-NLS-1$ /** * The JFace resource bundle; eagerly initialized. */ private static final ResourceBundle bundle = ResourceBundle .getBundle("org.eclipse.jface.messages"); //$NON-NLS-1$ /** * The JFace color registry; <code>null</code> until * lazily initialized or explicitly set. */ private static ColorRegistry colorRegistry; /** * The symbolic font name for the standard font * (value <code>"org.eclipse.jface.defaultfont"</code>). */ public static final String DEFAULT_FONT = "org.eclipse.jface.defaultfont"; //$NON-NLS-1$ /** * The symbolic font name for the dialog font * (value <code>"org.eclipse.jface.dialogfont"</code>). */ public static final String DIALOG_FONT = "org.eclipse.jface.dialogfont"; //$NON-NLS-1$ /** * The JFace font registry; <code>null</code> until * lazily initialized or explicitly set. */ private static FontRegistry fontRegistry = null; /** * The symbolic font name for the header font * (value <code>"org.eclipse.jface.headerfont"</code>). */ public static final String HEADER_FONT = "org.eclipse.jface.headerfont"; //$NON-NLS-1$ /** * The JFace image registry; <code>null</code> until * lazily initialized. */ private static ImageRegistry imageRegistry = null; /** * The symbolic font name for the text font * (value <code>"org.eclipse.jface.textfont"</code>). */ public static final String TEXT_FONT = "org.eclipse.jface.textfont"; //$NON-NLS-1$ /** * The symbolic font name for the viewer font * (value <code>"org.eclipse.jface.viewerfont"</code>). * @deprecated This font is not in use */ public static final String VIEWER_FONT = "org.eclipse.jface.viewerfont"; //$NON-NLS-1$ /** * The symbolic font name for the window font * (value <code>"org.eclipse.jface.windowfont"</code>). * @deprecated This font is not in use */ public static final String WINDOW_FONT = "org.eclipse.jface.windowfont"; //$NON-NLS-1$ /** * Returns the formatted message for the given key in * JFace's resource bundle. * * @param key the resource name * @param args the message arguments * @return the string */ public static String format(String key, Object[] args) { return MessageFormat.format(getString(key), args); } /** * Returns the JFace's banner font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.BANNER_FONT) * </pre> * * @return the font */ public static Font getBannerFont() { return getFontRegistry().get(BANNER_FONT); } /** * Returns the resource bundle for JFace itself. * The resouble bundle is obtained from * <code>ResourceBundle.getBundle("org.eclipse.jface.jface_nls")</code>. * <p> * Note that several static convenience methods are * also provided on this class for directly accessing * resources in this bundle. * </p> * * @return the resource bundle */ public static ResourceBundle getBundle() { return bundle; } /** * Returns the color registry for JFace itself. * <p> * @return the <code>ColorRegistry</code>. * @since 3.0 */ public static ColorRegistry getColorRegistry() { if (colorRegistry == null) { colorRegistry = new ColorRegistry(); } return colorRegistry; } /** * Returns the global resource manager for the given display * * @since 3.1 * * @param toQuery display to query * @return the global resource manager for the given display */ public static ResourceManager getResources(final Display toQuery) { ResourceManager reg = (ResourceManager)registries.get(toQuery); if (reg == null) { final DeviceResourceManager mgr = new DeviceResourceManager(toQuery); reg = mgr; registries.put(toQuery, reg); toQuery.disposeExec(new Runnable() { /* (non-Javadoc) * @see java.lang.Runnable#run() */ public void run() { mgr.dispose(); registries.remove(toQuery); } }); } return reg; } /** * Returns the ResourceManager for the current display. May only * be called from a UI thread. * * @since 3.1 * * @return the global ResourceManager for the current display */ public static ResourceManager getResources() { return getResources(Display.getCurrent()); } /** * Returns the JFace's standard font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.DEFAULT_FONT) * </pre> * * @return the font */ public static Font getDefaultFont() { return getFontRegistry().defaultFont(); } /** * Returns the JFace's dialog font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.DIALOG_FONT) * </pre> * * @return the font */ public static Font getDialogFont() { return getFontRegistry().get(DIALOG_FONT); } /** * Returns the font in JFace's font registry with the given * symbolic font name. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(symbolicName) * </pre> * * If an error occurs, return the default font. * * @param symbolicName the symbolic font name * @return the font */ public static Font getFont(String symbolicName) { return getFontRegistry().get(symbolicName); } /** * Returns the font registry for JFace itself. * If the value has not been established by an earlier * call to <code>setFontRegistry</code>, is it * initialized to * <code>new FontRegistry("org.eclipse.jface.resource.jfacefonts")</code>. * <p> * Note that several static convenience methods are * also provided on this class for directly accessing * JFace's standard fonts. * </p> */ public static FontRegistry getFontRegistry() { if (fontRegistry == null) { fontRegistry = new FontRegistry( "org.eclipse.jface.resource.jfacefonts"); //$NON-NLS-1$ } return fontRegistry; } /** * Returns the JFace's header font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.HEADER_FONT) * </pre> * * @return the font */ public static Font getHeaderFont() { return getFontRegistry().get(HEADER_FONT); } /** * Returns the image in JFace's image registry with the given key, * or <code>null</code> if none. * Convenience method equivalent to * <pre> * JFaceResources.getImageRegistry().get(key) * </pre> * * @param key the key * @return the image, or <code>null</code> if none */ public static Image getImage(String key) { return getImageRegistry().get(key); } /** * Returns the image registry for JFace itself. * <p> * Note that the static convenience method <code>getImage</code> * is also provided on this class. * </p> */ public static ImageRegistry getImageRegistry() { if (imageRegistry == null) { imageRegistry = new ImageRegistry(getResources(Display.getCurrent())); } return imageRegistry; } /** * Returns the resource object with the given key in * JFace's resource bundle. If there isn't any value under * the given key, the key is returned. * * @param key the resource name * @return the string */ public static String getString(String key) { try { return bundle.getString(key); } catch (MissingResourceException e) { return key; } } /** * Returns a list of string values corresponding to the * given list of keys. The lookup is done with <code>getString</code>. * The values are in the same order as the keys. * * @param keys a list of keys * @return a list of corresponding string values */ public static String[] getStrings(String[] keys) { Assert.isNotNull(keys); int length = keys.length; String[] result = new String[length]; for (int i = 0; i < length; i++) { result[i] = getString(keys[i]); } return result; } /** * Returns the JFace's text font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.TEXT_FONT) * </pre> * * @return the font */ public static Font getTextFont() { return getFontRegistry().get(TEXT_FONT); } /** * Returns the JFace's viewer font. * Convenience method equivalent to * <pre> * JFaceResources.getFontRegistry().get(JFaceResources.VIEWER_FONT) * </pre> * * @return the font * @deprecated This font is not in use */ public static Font getViewerFont() { return getFontRegistry().get(VIEWER_FONT); } /** * Sets JFace's font registry to the given value. * This method may only be called once; the call must occur * before <code>JFaceResources.getFontRegistry</code> * is invoked (either directly or indirectly). * * @param registry a font registry */ public static void setFontRegistry(FontRegistry registry) { Assert.isTrue(fontRegistry == null, "Font registry can only be set once."); //$NON-NLS-1$ fontRegistry = registry; } /* (non-Javadoc) * Declare a private constructor to block instantiation. */ private JFaceResources() { //no-op }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -