/*
 * FileRender.java
 *
 */

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

/**
 * Este render es el encargado de presentar las propiedades de objetos de
 * com.uvigo.mhp.ui de tipo String que hagan referencia a un fichero
 * @author Raul
 * @version 0.1
 */
public class FileRender extends javax.swing.table.DefaultTableCellRenderer implements CellRender {
    
    
    
    
    
    /**
     * Crea una nueva instancia de esta clase
     */
    public FileRender() {
    }
    
    
    /**
     * El metodo que dibuja el componente. Concretamente pinta una JLabel con el
     * nombre del fichero al que apunta la propiedad. Tambien presenta el nombre de la opcion
     */
    public java.awt.Component getTableCellRendererComponent(javax.swing.JTable oTabla, Object oValue,boolean isSelected,boolean hasFocus,int iRow, int iColumn) {
        java.awt.Component oComponent = super.getTableCellRendererComponent(oTabla, oValue, isSelected,hasFocus,iRow,iColumn);
        if (oValue!=null) {
            String[] sWords = oValue.toString().split("/");
            String sFile= sWords[sWords.length-1];
            String sName=null;
            if (oTabla.getModel().getValueAt(iRow,0).toString().toLowerCase().contains("file")) sName = sFile.replaceAll("[^a-zA-Z_0-9][0-9][^a-zA-Z_0-9]","").replaceAll(".xml","")+" - "+MainFrame.oMainFrame.getOption(MainFrame.oMainFrame.iGetOpcion());
            else sName=sFile;
            ((javax.swing.JLabel) oComponent).setText(sName);
            ((javax.swing.JLabel)oComponent).setToolTipText(sName);
        }
        
        return oComponent;
    }
    
    
    
    
    
    
    /**
     * Devuelve la clase a la que pertenece este render
     * @return La clase de com.uvigo.tMaestro.SCOCreator.tool.properties.cellRenders.FileRender
     */
    public Class getTypeRender() {
        return (com.uvigo.tMaestro.SCOCreator.tool.properties.cellRenders.FileRender.class);
    }
    
}
