2 Copyright (C) 2002 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 javax
.swing
.text
.JTextComponent
;
44 public abstract class LookAndFeel
46 public UIDefaults
getDefaults()
48 //This method is called once by UIManager.setLookAndFeel to create the look and feel specific defaults table.
52 public abstract String
getDescription();
53 public abstract String
getID();
54 public abstract String
getName();
56 public void initialize()
58 //UIManager.setLookAndFeel calls this method before the first call (and typically the only call) to getDefaults().
61 static void installBorder(JComponent c
, String defaultBorderName
)
63 //Convenience method for installing a component's default Border object on the specified component if either the border is currently null or already an instance of UIResource.
66 public static void installColors(JComponent c
, String defaultBgName
, String defaultFgName
)
68 //Convenience method for initializing a component's foreground and background color properties with values from the current defaults table.
71 public static void installColorsAndFont(JComponent c
, String defaultBgName
, String defaultFgName
, String defaultFontName
)
73 //Convenience method for initializing a components foreground background and font properties with values from the current defaults table.
76 public abstract boolean isNativeLookAndFeel();
77 public abstract boolean isSupportedLookAndFeel();
79 public static void loadKeyBindings(InputMap retMap
, Object
[] keys
)
81 //Loads the bindings in keys into retMap.
84 public static ComponentInputMap
makeComponentInputMap(JComponent c
, Object
[] keys
)
86 // Creates a ComponentInputMap from keys.
90 public static Object
makeIcon(Class baseClass
, String gifFile
)
92 //Utility method that creates a UIDefaults.LazyValue that creates an ImageIcon UIResource for the specified gifFile filename.
96 public static InputMap
makeInputMap(Object
[] keys
)
98 //Creates a InputMap from keys.
102 public static JTextComponent
.KeyBinding
[] makeKeyBindings(Object
[] keyBindingList
)
104 // Convenience method for building lists of KeyBindings.
109 public String
toString()
111 //Returns a string that displays and identifies this object's properties.
112 return "LookAndFeel";
115 public void uninitialize()
117 //UIManager.setLookAndFeel calls this method just before we're replaced by a new default look and feel.
121 public static void uninstallBorder(JComponent c
)
123 //Convenience method for un-installing a component's default border on the specified component if the border is currently an instance of UIResource.