ColumnHeaderRendererAddon.java
上传用户:zhengdagz
上传日期:2014-03-06
资源大小:1956k
文件大小:3k
源码类别:

xml/soap/webservice

开发平台:

Java

  1. /*
  2.  * $Id: ColumnHeaderRendererAddon.java,v 1.6 2005/10/13 08:59:57 kleopatra Exp $
  3.  *
  4.  * Copyright 2004 Sun Microsystems, Inc., 4150 Network Circle,
  5.  * Santa Clara, California 95054, U.S.A. All rights reserved.
  6.  *
  7.  * This library is free software; you can redistribute it and/or
  8.  * modify it under the terms of the GNU Lesser General Public
  9.  * License as published by the Free Software Foundation; either
  10.  * version 2.1 of the License, or (at your option) any later version.
  11.  * 
  12.  * This library is distributed in the hope that it will be useful,
  13.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.  * Lesser General Public License for more details.
  16.  * 
  17.  * You should have received a copy of the GNU Lesser General Public
  18.  * License along with this library; if not, write to the Free Software
  19.  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  20.  */
  21. package org.jdesktop.swingx.plaf;
  22. import java.util.ArrayList;
  23. import java.util.Arrays;
  24. import java.util.List;
  25. import javax.swing.LookAndFeel;
  26. import org.jdesktop.swingx.table.ColumnHeaderRenderer;
  27. import org.jdesktop.swingx.util.OS;
  28. /**
  29.  * Addon for ColumnHeaderRenderer.<p>
  30.  * Loads LF specific sort icons.
  31.  * 
  32.  * @author Jeanette Winzenburg
  33.  *
  34.  */
  35. public class ColumnHeaderRendererAddon extends AbstractComponentAddon {
  36.     
  37.   public ColumnHeaderRendererAddon() {
  38.     super("ColumnHeaderRenderer");
  39.   }
  40.   
  41.   public void initialize(LookAndFeelAddons addon) {
  42.       List defaults = new ArrayList();
  43.       String upIcon = null;
  44.       String downIcon = null;
  45.       if (isMac(addon)) {
  46.           upIcon = "sort-osx-up.png";
  47.           downIcon = "sort-osx-dn.png";
  48.       } else if (isWindows(addon)) {
  49.           if (isXP(addon)) {
  50.               upIcon = "sort-xp-up.png";
  51.               downIcon = "sort-xp-dn.png";
  52.               
  53.           } else {
  54.               upIcon = "sort-w2k-up.png";
  55.               downIcon = "sort-w2k-dn.png";
  56.               
  57.           }
  58.       } else if (isSynth()) {
  59.           upIcon = "sort-gtk-up.png";
  60.           downIcon = "sort-gtk-dn.png";
  61.           
  62.       } else {
  63.           upIcon = "sort-jlf-up.png";
  64.           downIcon = "sort-jlf-dn.png";
  65.       }
  66.       defaults.addAll(Arrays.asList(new Object[] { 
  67.               ColumnHeaderRenderer.UP_ICON_KEY, 
  68.                   LookAndFeel.makeIcon(getClass(), "resources/" + upIcon),
  69.               ColumnHeaderRenderer.DOWN_ICON_KEY, 
  70.                   LookAndFeel.makeIcon(getClass(), "resources/" + downIcon),
  71.       }));
  72.       addon.loadDefaults(defaults.toArray());
  73.   }
  74.   public void uninitialize(LookAndFeelAddons addon) {
  75.       List defaults = new ArrayList();
  76.       defaults.addAll(Arrays.asList(new Object[] { 
  77.               ColumnHeaderRenderer.UP_ICON_KEY, null,
  78.               ColumnHeaderRenderer.DOWN_ICON_KEY,  null,
  79.       }));
  80.       addon.loadDefaults(defaults.toArray());
  81.   }
  82.   private boolean isXP(LookAndFeelAddons addon) {
  83.       return OS.isWindowsXP();
  84.   }
  85. }