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;
|
|
/**
|
*
|
* <p>Title: </p>
|
* <p>Description: </p>
|
* <p>Copyright: Copyright (c) 2012</p>
|
* <p>Company: VCI</p>
|
* @author xchao
|
* @time 2012-5-10
|
* @version 1.0
|
*/
|
public class AlternatelyRowColorTableCellRender<T> extends DefaultTableCellRenderer {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 3407119458966532353L;
|
protected Map<Integer, Boolean> clickedRowIndexMap = new HashMap<Integer, Boolean>();
|
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<T> tablePanel = null;
|
public AlternatelyRowColorTableCellRender(VCIJTablePanel<T> 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<Integer, Boolean> getClickedRowIndexMap() {
|
return clickedRowIndexMap;
|
}
|
|
public void setClickedRowIndexMap(Map<Integer, Boolean> clickedRowIndexMap) {
|
this.clickedRowIndexMap = clickedRowIndexMap;
|
}
|
|
private IVCIJTableBaseCheckManager tableCheckBoxManager = null;
|
public IVCIJTableBaseCheckManager getTableCheckBoxManager() {
|
return tableCheckBoxManager;
|
}
|
|
public void setTableCheckBoxManager(
|
IVCIJTableBaseCheckManager tableCheckBoxManager) {
|
this.tableCheckBoxManager = tableCheckBoxManager;
|
}
|
public VCIJTablePanel<T> getTablePanel() {
|
return tablePanel;
|
}
|
public void setTablePanel(VCIJTablePanel<T> tablePanel) {
|
this.tablePanel = tablePanel;
|
}
|
}
|