001    /*
002     * Copyright 2005 Sun Microsystems, Inc., 4150 Network Circle,
003     * Santa Clara, California 95054, U.S.A. All rights reserved.
004     *
005     * This library is free software; you can redistribute it and/or
006     * modify it under the terms of the GNU Lesser General Public
007     * License as published by the Free Software Foundation; either
008     * version 2.1 of the License, or (at your option) any later version.
009     *
010     * This library is distributed in the hope that it will be useful,
011     * but WITHOUT ANY WARRANTY; without even the implied warranty of
012     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013     * Lesser General Public License for more details.
014     *
015     * You should have received a copy of the GNU Lesser General Public
016     * License along with this library; if not, write to the Free Software
017     * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
018     */
019    package org.jdesktop.swingx.plaf;
020    
021    import org.jdesktop.swingx.JXDatePicker;
022    
023    import javax.swing.*;
024    import javax.swing.border.LineBorder;
025    import javax.swing.plaf.BorderUIResource;
026    import javax.swing.plaf.IconUIResource;
027    import java.util.Arrays;
028    import java.util.List;
029    
030    /**
031     * @author Joshua Outwater
032     */
033    public class JXDatePickerAddon extends AbstractComponentAddon {
034        public JXDatePickerAddon() {
035            super("JXDatePicker");
036        }
037    
038        @Override
039        protected void addBasicDefaults(LookAndFeelAddons addon, List<Object> defaults) {
040            super.addBasicDefaults(addon, defaults);
041            defaults.addAll(Arrays.asList(new Object[]{
042                    defaults.add(JXDatePicker.uiClassID),
043                    defaults.add("org.jdesktop.swingx.plaf.basic.BasicDatePickerUI"),
044                    "JXDatePicker.linkFormat",
045                    "Today is {0,date, dd MMMM yyyy}",
046                    "JXDatePicker.longFormat",
047                    "EEE MM/dd/yyyy",
048                    "JXDatePicker.mediumFormat",
049                    "MM/dd/yyyy",
050                    "JXDatePicker.shortFormat",
051                    "MM/dd",
052                    "JXDatePicker.border",
053                    new BorderUIResource(BorderFactory.createCompoundBorder(
054                            LineBorder.createGrayLineBorder(),
055                            BorderFactory.createEmptyBorder(3, 3, 3, 3))),
056                    "JXDatePicker.numColumns",
057                    10
058            }));
059        }
060    
061        @Override
062        protected void addWindowsDefaults(LookAndFeelAddons addon, List<Object> defaults) {
063            super.addWindowsDefaults(addon, defaults);
064            defaults.addAll(Arrays.asList(new Object[] {
065                    "JXDatePicker.arrowDown.image",
066                    new IconUIResource(new ImageIcon(getClass().getResource("resources/combo-xp.png")))
067            }));
068        }
069    
070        @Override
071        protected void addMacDefaults(LookAndFeelAddons addon, List<Object> defaults) {
072            super.addMacDefaults(addon, defaults);
073            defaults.addAll(Arrays.asList(new Object[] {
074                    "JXDatePicker.arrowDown.image",
075                    new IconUIResource(new ImageIcon(getClass().getResource("resources/combo-osx.png")))
076            }));
077        }
078    }