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 }