Statistics
| Revision:

root / branches / v2_0_0_prep / applications / appgvSIG / src / org / gvsig / app / gui / command / ColorRenderer.java @ 38562

History | View | Annotate | Download (1.72 KB)

1
package org.gvsig.app.gui.command;
2
import java.awt.Color;
3
import java.awt.Component;
4

    
5
import javax.swing.BorderFactory;
6
import javax.swing.JLabel;
7
import javax.swing.JTable;
8
import javax.swing.border.Border;
9
import javax.swing.table.TableCellRenderer;
10

    
11
public class ColorRenderer extends JLabel
12
                           implements TableCellRenderer {
13
    Border unselectedBorder = null;
14
    Border selectedBorder = null;
15
    boolean isBordered = true;
16

    
17
    public ColorRenderer(boolean isBordered) {
18
        this.isBordered = isBordered;
19
        setOpaque(true); //MUST do this for background to show up.
20
    }
21

    
22
    public Component getTableCellRendererComponent(
23
                            JTable table, Object color,
24
                            boolean isSelected, boolean hasFocus,
25
                            int row, int column) {
26
        Color newColor = (Color)color;
27
        setBackground(newColor);
28
        if (isBordered) {
29
            if (isSelected) {
30
                if (selectedBorder == null) {
31
                    selectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
32
                                              table.getSelectionBackground());
33
                }
34
                setBorder(selectedBorder);
35
            } else {
36
                if (unselectedBorder == null) {
37
                    unselectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
38
                                              table.getBackground());
39
                }
40
                setBorder(unselectedBorder);
41
            }
42
        }
43

    
44
        setToolTipText("RGB value: " + newColor.getRed() + ", "
45
                                     + newColor.getGreen() + ", "
46
                                     + newColor.getBlue());
47
        return this;
48
    }
49
}