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; } }