All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jdesktop.swingx.plaf.ColumnHeaderRendererAddon Maven / Gradle / Ivy

/*
 * $Id: ColumnHeaderRendererAddon.java,v 1.7 2007/10/15 10:28:27 kleopatra Exp $
 *
 * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
 * Santa Clara, California 95054, U.S.A. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 */
package org.jdesktop.swingx.plaf;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.swing.LookAndFeel;
import javax.swing.plaf.BorderUIResource;

import org.jdesktop.swingx.plaf.windows.WindowsClassicLookAndFeelAddons;
import org.jdesktop.swingx.table.ColumnHeaderRenderer;
import org.jdesktop.swingx.util.OS;

/**
 * Addon for ColumnHeaderRenderer.

* Loads LF specific sort icons. * * @author Jeanette Winzenburg * */ public class ColumnHeaderRendererAddon extends AbstractComponentAddon { public ColumnHeaderRendererAddon() { super("ColumnHeaderRenderer"); } public void initialize(LookAndFeelAddons addon) { List defaults = new ArrayList(); String upIcon = null; String downIcon = null; if (isMac(addon)) { upIcon = "sort-osx-up.png"; downIcon = "sort-osx-dn.png"; } else if (isWindows(addon)) { if (isXP(addon)) { upIcon = "sort-xp-up.png"; downIcon = "sort-xp-dn.png"; } else { upIcon = "sort-w2k-up.png"; downIcon = "sort-w2k-dn.png"; } if (OS.isWindowsVista()) { hackHeaderBorder(addon); } } else if (isSynth()) { upIcon = "sort-gtk-up.png"; downIcon = "sort-gtk-dn.png"; } else { upIcon = "sort-jlf-up.png"; downIcon = "sort-jlf-dn.png"; } defaults.addAll(Arrays.asList(new Object[] { ColumnHeaderRenderer.UP_ICON_KEY, LookAndFeel.makeIcon(getClass(), "resources/" + upIcon), ColumnHeaderRenderer.DOWN_ICON_KEY, LookAndFeel.makeIcon(getClass(), "resources/" + downIcon), })); addon.loadDefaults(defaults.toArray()); } /** * @param addon */ private void hackHeaderBorder(LookAndFeelAddons addon) { // do nothing for classic windows if (addon instanceof WindowsClassicLookAndFeelAddons) return; List defaults = new ArrayList(); defaults.addAll(Arrays.asList(new Object[] { ColumnHeaderRenderer.VISTA_BORDER_HACK, new BorderUIResource.EmptyBorderUIResource(5, 5, 5, 5), })); addon.loadDefaults(defaults.toArray()); } public void uninitialize(LookAndFeelAddons addon) { List defaults = new ArrayList(); defaults.addAll(Arrays.asList(new Object[] { ColumnHeaderRenderer.UP_ICON_KEY, null, ColumnHeaderRenderer.DOWN_ICON_KEY, null, ColumnHeaderRenderer.VISTA_BORDER_HACK, null, })); addon.loadDefaults(defaults.toArray()); } private boolean isXP(LookAndFeelAddons addon) { return OS.isWindowsXP(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy