package org.appwork.utils.swing.table;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
public abstract class ExtRowHighlighter {
private Color borderColor;
private Color contentColor;
public ExtRowHighlighter(final Color borderColor, final Color contentColor) {
this.borderColor = borderColor;
this.contentColor = contentColor;
}
abstract public boolean doHighlight(ExtTable<?> extTable, int row);
/**
* @return the {@link ExtRowHighlighter#borderColor}
* @see ExtRowHighlighter#borderColor
*/
public Color getBorderColor() {
return this.borderColor;
}
/**
* @return the {@link ExtRowHighlighter#contentColor}
* @see ExtRowHighlighter#contentColor
*/
public Color getContentColor() {
return this.contentColor;
}
/**
* Overwrite this method for custom highlighters
*
* @param g
* @param x
* @param y
* @param width
* @param height
*/
public void paint(final Graphics2D g, final int x, final int y, final int width, final int height) {
if (this.getBorderColor() != null) {
g.setColor(this.getBorderColor());
g.draw(new Rectangle2D.Float(0, y, width, height));
}
if (this.getContentColor() != null) {
g.setColor(this.getContentColor());
g.fill(new Rectangle2D.Float(0, y, width, height));
}
}
/**
* @param borderColor
* the {@link ExtRowHighlighter#borderColor} to set
* @see ExtRowHighlighter#borderColor
*/
public void setBorderColor(final Color borderColor) {
this.borderColor = borderColor;
}
/**
* @param contentColor
* the {@link ExtRowHighlighter#contentColor} to set
* @see ExtRowHighlighter#contentColor
*/
public void setContentColor(final Color contentColor) {
this.contentColor = contentColor;
}
}