/*
 * ColorRender.java
 *
 */

package com.uvigo.tMaestro.SCOCreator.tool.properties.cellRenders;
import com.uvigo.tMaestro.SCOCreator.tool.properties.*;

/**
 * Este render es el encargado de presentar las propiedades de tipo
 * java.awt.Color
 * @author Raul
 * @version 0.1
 */
public class ColorRender extends javax.swing.JPanel implements CellRender {
    
    
    javax.swing.border.Border oUnselectedBorder = null;
    javax.swing.border.Border oSelectedBorder = null;
    
    
    /**
     * Crea una nueva instancia de esta clase
     */
    public ColorRender() {
        setOpaque(true);
    }
    
    
    /**
     * El metodo que dibuja el componente. Concretamente pinta una JPanel con el
     * color que se pasa como argumento.
     */
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable oTabla, Object oValue,boolean isSelected,boolean hasFocus,int iRow, int iColumn) {
        java.awt.Color oColor = (java.awt.Color) oValue;
        setBackground(oColor);
        if (isSelected) {
            if (oSelectedBorder == null) {
                oSelectedBorder = javax.swing.BorderFactory.createMatteBorder(2,5,2,5,oTabla.getSelectionBackground());
            }
            setBorder(oSelectedBorder);
        } else {
            if (oUnselectedBorder == null) {
                oUnselectedBorder = javax.swing.BorderFactory.createMatteBorder(2,5,2,5,oTabla.getBackground());
            }
            setBorder(oUnselectedBorder);
        }
        this.setToolTipText("R:"+oColor.getRed()+" G:"+oColor.getGreen()+" B:"+oColor.getBlue());
        return(this);
    }
    
    
    
    
    
    
    /**
     * Devuelve la clase para la que se ha disenado este render
     * @return Un objeto de tipo Class<java.awt.Color>
     */
    public Class getTypeRender() {
        return (java.awt.Color.class);
    }
    
}
