001 /*
002 * $Id: LoginPaneAddon.java 3033 2008-08-12 05:05:44Z rah003 $
003 *
004 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
005 * Santa Clara, California 95054, U.S.A. All rights reserved.
006 *
007 * This library is free software; you can redistribute it and/or
008 * modify it under the terms of the GNU Lesser General Public
009 * License as published by the Free Software Foundation; either
010 * version 2.1 of the License, or (at your option) any later version.
011 *
012 * This library is distributed in the hope that it will be useful,
013 * but WITHOUT ANY WARRANTY; without even the implied warranty of
014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
015 * Lesser General Public License for more details.
016 *
017 * You should have received a copy of the GNU Lesser General Public
018 * License along with this library; if not, write to the Free Software
019 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
020 */
021
022 package org.jdesktop.swingx.plaf;
023
024 import java.awt.Color;
025 import java.awt.Font;
026
027 import javax.swing.BorderFactory;
028 import javax.swing.LookAndFeel;
029 import javax.swing.UIManager;
030 import javax.swing.plaf.BorderUIResource;
031 import javax.swing.plaf.ColorUIResource;
032 import javax.swing.plaf.FontUIResource;
033 import javax.swing.plaf.metal.MetalLookAndFeel;
034
035 import org.jdesktop.swingx.JXLoginPane;
036
037 /**
038 *
039 * @author rbair
040 */
041 public class LoginPaneAddon extends AbstractComponentAddon {
042
043 /** Creates a new instance of LoginPaneAddon */
044 public LoginPaneAddon() {
045 super("JXLoginPane");
046 }
047
048 @Override
049 protected void addBasicDefaults(LookAndFeelAddons addon, DefaultsList defaults) {
050 super.addBasicDefaults(addon, defaults);
051 Color errorBG = new Color(255, 215, 215);
052
053 defaults.add(JXLoginPane.uiClassID, "org.jdesktop.swingx.plaf.basic.BasicLoginPaneUI");
054 defaults.add("JXLoginPane.errorIcon",
055 LookAndFeel.makeIcon(LoginPaneAddon.class, "basic/resources/error16.png"));
056 defaults.add("JXLoginPane.bannerFont", new FontUIResource("Arial Bold", Font.PLAIN, 36));
057 //#911 Not every LAF has Label.font defined ...
058 Font labelFont = UIManager.getFont("Label.font");
059 Font boldLabel = labelFont != null ? labelFont.deriveFont(Font.BOLD) : new Font("SansSerif", Font.BOLD, 12);
060 defaults.add("JXLoginPane.pleaseWaitFont",
061 new FontUIResource(boldLabel));
062 defaults.add("JXLoginPane.bannerForeground", new ColorUIResource(Color.WHITE));
063 defaults.add("JXLoginPane.bannerDarkBackground", new ColorUIResource(Color.GRAY));
064 defaults.add("JXLoginPane.bannerLightBackground", new ColorUIResource(Color.LIGHT_GRAY));
065 defaults.add("JXLoginPane.errorBackground", new ColorUIResource(errorBG));
066 defaults.add("JXLoginPane.errorBorder",
067 new BorderUIResource(BorderFactory.createCompoundBorder(
068 BorderFactory.createEmptyBorder(0, 36, 0, 11),
069 BorderFactory.createCompoundBorder(
070 BorderFactory.createLineBorder(Color.GRAY.darker()),
071 BorderFactory.createMatteBorder(5, 7, 5, 5, errorBG)))));
072
073 UIManagerExt.addResourceBundle(
074 "org.jdesktop.swingx.plaf.basic.resources.LoginPane");
075 }
076
077 @Override
078 protected void addMetalDefaults(LookAndFeelAddons addon, DefaultsList defaults) {
079 super.addMetalDefaults(addon, defaults);
080
081 if (isPlastic()) {
082 defaults.add("JXLoginPane.bannerForeground", new ColorUIResource(Color.WHITE));
083 defaults.add("JXLoginPane.bannerDarkBackground", new ColorUIResource(Color.GRAY));
084 defaults.add("JXLoginPane.bannerLightBackground", new ColorUIResource(Color.LIGHT_GRAY));
085 } else {
086 defaults.add("JXLoginPane.bannerForeground", new ColorUIResource(Color.WHITE));
087 defaults.add("JXLoginPane.bannerDarkBackground",
088 MetalLookAndFeel.getCurrentTheme().getPrimaryControlDarkShadow());
089 defaults.add("JXLoginPane.bannerLightBackground",
090 MetalLookAndFeel.getCurrentTheme().getPrimaryControl());
091 }
092 }
093
094 @Override
095 protected void addWindowsDefaults(LookAndFeelAddons addon, DefaultsList defaults) {
096 super.addWindowsDefaults(addon, defaults);
097
098 defaults.add("JXLoginPane.bannerForeground", new ColorUIResource(Color.WHITE));
099 defaults.add("JXLoginPane.bannerDarkBackground", new ColorUIResource(49, 121, 242));
100 defaults.add("JXLoginPane.bannerLightBackground", new ColorUIResource(198, 211, 247));
101 }
102 }