2 Copyright (C) 2002, 2004 Free Software Foundation, Inc.
4 This file is part of GNU Classpath.
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)
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.
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., 59 Temple Place, Suite 330, Boston, MA
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
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. */
41 import java
.awt
.Component
;
42 import java
.awt
.Toolkit
;
44 import javax
.swing
.text
.JTextComponent
;
46 public abstract class LookAndFeel
49 * This method is called once by UIManager.setLookAndFeel to create
50 * the look and feel specific defaults table.
52 * @return the UI defaults
54 public UIDefaults
getDefaults()
59 public abstract String
getDescription();
61 public static Object
getDesktopPropertyValue(String systemPropertyName
, Object fallbackValue
)
63 Object value
= Toolkit
.getDefaultToolkit().getDesktopProperty(systemPropertyName
);
64 return value
!= null ? value
: fallbackValue
;
67 public abstract String
getID();
69 public abstract String
getName();
72 * Returns true when the Look and Feel supports window decorations,
73 * false others. This method returns always false and needs to be overwritten
74 * when the derived Look and Feel supports this.
80 public boolean getSupportsWindowDecorations()
86 * UIManager.setLookAndFeel calls this method before the first call
87 * (and typically the only call) to getDefaults().
89 public void initialize()
94 * Convenience method for installing a component's default Border object
95 * on the specified component if either the border is currently null
96 * or already an instance of UIResource.
98 public static void installBorder(JComponent c
, String defaultBorderName
)
103 * Convenience method for initializing a component's foreground and
104 * background color properties with values from the current defaults table.
106 public static void installColors(JComponent c
, String defaultBgName
, String defaultFgName
)
111 * Convenience method for initializing a components foreground background
112 * and font properties with values from the current defaults table.
114 public static void installColorsAndFont(JComponent component
,
115 String defaultBgName
,
116 String defaultFgName
,
117 String defaultFontName
)
121 public abstract boolean isNativeLookAndFeel();
123 public abstract boolean isSupportedLookAndFeel();
126 * Loads the bindings in keys into retMap.
128 public static void loadKeyBindings(InputMap retMap
, Object
[] keys
)
133 * Creates a ComponentInputMap from keys.
135 public static ComponentInputMap
makeComponentInputMap(JComponent c
,
142 * Utility method that creates a UIDefaults.LazyValue that creates an
143 * ImageIcon UIResource for the specified gifFile filename.
145 public static Object
makeIcon(Class baseClass
, String gifFile
)
151 * Creates a InputMap from keys.
153 public static InputMap
makeInputMap(Object
[] keys
)
159 * Convenience method for building lists of KeyBindings.
161 public static JTextComponent
.KeyBinding
[] makeKeyBindings(Object
[] keyBindingList
)
167 * Invoked when the user attempts an invalid operation. The default implement
168 * just beeps. Subclasses that wish to change this need to override this
171 * @param component the component the error occured in
173 public void provideErrorFeedback(Component component
)
175 Toolkit
.getDefaultToolkit().beep();
179 * Returns a string that displays and identifies this object's properties.
181 * @return the string "LookAndFeel"
183 public String
toString()
185 return "LookAndFeel";
189 * UIManager.setLookAndFeel calls this method just before we're replaced by
190 * a new default look and feel.
192 public void uninitialize()
197 * Convenience method for un-installing a component's default border on the
198 * specified component if the border is currently an instance of UIResource.
200 public static void uninstallBorder(JComponent c
)