/******************************************************************************* * Copyright (c) 2016 Weasis Team and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Nicolas Roduit - initial API and implementation *******************************************************************************/ package org.weasis.core.api.gui.util; import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JTable; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.table.JTableHeader; import javax.swing.table.TableCellRenderer; /** * The Class TableHaederRenderer. * */ @SuppressWarnings("serial") public class TableHeaderRenderer extends JLabel implements TableCellRenderer { public TableHeaderRenderer() { setHorizontalAlignment(SwingConstants.CENTER); setHorizontalTextPosition(SwingConstants.LEADING); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (table != null) { JTableHeader header = table.getTableHeader(); if (header != null) { Color fgColor = null; Color bgColor = null; if (hasFocus) { fgColor = UIManager.getColor("TableHeader.focusCellForeground"); //$NON-NLS-1$ bgColor = UIManager.getColor("TableHeader.focusCellBackground"); //$NON-NLS-1$ } if (fgColor == null) { fgColor = header.getForeground(); } if (bgColor == null) { bgColor = header.getBackground(); } setForeground(fgColor); setBackground(bgColor); setFont(header.getFont()); } } String val = ((value == null) || (value == "")) ? " " : value.toString(); //$NON-NLS-1$ //$NON-NLS-2$ setText(val); setToolTipText(val); Border border = null; if (hasFocus) { border = UIManager.getBorder("TableHeader.focusCellBorder"); //$NON-NLS-1$ } if (border == null) { border = UIManager.getBorder("TableHeader.cellBorder"); //$NON-NLS-1$ } setBorder(border); return this; } @Override public void validate() { // Override for performance reasons } @Override public void revalidate() { // Override for performance reasons } @Override protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) { // Override for performance reasons } @Override public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) { // Override for performance reasons } }