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 }