blob: 7de88f08ac7a4d3c4ea85e23ba1ab159f9cf7e07 [file] [log] [blame]
package com.intellij.ide.ui.laf.darcula;
import javax.swing.*;
import javax.swing.plaf.UIResource;
import javax.swing.table.DefaultTableCellRenderer;
import java.awt.*;
/**
* @author Konstantin Bulenkov
*/
public class DarculaDefaultTableHeaderRenderer extends DefaultTableCellRenderer implements UIResource {
public DarculaDefaultTableHeaderRenderer() {
setHorizontalAlignment(SwingConstants.CENTER);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
//if (table == null) {
// setBorder(DefaultTableCellRenderer.noFocusBorder);
// setValue(value);
// setOpaque(false);
// return this;
//}
//
//if (table.getTableHeader() == null) {
// return super.getTableCellRendererComponent(table, value,
// isSelected, hasFocus, row, column);
//}
//
//JTableHeader tableHeader = table.getTableHeader();
//TableHeaderUI tableHeaderUI = tableHeader.getUI();
//if (UIUtil.isUnderDarcula() && (tableHeaderUI instanceof DarculaTableHeaderUI)) {
// DarculaTableHeaderUI ui = (DarculaTableHeaderUI) tableHeaderUI;
// StateTransitionTracker.ModelStateInfo modelStateInfo = ui
// .getModelStateInfo(column);
// ComponentState currState = ui.getColumnState(column);
//
// if (modelStateInfo != null) {
// Map<ComponentState, StateContributionInfo> activeStates = modelStateInfo
// .getStateContributionMap();
// SubstanceColorScheme colorScheme = getColorSchemeForState(
// tableHeader, currState);
// if (currState.isDisabled() || (activeStates == null)
// || (activeStates.size() == 1)) {
// super.setForeground(new ColorUIResource(colorScheme
// .getForegroundColor()));
// } else {
// float aggrRed = 0;
// float aggrGreen = 0;
// float aggrBlue = 0;
//
// for (Map.Entry<ComponentState, StateTransitionTracker.StateContributionInfo> activeEntry : modelStateInfo
// .getStateContributionMap().entrySet()) {
// ComponentState activeState = activeEntry.getKey();
// SubstanceColorScheme scheme = getColorSchemeForState(
// tableHeader, activeState);
// Color schemeFg = scheme.getForegroundColor();
// float contribution = activeEntry.getValue()
// .getContribution();
// aggrRed += schemeFg.getRed() * contribution;
// aggrGreen += schemeFg.getGreen() * contribution;
// aggrBlue += schemeFg.getBlue() * contribution;
// }
// super.setForeground(new ColorUIResource(new Color(
// (int) aggrRed, (int) aggrGreen, (int) aggrBlue)));
// }
// } else {
// SubstanceColorScheme scheme = getColorSchemeForState(
// tableHeader, currState);
// super.setForeground(new ColorUIResource(scheme
// .getForegroundColor()));
// }
//} else {
// super.setForeground(table.getForeground());
//}
//
//this.setBackground(tableHeader.getBackground());
//
//// fix for issue 319 - using font from the table header
//if (tableHeader.getFont() != null) {
// setFont(tableHeader.getFont());
//} else {
// setFont(table.getFont());
//}
//
//TableUI tableUI = table.getUI();
//if (SubstanceLookAndFeel.isCurrentLookAndFeel()
// && (tableUI instanceof SubstanceTableUI)) {
// this.setBorder(new EmptyBorder(((SubstanceTableUI) tableUI)
// .getCellRendererInsets()));
//}
//
//this.setValue(value);
//this.setOpaque(false);
//
//this.setEnabled(tableHeader.isEnabled() && table.isEnabled());
//
//// fix for defect 242 - not showing sort icon
//if (SubstanceLookAndFeel.isCurrentLookAndFeel()) {
// this.setIcon(null);
// RowSorter<? extends TableModel> rowSorter = table.getRowSorter();
// if (rowSorter != null) {
// setHorizontalTextPosition(JLabel.LEADING);
// java.util.List<? extends RowSorter.SortKey> sortKeys = rowSorter
// .getSortKeys();
// Icon sortIcon = null;
// SubstanceColorScheme scheme = null;
// if (tableHeaderUI instanceof SubstanceTableHeaderUI) {
// SubstanceTableHeaderUI ui = (SubstanceTableHeaderUI) tableHeaderUI;
// ComponentState state = ui.getColumnState(column);
// ColorSchemeAssociationKind colorSchemeAssociationKind = (state == ComponentState.ENABLED) ? ColorSchemeAssociationKind.MARK
// : ColorSchemeAssociationKind.HIGHLIGHT_MARK;
// scheme = SubstanceColorSchemeUtilities.getColorScheme(
// tableHeader, colorSchemeAssociationKind, state);
// } else {
// scheme = SubstanceColorSchemeUtilities.getColorScheme(
// tableHeader, ComponentState.ENABLED);
// }
//
// if (sortKeys.size() > 0
// && sortKeys.get(0).getColumn() == table
// .convertColumnIndexToModel(column)) {
// switch (sortKeys.get(0).getSortOrder()) {
// case ASCENDING:
// sortIcon = SubstanceImageCreator.getArrowIcon(
// SubstanceSizeUtils
// .getComponentFontSize(tableHeader),
// SwingConstants.NORTH, scheme);
// break;
// case DESCENDING:
// sortIcon = SubstanceImageCreator.getArrowIcon(
// SubstanceSizeUtils
// .getComponentFontSize(tableHeader),
// SwingConstants.SOUTH, scheme);
// break;
// case UNSORTED:
// sortIcon = null;
// }
// this.setIcon(sortIcon);
// }
// }
//}
return this;
}
}