You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
6.0 KiB
150 lines
6.0 KiB
11 years ago
|
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;
|
||
|
}
|
||
|
|
||
|
}
|