/**
* ColoredRowRenderer.java
* Created On 2006, Feb 18, 2006 3:48:24 PM
* @author E. Rajasekar
*/
package app.astrosoft.ui.table;
import java.awt.Component;
import java.awt.Color;
import java.util.List;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import app.astrosoft.consts.AstrosoftTableColumn;
public class ColoredCellRenderer implements TableCellRenderer {
private TableCellRenderer tableCellRenderer;
private Cell cell;
private List<AstrosoftTableColumn> cols;
private Color bgClr;
private Color fgClr;
public ColoredCellRenderer(TableCellRenderer tableCellRenderer, Cell cell, List<AstrosoftTableColumn> cols, Color fgClr, Color bgClr) {
this.tableCellRenderer = tableCellRenderer;
this.cell = cell;
this.cols = cols;
this.fgClr = fgClr;
this.bgClr = bgClr;
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
Component c = tableCellRenderer.getTableCellRendererComponent(table,
value, isSelected, hasFocus, row, column);
if (this.cell.equals(new Cell(row + 1, cols.get(column)))) {
if (c instanceof JLabel){
JLabel l = new JLabel(((JLabel)c).getText());
if (bgClr != null){
l.setBackground(bgClr);
}
if (fgClr != null){
l.setForeground(fgClr);
}
l.setFont(c.getFont());
l.setHorizontalAlignment(((JLabel)c).getHorizontalAlignment());
return l;
}
}else{
//c.setForeground(defFgClr);
//c.setBackground(defBgClr);
c.setForeground(table.getForeground());
c.setBackground(table.getBackground());
}
return c;
}
}