001/* 002 * $Id$ 003 * 004 * Copyright 2009 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 */ 022package org.jdesktop.swingx.plaf; 023 024import javax.swing.BorderFactory; 025import javax.swing.UIManager; 026import javax.swing.border.Border; 027import javax.swing.plaf.BorderUIResource; 028import javax.swing.plaf.metal.MetalBorders; 029 030/** 031 * Addon for JXTableHeader. 032 * 033 * Implemented to hack around core issue ??: Metal header renderer appears squeezed. 034 * 035 * @author Jeanette Winzenburg 036 */ 037public class TableHeaderAddon extends AbstractComponentAddon { 038 039 /** 040 * @param name 041 */ 042 public TableHeaderAddon() { 043 super("JXTableHeader"); 044 } 045 046 @Override 047 protected void addMetalDefaults(LookAndFeelAddons addon, 048 DefaultsList defaults) { 049 super.addMetalDefaults(addon, defaults); 050 String key = "TableHeader.cellBorder"; 051 Border border = UIManager.getBorder(key); 052 if (border instanceof MetalBorders.TableHeaderBorder) { 053 border = new BorderUIResource.CompoundBorderUIResource(border, 054 BorderFactory.createEmptyBorder()); 055 // PENDING JW: this is fishy ... adding to lookAndFeelDefaults is taken 056 UIManager.getLookAndFeelDefaults().put(key, border); 057 // adding to defaults is not 058// defaults.add(key, border); 059 } 060 061 } 062 063 064 065}