package org.jabref.gui.maintable;
import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import org.jabref.gui.GUIGlobals;
public class MainTableHeaderRenderer implements TableCellRenderer {
private final TableCellRenderer delegate;
public MainTableHeaderRenderer(TableCellRenderer delegate) {
this.delegate = delegate;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column) {
// delegate to previously used TableCellRenderer which styles the component
Component resultFromDelegate = delegate.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
// Changing style is only possible if both value and resultFromDelegate are JLabels
if ((value instanceof JLabel) && (resultFromDelegate instanceof JLabel)) {
String text = ((JLabel) value).getText();
Icon icon = ((JLabel) value).getIcon();
if (icon == null) {
((JLabel) resultFromDelegate).setText(text);
resultFromDelegate.setFont(GUIGlobals.currentFont);
} else {
((JLabel) resultFromDelegate).setIcon(icon);
((JLabel) resultFromDelegate).setText(null);
}
}
return resultFromDelegate;
}
}