001    /*
002     * $Id: JXTaskPaneContainerAddon.java,v 1.6 2005/10/10 18:02:08 rbair Exp $
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    package org.jdesktop.swingx.plaf;
022    
023    import java.util.Arrays;
024    import java.util.List;
025    
026    import javax.swing.UIManager;
027    import javax.swing.plaf.ColorUIResource;
028    import javax.swing.plaf.metal.MetalLookAndFeel;
029    
030    import org.jdesktop.swingx.JXTaskPaneContainer;
031    import org.jdesktop.swingx.plaf.windows.WindowsClassicLookAndFeelAddons;
032    import org.jdesktop.swingx.plaf.windows.WindowsLookAndFeelAddons;
033    import org.jdesktop.swingx.util.OS;
034    
035    /**
036     * Addon for <code>JXTaskPaneContainer</code>. <br>
037     *  
038     * @author <a href="mailto:fred@L2FProd.com">Frederic Lavigne</a>
039     */
040    public class JXTaskPaneContainerAddon extends AbstractComponentAddon {
041    
042      public JXTaskPaneContainerAddon() {
043        super("JXTaskPaneContainer");
044      }
045    
046      @Override
047      protected void addBasicDefaults(LookAndFeelAddons addon, List<Object> defaults) {
048        super.addBasicDefaults(addon, defaults);
049        defaults.addAll(Arrays.asList(new Object[]{
050          JXTaskPaneContainer.uiClassID,
051          "org.jdesktop.swingx.plaf.basic.BasicTaskPaneContainerUI",
052          "TaskPaneContainer.useGradient",
053          Boolean.FALSE,
054          "TaskPaneContainer.background",
055          UIManager.getColor("Desktop.background")
056        }));
057      }
058    
059      @Override
060      protected void addMetalDefaults(LookAndFeelAddons addon, List<Object> defaults) {
061        super.addMetalDefaults(addon, defaults);
062        defaults.addAll(Arrays.asList(new Object[]{
063          "TaskPaneContainer.background",
064          MetalLookAndFeel.getDesktopColor()
065        }));
066      }
067      
068      @Override
069      protected void addWindowsDefaults(LookAndFeelAddons addon, List<Object> defaults) {
070        super.addWindowsDefaults(addon, defaults);
071        if (addon instanceof WindowsClassicLookAndFeelAddons) {
072          defaults.addAll(Arrays.asList(new Object[]{
073            "TaskPaneContainer.background",
074            UIManager.getColor("List.background")
075          }));      
076        } else if (addon instanceof WindowsLookAndFeelAddons) {     
077          String xpStyle = OS.getWindowsVisualStyle();
078          ColorUIResource background;
079          ColorUIResource backgroundGradientStart;
080          ColorUIResource backgroundGradientEnd;
081          
082          if (WindowsLookAndFeelAddons.HOMESTEAD_VISUAL_STYLE
083            .equalsIgnoreCase(xpStyle)) {        
084            background = new ColorUIResource(201, 215, 170);
085            backgroundGradientStart = new ColorUIResource(204, 217, 173);
086            backgroundGradientEnd = new ColorUIResource(165, 189, 132);
087          } else if (WindowsLookAndFeelAddons.SILVER_VISUAL_STYLE
088            .equalsIgnoreCase(xpStyle)) {
089            background = new ColorUIResource(192, 195, 209);
090            backgroundGradientStart = new ColorUIResource(196, 200, 212);
091            backgroundGradientEnd = new ColorUIResource(177, 179, 200);
092          } else {        
093            background = new ColorUIResource(117, 150, 227);
094            backgroundGradientStart = new ColorUIResource(123, 162, 231);
095            backgroundGradientEnd = new ColorUIResource(99, 117, 214);
096          }      
097          defaults.addAll(Arrays.asList(new Object[]{
098            "TaskPaneContainer.useGradient",
099            Boolean.TRUE,
100            "TaskPaneContainer.background",
101            background,
102            "TaskPaneContainer.backgroundGradientStart",
103            backgroundGradientStart,
104            "TaskPaneContainer.backgroundGradientEnd",
105            backgroundGradientEnd,
106          }));
107        }
108      }
109    
110      @Override
111      protected void addMacDefaults(LookAndFeelAddons addon, List<Object> defaults) {
112        super.addMacDefaults(addon, defaults);
113        defaults.addAll(Arrays.asList(new Object[]{
114          "TaskPaneContainer.background",
115          new ColorUIResource(238, 238, 238),
116        }));            
117      }
118    
119    }