package com.vci.client.ui.swing.components.table;
import java.awt.Color;
import java.awt.Component;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import com.vci.client.ui.swing.VCISwingUtil;
import com.vci.client.ui.swing.components.VCIJButton;
import com.vci.client.ui.swing.components.VCIJCheckBox;
/**
*
*
Title:
* Description:
* Copyright: Copyright (c) 2012
* Company: VCI
* @author xchao
* @time 2012-5-10
* @version 1.0
*/
public class AlternatelyRowColorTableCellRender extends DefaultTableCellRenderer {
/**
*
*/
private static final long serialVersionUID = 3407119458966532353L;
protected Map clickedRowIndexMap = new HashMap();
protected Color colorEven = VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_EVEN;
protected Color colorOdd = VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_ODD;
protected Color colorSelected = VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_CHECKED;
protected VCIJTablePanel tablePanel = null;
public AlternatelyRowColorTableCellRender(VCIJTablePanel tablePanel){
this.tablePanel = tablePanel;
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(tablePanel.getEdiableColumnList().contains(column)){
if(tablePanel.getDataProvider().getClasses()[column] == Boolean.class){
VCIJCheckBox cbx = new VCIJCheckBox();
if(value instanceof Boolean){
cbx.setSelected((Boolean)value);
} else if(value instanceof String){
cbx.setSelected(Boolean.valueOf(value.toString()));
}
c = cbx;
}
// return c;
}
Color color = colorSelected;
color = getDefaultBackgroundColor(row);
if(getTableCheckBoxManager() != null){
if(getTableCheckBoxManager().getSelectedIndexsSet().contains(row)){
color = VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_CHECKED;
}
}
c.setBackground(color);
c.setForeground(Color.black);
return c;
}
public Color getDefaultBackgroundColor(int rowIndex){
Color color = (rowIndex % 2) == 0 ? VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_EVEN : VCISwingUtil.JTABLE_ROW_BACKGROUND_COLOR_ODD;
return color;
}
public Color getColorEven() {
return colorEven;
}
public void setColorEven(Color colorEven) {
this.colorEven = colorEven;
}
public Color getColorOdd() {
return colorOdd;
}
public void setColorOdd(Color colorOdd) {
this.colorOdd = colorOdd;
}
public Color getColorSelected() {
return colorSelected;
}
public void setColorSelected(Color colorSelected) {
this.colorSelected = colorSelected;
}
public Map getClickedRowIndexMap() {
return clickedRowIndexMap;
}
public void setClickedRowIndexMap(Map clickedRowIndexMap) {
this.clickedRowIndexMap = clickedRowIndexMap;
}
private IVCIJTableBaseCheckManager tableCheckBoxManager = null;
public IVCIJTableBaseCheckManager getTableCheckBoxManager() {
return tableCheckBoxManager;
}
public void setTableCheckBoxManager(
IVCIJTableBaseCheckManager tableCheckBoxManager) {
this.tableCheckBoxManager = tableCheckBoxManager;
}
public VCIJTablePanel getTablePanel() {
return tablePanel;
}
public void setTablePanel(VCIJTablePanel tablePanel) {
this.tablePanel = tablePanel;
}
}