|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.jidesoft.plaf.LookAndFeelFactory
public class LookAndFeelFactory
JIDE Software created many new components that need their own ComponentUI classes and additional UIDefaults in UIDefaults table. LookAndFeelFactory can take the UIDefaults from any existing look and feel and add the extra UIDefaults JIDE components need.
Before using any JIDE components, please make you call one of the two LookAndFeelFactory.installJideExtension(...) methods. Basically, you set L&F using UIManager first just like before, then call installJideExtension. See code below for an example.
UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); // you need to catch the exceptions on this call.
LookAndFeelFactory.installJideExtension();
LookAndFeelFactory.installJideExtension() method will check what kind of L&F you set and what operating system you
are on and decide which style of JIDE extension it will install. Here is the rule. EXTENSION_STYLE_VSNET
, EXTENSION_STYLE_ECLIPSE
, EXTENSION_STYLE_ECLIPSE3X
, EXTENSION_STYLE_OFFICE2003
, EXTENSION_STYLE_OFFICE2007
, or EXTENSION_STYLE_XERTO
, EXTENSION_STYLE_OFFICE2003_WITHOUT_MENU
, EXTENSION_STYLE_OFFICE2007_WITHOUT_MENU
, EXTENSION_STYLE_ECLIPSE_WITHOUT_MENU
, EXTENSION_STYLE_ECLIPSE3X_WITHOUT_MENU
. In the other word, you will
make the choice of style instead of letting LookAndFeelFactory to decide one for you. Please note, there is no
constant defined for AQUA_STYLE. The only way to use it is when you are using Aqua L&F or Quaqua L&F and you call
installJideExtension() method, the one without parameter.
Another way is to call installDefaultLookAndFeelAndExtension()
which will set the default
L&Fs based on the OS and install JIDE extension.
LookAndFeelFactory supports a number of known L&Fs. Some are L&Fs in the JDK such as Metal, Windows, Aqua (on Apple
JDK only), GTK. We also support some 3rd party L&Fs such as Plastic XP or Plastic 3D, Tonic, A03, Synthetica etc.
If you are using a 3rd party L&F we are not officially supporting, you might need to customize it. Here are two
classes you can use - LookAndFeelFactory.UIDefaultsInitializer
and LookAndFeelFactory.UIDefaultsCustomizer
.
Let's start with UIDefaultsCustomizer. No matter what unknown L&F you are trying to use, LookAndFeelFactory's
installJideExtension() will try to install the UIDefaults that JIDE components required. Hopefully JIDE will run on
your L&F without any exception. But most likely, it won't look very good. That's why you need LookAndFeelFactory.UIDefaultsCustomizer
to customize the UIDefaults.
Most likely, you will not need to use LookAndFeelFactory.UIDefaultsInitializer
. The only exception is Synth L&F and any L&Fs
based on it. The reason is we calculate all colors we will use in JIDE components from existing well-known
UIDefaults. For example, we will use UIManagerLookup.getColor("activeCaption") to calculate a color that we can use
in dockable frame's title pane. We will use UIManagerLookup.getColor("control") to calculate a color that we can use
as background of JIDE component. Most L&Fs will fill those UIDefaults. However in Synth L&F, those UIDefaults may or
may not have a valid value. You will end up with NPE later in the code when you call installJideExtension. In this
case, you can add those extra UIDefaults in UIDefaultsInitializer. We will call it before installJideExtension is
called so that those UIDefaults are there ready for us to use. This is how added support to GTK L&F and Synthetica
L&F.
After you create your own UIDefaultsCustomizer or Initializer, you can call addUIDefaultsCustomizer(com.jidesoft.plaf.LookAndFeelFactory.UIDefaultsCustomizer)
or addUIDefaultsInitializer(com.jidesoft.plaf.LookAndFeelFactory.UIDefaultsInitializer)
which will make the customizer
or the initializer triggered all the times. If you only want it to be used for a certain L&F, you should use registerDefaultCustomizer(String, String)
or registerDefaultInitializer(String, String)
.
By default, we also use UIDefaultsCustomizer and UIDefaultsInitializer internally to provide support for non-standard
L&Fs. However we look into the classes under "com.jidesoft.plaf" package for default customizers and initializers.
For example, for PlasticXPLookAndFeel, the corresponding customizer is "oom.jidesoft.plaf.plasticxp.PlasticXPCustomizer".
We basically take the L&F name "PlasticXP", append it after "com.jidesoft.plaf" using lower case to get package name,
take the L&F name, append with "Customizer" to get the class name. We will look at PlasticXPLookAndFeel's super class
which is PlasticLookAndFeel. The customizer corresponding to PlasticLookAndFeel is
"com.jidesoft.plaf.plastic.PlasticCustomizer". This searching process continues till we find all super classes of a
L&F. Then we start from its top-most super class and call the customizers one by one, if it is there. The
src-plaf.jar or src-plaf-jdk7.jar contain some of these customizers. You could use this naming pattern to create the
customizers so that you don't need to register them explicitly.
installJideExtension()
method will only add the additional UIDefaults to current ClassLoader. If you have
several class loaders in your system, you probably should tell the UIManager to use the class loader that called
installJideExtension
. Otherwise, you might some unexpected errors. Here is how to specify the class
loaders.
UIManager.put("ClassLoader", currentClass.getClassLoader()); // currentClass is the class where the code is.
LookAndFeelFactory.installDefaultLookAndFeelAndExtension(); // or installJideExtension()
Nested Class Summary | |
---|---|
static interface |
LookAndFeelFactory.UIDefaultsCustomizer
An interface to make the customization of UIDefaults easier. |
static interface |
LookAndFeelFactory.UIDefaultsInitializer
An interface to make the initialization of UIDefaults easier. |
Field Summary | |
---|---|
static String |
A03_LNF
Class name of A03 L&F. |
static String |
ALLOY_LNF
Class name of Alloy L&F. |
static String |
AQUA_LNF
Class name of Aqua L&F provided in Apple Mac OS X JDK. |
static String |
AQUA_LNF_6
Class name of Aqua L&F provided in Apple Mac OS X JDK. |
static String |
BIZ_LNF
Class name of Bizlaf L&F provided by Centigrade. |
static int |
ECLIPSE_STYLE
The same as EXTENSION_STYLE_ECLIPSE |
static int |
ECLIPSE3X_STYLE
The same as EXTENSION_STYLE_ECLIPSE |
static int |
EXTENSION_STYLE_ECLIPSE
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_ECLIPSE_WITHOUT_MENU
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_ECLIPSE3X
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_ECLIPSE3X_WITHOUT_MENU
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_OFFICE2003
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_OFFICE2003_WITHOUT_MENU
Deprecated. |
static int |
EXTENSION_STYLE_OFFICE2007
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_OFFICE2007_WITHOUT_MENU
Deprecated. |
static int |
EXTENSION_STYLE_VSNET
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_VSNET_WITHOUT_MENU
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_XERTO
A style that you can use with installJideExtension(int) method. |
static int |
EXTENSION_STYLE_XERTO_WITHOUT_MENU
A style that you can use with installJideExtension(int) method. |
static String |
GTK_LNF
Class name of GTK L&F provided by Sun JDK. |
static String |
JIDE_EXTENSION_INSTALLED
If installJideExtension is called, it will put an entry on UIDefaults table. |
static String |
JIDE_STYLE_INSTALLED
If installJideExtension is called, a JIDE style will be installed on UIDefaults table. |
static String |
LAF_INSTALLED
|
static String |
LAF_NOT_INSTALLED
|
static String |
METAL_LNF
Class name of Metal L&F provided in Sun JDK. |
static String |
MOTIF_LNF
Class name of Motif L&F provided by Sun JDK. |
static String |
NIMBUS_LNF_NAME
The name of Nimbus L&F. |
static int |
OFFICE2003_STYLE
The same as EXTENSION_STYLE_OFFICE2003 |
static int |
OFFICE2007_STYLE
The same as EXTENSION_STYLE_OFFICE2007 |
static String |
PGS_LNF
Class name of Pgs L&F. |
static String |
PLASTIC3D_LNF
Class name of Plastic3D L&F. |
static String |
PLASTIC3D_LNF_1_3
Deprecated. replaced by PLASTIC3D_LNF |
static String |
PLASTICXP_LNF
Class name of PlasticXP L&F. |
static String |
QUAQUA_LNF
Class name of Quaqua L&F. |
static String |
SYNTH_LNF
Class name of Synth L&F provided in Sun JDK. |
static String |
SYNTHETICA_LNF
Class name of Synthetica L&F. |
static String |
SYNTHETICA_LNF_PREFIX
|
static String |
TONIC_LNF
Class name of Tonic L&F. |
static int |
VSNET_STYLE
The same as EXTENSION_STYLE_VSNET |
static int |
VSNET_STYLE_WITHOUT_MENU
The same as EXTENSION_STYLE_VSNET_WITHOUT_MENU |
static String |
WINDOWS_CLASSIC_LNF
Class name of Windows L&F provided in Sun JDK. |
static String |
WINDOWS_LNF
Class name of Windows L&F provided in Sun JDK. |
static int |
XERTO_STYLE
The same as EXTENSION_STYLE_XERTO |
static int |
XERTO_STYLE_WITHOUT_MENU
The same as EXTENSION_STYLE_XERTO_WITHOUT_MENU |
Constructor Summary | |
---|---|
protected |
LookAndFeelFactory()
|
Method Summary | |
---|---|
static void |
addUIDefaultsCustomizer(LookAndFeelFactory.UIDefaultsCustomizer uiDefaultsCustomizer)
Adds your own UIDefaults customizer. |
static void |
addUIDefaultsInitializer(LookAndFeelFactory.UIDefaultsInitializer uiDefaultsInitializer)
Adds your own UIDefaults initializer. |
static void |
clearDefaultCustomizers()
Clears all registered customizers. |
static void |
clearDefaultInitializers()
Clears all registered initializers. |
static int |
getDefaultStyle()
Gets the default style. |
static LookAndFeel |
getLookAndFeel()
Gets current L&F. |
static int |
getProductsUsed()
|
static int |
getStyle()
Gets current style. |
static LookAndFeelFactory.UIDefaultsCustomizer[] |
getUIDefaultsCustomizers()
Gets all UIDefaults customizers. |
static LookAndFeelFactory.UIDefaultsInitializer[] |
getUIDefaultsInitializers()
Gets all UIDefaults initializers. |
static ClassLoader |
getUIManagerClassLoader()
|
static void |
installDefaultLookAndFeel()
Install the default L&F. |
static void |
installDefaultLookAndFeelAndExtension()
Install the default L&F. |
static void |
installJideExtension()
Adds additional UIDefaults JIDE needed to UIDefault table. |
static void |
installJideExtension(int style)
Add additional UIDefaults JIDE needed to UIDefaults table. |
static void |
installJideExtension(UIDefaults uiDefaults,
LookAndFeel lnf,
int style)
Installs the UIDefault needed by JIDE component to the uiDefaults table passed in. |
static boolean |
isA03LnfInstalled()
Returns whether A03 L&F is in classpath |
static boolean |
isAlloyLnfInstalled()
Returns whether alloy L&F is in classpath |
static boolean |
isAquaLnfInstalled()
Returns whether or not the Aqua L&F is in classpath. |
static boolean |
isBizlafLnfInstalled()
Returns whether Bizlaf L&F is in classpath |
static boolean |
isCurrentLnfDecorated()
Checks if the current L&F uses decorated frames. |
static boolean |
isGTKLnfInstalled()
Returns whether GTK L&F is in classpath |
static boolean |
isJideExtensionInstalled()
Checks if JIDE extension is installed. |
static boolean |
isLnfInstalled(String lnfName)
Returns whether or not the L&F is in classpath. |
static boolean |
isLnfInUse(String lnf)
Checks if the L&F is the L&F or a subclass of the L&F. |
static boolean |
isLoadLookAndFeelClass()
Gets the flag indicating if JIDE will try to load the LnF class when isLnfInstalled(String) is invoked. |
static boolean |
isNimbusLnfInstalled()
Returns whether or not the Nimbus L&F is in classpath. |
static boolean |
isPgsLnfInstalled()
Returns whether or not the Pgs L&F is in classpath. |
static boolean |
isPlastic3D13LnfInstalled()
Deprecated. replace by isPlastic3DLnfInstalled() |
static boolean |
isPlastic3DLnfInstalled()
Returns whether Plastic3D L&F is in classpath |
static boolean |
isPlasticXPLnfInstalled()
Returns whether PlasticXP L&F is in classpath |
static boolean |
isQuaquaLnfInstalled()
Returns whether or not the Quaqua L&F is in classpath. |
static boolean |
isSyntheticaLnfInstalled()
Returns whether or not the Synthetica L&F is in classpath. |
static boolean |
isTonicLnfInstalled()
Returns whether Tonic L&F is in classpath |
static void |
main(String[] args)
|
static void |
overwriteDefaults(UIDefaults table,
Object[] keyValueArray)
Puts a list of UIDefault to the UIDefaults table. |
static void |
putDefaults(UIDefaults table,
Object[] keyValueArray)
Puts a list of UIDefault to the UIDefaults table. |
static void |
registerDefaultCustomizer(String lnfClassName,
String customizerClassName)
Registers a UIDefaultsCustomizer with a L&F. |
static void |
registerDefaultInitializer(String lnfClassName,
String initializerClassName)
Registers a UIDefaultsInitializer with a L&F. |
static void |
removeUIDefaultsCustomizer(LookAndFeelFactory.UIDefaultsCustomizer uiDefaultsCustomizer)
Removes an existing UIDefaults customizer you added before. |
static void |
removeUIDefaultsInitializer(LookAndFeelFactory.UIDefaultsInitializer uiDefaultsInitializer)
Removes an existing UIDefaults initializer you added before. |
static void |
setDefaultStyle(int defaultStyle)
Sets the default style. |
static void |
setLnfInstalled(String lnfName,
boolean installed)
Tells the LookAndFeelFactory whether a L&F is installed. |
static void |
setLoadLookAndFeelClass(boolean loadLookAndFeelClass)
Sets the flag indicating if JIDE will try to load the L&F class when isLnfInstalled(String) is invoked. |
static void |
setProductsUsed(int productsUsed)
Sets the products you will use. |
static void |
unregisterDefaultCustomizer(String lnfClassName)
Unregisters a UIDefaultCustomizer for L&F. |
static void |
unregisterDefaultInitializer(String lnfClassName)
Unregisters a UIDefaultsInitializer for L&F. |
static void |
verifyDefaults(UIDefaults table,
Object[] keyValueList)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String WINDOWS_CLASSIC_LNF
public static final String WINDOWS_LNF
public static final String METAL_LNF
public static final String SYNTH_LNF
public static final String AQUA_LNF
public static final String AQUA_LNF_6
public static final String QUAQUA_LNF
public static final String ALLOY_LNF
public static final String SYNTHETICA_LNF
public static final String SYNTHETICA_LNF_PREFIX
public static final String PLASTIC3D_LNF
@Deprecated public static final String PLASTIC3D_LNF_1_3
public static final String PLASTICXP_LNF
public static final String TONIC_LNF
public static final String A03_LNF
public static final String PGS_LNF
public static final String GTK_LNF
public static final String MOTIF_LNF
public static final String BIZ_LNF
public static final String NIMBUS_LNF_NAME
public static final int VSNET_STYLE_WITHOUT_MENU
EXTENSION_STYLE_VSNET_WITHOUT_MENU
EXTENSION_STYLE_VSNET_WITHOUT_MENU
,
Constant Field Valuespublic static final int VSNET_STYLE
EXTENSION_STYLE_VSNET
EXTENSION_STYLE_VSNET
,
Constant Field Valuespublic static final int ECLIPSE_STYLE
EXTENSION_STYLE_ECLIPSE
EXTENSION_STYLE_ECLIPSE
,
Constant Field Valuespublic static final int OFFICE2003_STYLE
EXTENSION_STYLE_OFFICE2003
EXTENSION_STYLE_OFFICE2003
,
Constant Field Valuespublic static final int XERTO_STYLE
EXTENSION_STYLE_XERTO
EXTENSION_STYLE_XERTO
,
Constant Field Valuespublic static final int XERTO_STYLE_WITHOUT_MENU
EXTENSION_STYLE_XERTO_WITHOUT_MENU
EXTENSION_STYLE_XERTO_WITHOUT_MENU
,
Constant Field Valuespublic static final int ECLIPSE3X_STYLE
EXTENSION_STYLE_ECLIPSE
EXTENSION_STYLE_ECLIPSE
,
Constant Field Valuespublic static final int OFFICE2007_STYLE
EXTENSION_STYLE_OFFICE2007
EXTENSION_STYLE_OFFICE2007
,
Constant Field Valuespublic static final int EXTENSION_STYLE_VSNET_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as VSNET_STYLE
except it doesn't have menu related UIDefaults. You can only use this style if you didn't use any component from
JIDE Action Framework.
EXTENSION_STYLE_VSNET
,
Constant Field Valuespublic static final int EXTENSION_STYLE_VSNET
installJideExtension(int)
method. This style mimics the visual style of
Microsoft Visual Studio .NET for the toolbars, menus and dockable windows.
Vsnet style is a very simple style with no gradient. Although it works on almost all L&Fs in any operating
systems, it looks the best on Windows 2000 or 98, or on Windows XP when XP theme is not on. If XP theme is on, we
suggest you use Office2003 style or Xerto style. Since the style is so simple, it works with a lot of the 3rd
party L&F such as Tonic, Pgs, Alloy etc without causing too much noise. That's why this is also the default style
for any L&Fs we don't recognize when you call installJideExtension()
, the one with out style parameter.
If you would like another style to be used as the default style, you can call setDefaultStyle(int)
method.
Here is the code to set to Windows L&F with Vsnet style extension.
UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); // you need to catch the
exceptions on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_VSNET);
There is a special system property "shading theme" you can use. If you turn it on using the code below, you will
see a gradient on dockable frame's title pane and rounded corner and gradient on the tabs of JideTabbedPane. So
if the L&F you are using uses gradient, you can set this property to true to match with your L&F. For example, if
you use Plastic3D L&F, turning this property on will look better.
System.setProperty("shadingtheme", "true");
public static final int EXTENSION_STYLE_ECLIPSE
installJideExtension(int)
method. This style mimics the visual style of
Eclipse 2.x for the toolbars, menus and dockable windows.
Eclipse style works for almost all L&Fs and on any operating systems, although it looks the best on Windows. For
any other operating systems we suggest you to use EXTENSION_STYLE_XERTO or EXTENSION_STYLE_VSNET.
Here is the code to set to any L&F with Eclipse style extension.
UIManager.setLookAndFeel(AnyLookAndFeel.class.getName()); // you need to catch the
exceptions
on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_ECLIPSE);
public static final int EXTENSION_STYLE_OFFICE2003
installJideExtension(int)
method. This style mimics the visual style of
Microsoft Office2003 for the toolbars, menus and dockable windows.
Office2003 style looks great on Windows XP when Windows or Windows XP L&F from Sun JDK is used. It replicated the
exact same style as Microsoft Office 2003, to give your end user a familiar visual style.
Here is the code to set to Windows L&F with Office2003 style extension.
UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); // you need to catch the
exceptions on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_OFFICE2003);
It works either on any other Windows such asWindows 2000, Windows 98 etc. If you are on Windows XP, Office2003
style will change theme based on the theme setting in Windows Display Property. But if you are not on XP,
Office2003 style will use the default gray theme only. You can force to change it using Office2003Painter.setColorName(String)
method, but it won't look good as other non-JIDE components won't have
the matching theme.
Office2003 style doesn't work on any operating systems other than Windows mainly because the design of Office2003
style is so centric to Windows that it doesn't look good on other operating systems.
public static final int EXTENSION_STYLE_XERTO
installJideExtension(int)
method. This style is created by Xerto
(http://www.xerto.com) which is used in their Imagery product.
Xerto style looks great on Windows XP when Windows XP L&F from Sun JDK is used.
Here is the code to set to Windows L&F with Xerto style extension.
UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); // you need to catch the
exceptions on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_XERTO);
Although it looks the best on Windows, Xerto style also supports Linux or Solaris if you use any L&Fs based on
Metal L&F or Synth L&F. For example, we recommend you to use Xerto style as default if you use SyntheticaL&F, a
L&F based on Synth. To use it, you basically replace WindowsLookAndFeel to the L&F you want to use in
setLookAndFeel line above.
public static final int EXTENSION_STYLE_ECLIPSE3X
installJideExtension(int)
method. This style mimics the visual style of
Eclipse 3.x for the toolbars, menus and dockable windows.
Eclipse 3x style works for almost all L&Fs and on any operating systems, although it looks the best on Windows.
For any other OS's we suggest you to use EXTENSION_STYLE_XERTO or EXTENSION_STYLE_VSNET.
UIManager.setLookAndFeel(AnyLookAndFeel.class.getName()); // you need to catch the
exceptions
on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_ECLIPSE3X);
public static final int EXTENSION_STYLE_XERTO_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as XERTO_STYLE
except it doesn't have menu related UIDefaults. You can only use this style if you didn't use any component from
JIDE Action Framework. Please note, we only use menu extension for Xerto style when the underlying L&F is Windows
L&F. If you are using L&F such as Metal or other 3rd party L&F based on Metal, XERTO_STYLE_WITHOUT_MENU will be
used even you use XERTO_STYLE when calling to installJideExtension().
EXTENSION_STYLE_XERTO
,
Constant Field Valuespublic static final int EXTENSION_STYLE_OFFICE2007
installJideExtension(int)
method. This style mimics the visual style of
Microsoft Office2007 for the toolbars, menus and dockable windows.
Office2007 style looks great on Windows Vista when Windows L&F from Sun JDK is used. It replicated the exact same
style as Microsoft Office 2007, to give your end user a familiar visual style.
Here is the code to set to Windows L&F with Office2007 style extension.
UIManager.setLookAndFeel(WindowsLookAndFeel.class.getName()); // you need to catch the
exceptions on this call.
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.EXTENSION_STYLE_OFFICE2007);
Office2007 style doesn't work on any operating systems other than Windows mainly because the design of Office2003
style is so centric to Windows that it doesn't look good on other operating systems.
Because we use some painting code that is only available in JDK6, Office 2007 style only runs if you are using
JDK6 and above.
@Deprecated public static final int EXTENSION_STYLE_OFFICE2003_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as
EXTENSION_STYLE_OFFICE2003 except it doesn't have menu related UIDefaults. You can only use this style if you
didn't use any component from JIDE Action Framework.
EXTENSION_STYLE_OFFICE2003
,
Constant Field Values@Deprecated public static final int EXTENSION_STYLE_OFFICE2007_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as
EXTENSION_STYLE_OFFICE2007 except it doesn't have menu related UIDefaults. You can only use this style if you
didn't use any component from JIDE Action Framework.
EXTENSION_STYLE_OFFICE2007
,
Constant Field Valuespublic static final int EXTENSION_STYLE_ECLIPSE_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as
EXTENSION_STYLE_ECLIPSE except it doesn't have menu related UIDefaults. You can only use this style if you didn't
use any component from JIDE Action Framework.
EXTENSION_STYLE_ECLIPSE3X
,
Constant Field Valuespublic static final int EXTENSION_STYLE_ECLIPSE3X_WITHOUT_MENU
installJideExtension(int)
method. This style is the same as
EXTENSION_STYLE_ECLIPSE3X except it doesn't have menu related UIDefaults. You can only use this style if you
didn't use any component from JIDE Action Framework.
EXTENSION_STYLE_ECLIPSE3X
,
Constant Field Valuespublic static final String JIDE_EXTENSION_INSTALLED
isJideExtensionInstalled()
to check the value instead of using UIManagerLookup.getBoolean(JIDE_EXTENSION_INSTALLLED).
public static final String JIDE_STYLE_INSTALLED
public static final String LAF_INSTALLED
public static final String LAF_NOT_INSTALLED
Constructor Detail |
---|
protected LookAndFeelFactory()
Method Detail |
---|
public static int getDefaultStyle()
public static void setDefaultStyle(int defaultStyle)
installJideExtension()
will use
it as the default style.
defaultStyle
- the default style.public static void installJideExtension()
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (InstantiationException e) {
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
// to additional UIDefault for JIDE components
LookAndFeelFactory.installJideExtension(); // use default style VSNET_STYLE. You can change
to a different style
using setDefaultStyle(int style) and then call this method. Or simply call
installJideExtension(style).
// call updateComponentTreeUI
frame.getDockableBarManager().updateComponentTreeUI();
frame.getDockingManager().updateComponentTreeUI();
public static void installJideExtension(int style)
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
catch (InstantiationException e) {
e.printStackTrace();
}
catch (IllegalAccessException e) {
e.printStackTrace();
}
catch (UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
// to add additional UIDefault for JIDE components
LookAndFeelFactory.installJideExtension(LookAndFeelFactory.OFFICE2003_STYLE);
// call updateComponentTreeUI
frame.getDockableBarManager().updateComponentTreeUI();
frame.getDockingManager().updateComponentTreeUI();
style
- the style of the extension.public static boolean isJideExtensionInstalled()
installJideExtension()
method before, UIManager.setLookAndFeel()
method make isJideExtensionInstalled returning false.
public static void installJideExtension(UIDefaults uiDefaults, LookAndFeel lnf, int style)
uiDefaults
- the UIDefault tables where JIDE UIDefaults will be installed.lnf
- the LookAndFeel. This may have an effect on which set of JIDE UIDefaults we will install.style
- the style of the JIDE UIDefaults.public static void registerDefaultInitializer(String lnfClassName, String initializerClassName)
lnfClassName
- full class name of the L&FinitializerClassName
- full class name of the UIDefaultInitializerpublic static void unregisterDefaultInitializer(String lnfClassName)
lnfClassName
- full class name of the L&Fpublic static void clearDefaultInitializers()
public static void registerDefaultCustomizer(String lnfClassName, String customizerClassName)
lnfClassName
- full class name of the L&FcustomizerClassName
- full class name of the UIDefaultsCustomizerpublic static void unregisterDefaultCustomizer(String lnfClassName)
lnfClassName
- full class name of the L&Fpublic static void clearDefaultCustomizers()
public static boolean isLnfInstalled(String lnfName)
setLnfInstalled(String, boolean)
. If the L&F is not pre-installed, we will try to use class loader to load the
class to determine if the L&F is installed. If you don't want us to load the class, you can call setLoadLookAndFeelClass(boolean)
false. If so, we will solely depend on the setLnfInstalled method to determine
if the L&F is installed.
lnfName
- the L&F name.
public static ClassLoader getUIManagerClassLoader()
public static boolean isLnfInUse(String lnf)
lnf
- the full class name of the L&F (including the package).
public static void setLnfInstalled(String lnfName, boolean installed)
isLnfInstalled(String)
is called to determine if the class is in the class path. However you can call this
method to tell if the L&F is available without us instantiating the class.
lnfName
- the L&F name.installed
- true or false.public static boolean isAquaLnfInstalled()
public static boolean isQuaquaLnfInstalled()
public static boolean isAlloyLnfInstalled()
public static boolean isBizlafLnfInstalled()
public static boolean isGTKLnfInstalled()
public static boolean isPlastic3DLnfInstalled()
@Deprecated public static boolean isPlastic3D13LnfInstalled()
isPlastic3DLnfInstalled()
public static boolean isPlasticXPLnfInstalled()
public static boolean isTonicLnfInstalled()
public static boolean isA03LnfInstalled()
public static boolean isPgsLnfInstalled()
public static boolean isSyntheticaLnfInstalled()
public static boolean isNimbusLnfInstalled()
public static void installDefaultLookAndFeelAndExtension()
public static void installDefaultLookAndFeel()
public static LookAndFeel getLookAndFeel()
public static int getStyle()
public static LookAndFeelFactory.UIDefaultsCustomizer[] getUIDefaultsCustomizers()
public static void addUIDefaultsCustomizer(LookAndFeelFactory.UIDefaultsCustomizer uiDefaultsCustomizer)
For example, we use "JideButton.font" as the UIDefault for the JideButton font. If you want
to use another font, you can do
LookAndFeelFactory.addUIDefaultsCustomizer(new LookAndFeelFactory.UIDefaultsCustomizer() {
public void customize(UIDefaults defaults) {
defaults.put("JideButton.font", whateverFont);
}
});
LookAndFeelFactory.installJideExtension();
uiDefaultsCustomizer
- the UIDefaultsCustomizerpublic static void removeUIDefaultsCustomizer(LookAndFeelFactory.UIDefaultsCustomizer uiDefaultsCustomizer)
uiDefaultsCustomizer
- the UIDefaultsCustomizerpublic static LookAndFeelFactory.UIDefaultsInitializer[] getUIDefaultsInitializers()
public static void addUIDefaultsInitializer(LookAndFeelFactory.UIDefaultsInitializer uiDefaultsInitializer)
LookAndFeelFactory.addUIDefaultsInitializer(new LookAndFeelFactory.UIDefaultsInitializer() {
public void initialize(UIDefaults defaults) {
defaults.put("activeCaption", whateverColor);
}
});
UIManager.setLookAndFeel(...); // set whatever L&F
LookAndFeelFactory.installJideExtension(); // install the UIDefaults needed by the JIDE
components
uiDefaultsInitializer
- the UIDefaultsInitializer.public static void removeUIDefaultsInitializer(LookAndFeelFactory.UIDefaultsInitializer uiDefaultsInitializer)
uiDefaultsInitializer
- the UIDefaultsInitializerpublic static void verifyDefaults(UIDefaults table, Object[] keyValueList)
public static void putDefaults(UIDefaults table, Object[] keyValueArray)
putDefaults(javax.swing.UIDefaults, Object[])
method. You should use this method in LookAndFeelFactory.UIDefaultsInitializer
so that it fills in the UIDefault value only
when it is missing.
table
- the ui defaults tablekeyValueArray
- the key value array. It is in the format of a key followed by a value.public static void overwriteDefaults(UIDefaults table, Object[] keyValueArray)
putDefaults(javax.swing.UIDefaults, Object[])
method. You should use this method in LookAndFeelFactory.UIDefaultsCustomizer
because you always want to override the existing value using the new value.
table
- the ui defaults tablekeyValueArray
- the key value array. It is in the format of a key followed by a value.public static int getProductsUsed()
public static void setProductsUsed(int productsUsed)
setProductUsed(ProductNames.PRODUCT_DOCK | ProductNames.PRODUCT_GRIDS)
so that we don't initialize
UIDefaults needed by any other products. If you use this class as part of JIDE Common Layer open source project,
you should call setProductUsed(ProductNames.PRODUCT_COMMON)
. If you want to use all JIDE products,
you should call setProductUsed(ProductNames.PRODUCT_ALL)
productsUsed
- a bit-wise OR of product values defined in ProductNames
.public static boolean isCurrentLnfDecorated()
public static boolean isLoadLookAndFeelClass()
isLnfInstalled(String)
is invoked.
setLoadLookAndFeelClass(boolean)
public static void setLoadLookAndFeelClass(boolean loadLookAndFeelClass)
isLnfInstalled(String)
is invoked.
By default, this flag is true. However, it may cause unexpected class loading, which may be a performance issue
for web start applications. If this is a concern to your application, please try to set this flag to false and
invoke setLnfInstalled(String, boolean)
to make isLnfInstalled(String)
returns correct value as
you wish.
loadLookAndFeelClass
- the flagpublic static void main(String[] args)
|
JIDE 3.5.15 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |