GNU Classpath (0.18) | ||
Frames | No Frames |
1: /* LookAndFeel.java -- 2: Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package javax.swing; 40: 41: import java.awt.Component; 42: import java.awt.Toolkit; 43: 44: import javax.swing.text.JTextComponent; 45: 46: public abstract class LookAndFeel 47: { 48: /** 49: * This method is called once by UIManager.setLookAndFeel to create 50: * the look and feel specific defaults table. 51: * 52: * @return the UI defaults 53: */ 54: public UIDefaults getDefaults() 55: { 56: return null; 57: } 58: 59: /** 60: * Returns a description of the look and feel. 61: * 62: * @return A description of the look and feel. 63: */ 64: public abstract String getDescription(); 65: 66: public static Object getDesktopPropertyValue(String systemPropertyName, 67: Object fallbackValue) 68: { 69: Object value = Toolkit.getDefaultToolkit().getDesktopProperty(systemPropertyName); 70: return value != null ? value : fallbackValue; 71: } 72: 73: /** 74: * Returns an identifier for the look and feel. 75: * 76: * @return An identifier for the look and feel. 77: */ 78: public abstract String getID(); 79: 80: /** 81: * Returns the name for the look and feel. 82: * 83: * @return The name for the look and feel. 84: */ 85: public abstract String getName(); 86: 87: /** 88: * Returns true when the Look and Feel supports window decorations, 89: * false others. This method returns always false and needs to be overwritten 90: * when the derived Look and Feel supports this. 91: * 92: * @return false 93: * 94: * @since 1.4 95: */ 96: public boolean getSupportsWindowDecorations() 97: { 98: return false; 99: } 100: 101: /** 102: * UIManager.setLookAndFeel calls this method before the first call 103: * (and typically the only call) to getDefaults(). 104: */ 105: public void initialize() 106: { 107: } 108: 109: /** 110: * Convenience method for installing a component's default Border object 111: * on the specified component if either the border is currently null 112: * or already an instance of UIResource. 113: */ 114: public static void installBorder(JComponent c, String defaultBorderName) 115: { 116: } 117: 118: /** 119: * Convenience method for initializing a component's foreground and 120: * background color properties with values from the current defaults table. 121: */ 122: public static void installColors(JComponent c, String defaultBgName, String defaultFgName) 123: { 124: } 125: 126: /** 127: * Convenience method for initializing a components foreground background 128: * and font properties with values from the current defaults table. 129: */ 130: public static void installColorsAndFont(JComponent component, 131: String defaultBgName, 132: String defaultFgName, 133: String defaultFontName) 134: { 135: } 136: 137: /** 138: * Returns <code>true</code> if the look and feel is the "native" look and 139: * feel for the current platform, and <code>false</code> otherwise. 140: * 141: * @return A flag indicating whether or not this is the native look and feel 142: * for the current platform. 143: */ 144: public abstract boolean isNativeLookAndFeel(); 145: 146: /** 147: * Returns <code>true</code> if the look and feel is supported on the 148: * current operating system, and <code>false</code> otherwise. This 149: * mechanism is provided so that it is possible to prevent a look and feel 150: * from being used on some operating systems (usually for legal, not 151: * technical, reasons). 152: * 153: * @return A flag indicating whether or not the look and feel is supported 154: * on the current platform. 155: */ 156: public abstract boolean isSupportedLookAndFeel(); 157: 158: /** 159: * Loads the bindings in keys into retMap. 160: */ 161: public static void loadKeyBindings(InputMap retMap, Object[] keys) 162: { 163: } 164: 165: /** 166: * Creates a ComponentInputMap from keys. 167: */ 168: public static ComponentInputMap makeComponentInputMap(JComponent c, 169: Object[] keys) 170: { 171: return null; 172: } 173: 174: /** 175: * Utility method that creates a UIDefaults.LazyValue that creates an 176: * ImageIcon UIResource for the specified gifFile filename. 177: */ 178: public static Object makeIcon(Class baseClass, String gifFile) 179: { 180: return null; 181: } 182: 183: /** 184: * Creates a InputMap from keys. 185: */ 186: public static InputMap makeInputMap(Object[] keys) 187: { 188: return null; 189: } 190: 191: /** 192: * Convenience method for building lists of KeyBindings. 193: */ 194: public static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList) 195: { 196: return null; 197: } 198: 199: /** 200: * Invoked when the user attempts an invalid operation. The default implement 201: * just beeps. Subclasses that wish to change this need to override this 202: * method. 203: * 204: * @param component the component the error occured in 205: */ 206: public void provideErrorFeedback(Component component) 207: { 208: Toolkit.getDefaultToolkit().beep(); 209: } 210: 211: /** 212: * Returns a string that displays and identifies this object's properties. 213: * 214: * @return the string "LookAndFeel" 215: */ 216: public String toString() 217: { 218: return "LookAndFeel"; 219: } 220: 221: /** 222: * UIManager.setLookAndFeel calls this method just before we're replaced by 223: * a new default look and feel. 224: */ 225: public void uninitialize() 226: { 227: } 228: 229: /** 230: * Convenience method for un-installing a component's default border on the 231: * specified component if the border is currently an instance of UIResource. 232: */ 233: public static void uninstallBorder(JComponent c) 234: { 235: } 236: }
GNU Classpath (0.18) |