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.
73 lines
2.4 KiB
73 lines
2.4 KiB
/* |
|
* Copyright 2000-2012 JetBrains s.r.o. |
|
* |
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
* you may not use this file except in compliance with the License. |
|
* You may obtain a copy of the License at |
|
* |
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
* |
|
* Unless required by applicable law or agreed to in writing, software |
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
* See the License for the specific language governing permissions and |
|
* limitations under the License. |
|
*/ |
|
package com.bulenkov.darcula; |
|
|
|
import com.bulenkov.darcula.util.ColorUtil; |
|
import com.bulenkov.darcula.util.GraphicsConfig; |
|
import com.bulenkov.darcula.util.Gray; |
|
|
|
import javax.swing.*; |
|
import javax.swing.plaf.ComponentUI; |
|
import javax.swing.plaf.basic.BasicTableHeaderUI; |
|
import javax.swing.table.JTableHeader; |
|
import javax.swing.table.TableColumn; |
|
import java.awt.*; |
|
import java.util.Enumeration; |
|
|
|
/** |
|
* @author Konstantin Bulenkov |
|
*/ |
|
public class DarculaTableHeaderUI extends BasicTableHeaderUI { |
|
|
|
@SuppressWarnings({"MethodOverridesStaticMethodOfSuperclass", "UnusedDeclaration"}) |
|
public static ComponentUI createUI(JComponent c) { |
|
return new DarculaTableHeaderUI(); |
|
} |
|
|
|
@Override |
|
public void paint(Graphics g2, JComponent c) { |
|
final Graphics2D g = (Graphics2D)g2; |
|
final GraphicsConfig config = new GraphicsConfig(g); |
|
final Color bg = c.getBackground(); |
|
g.setPaint(new GradientPaint(0, 0, ColorUtil.shift(bg, 1.4), 0, c.getHeight(), ColorUtil.shift(bg, 0.9))); |
|
final int h = c.getHeight(); |
|
final int w = c.getWidth(); |
|
g.fillRect(0,0, w, h); |
|
g.setPaint(ColorUtil.shift(bg, 0.75)); |
|
g.drawLine(0, h-1, w, h-1); |
|
g.drawLine(w-1, 0, w-1, h-1); |
|
|
|
final Enumeration<TableColumn> columns = ((JTableHeader)c).getColumnModel().getColumns(); |
|
|
|
final Color lineColor = ColorUtil.shift(bg, 0.7); |
|
final Color shadow = Gray._255.withAlpha(30); |
|
int offset = 0; |
|
while (columns.hasMoreElements()) { |
|
final TableColumn column = columns.nextElement(); |
|
if (columns.hasMoreElements() && column.getWidth() > 0) { |
|
offset += column.getWidth(); |
|
g.setColor(lineColor); |
|
g.drawLine(offset-1, 1, offset-1, h-3); |
|
g.setColor(shadow); |
|
g.drawLine(offset, 1, offset, h-3); |
|
} |
|
} |
|
|
|
config.restore(); |
|
|
|
super.paint(g, c); |
|
} |
|
}
|
|
|