001 package org.shiftone.jrat.ui.util; 002 003 004 import org.shiftone.jrat.util.log.Logger; 005 006 import javax.swing.*; 007 import javax.swing.table.DefaultTableCellRenderer; 008 import java.awt.*; 009 010 011 /** 012 * Class ColorTableCellRenderer renders a Color int a table by displaying a 013 * round rectangular swatch. 014 * 015 * @author jeff@shiftone.org (Jeff Drost) 016 */ 017 public class ColorTableCellRenderer extends DefaultTableCellRenderer { 018 019 private static final Logger LOG = Logger.getLogger(ColorTableCellRenderer.class); 020 private Object value = null; 021 022 /** 023 * Method getTableCellRendererComponent 024 */ 025 public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, 026 int row, int column) { 027 028 this.value = value; 029 030 return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); 031 } 032 033 034 /** 035 * Method paint 036 */ 037 public void paintComponent(Graphics g) { 038 039 if (value instanceof Color) { 040 int x = 4; 041 int y = 4; 042 int w = getWidth() - 8; 043 int h = getHeight() - 9; 044 045 g.setColor(Color.darkGray); 046 g.fillRoundRect(x - 2, y - 2, w + 4, h + 4, 5, 5); 047 g.setColor((Color) value); 048 g.fillRoundRect(x, y, w, h, 5, 5); 049 } 050 } 051 }