/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;

/**
 * Clase RendererArbol, clase para poner iconos personalizados en el JTREE
 * @author MW3 Software
 */
public class RendererArbol extends DefaultTreeCellRenderer
{
    ImageIcon imgCU;
    ImageIcon imgPaso;
    ImageIcon imgExcep;
    ImageIcon imgSecc;
    ImageIcon imgPa;
    ImageIcon imgFG;
    ImageIcon imgPart;
    ImageIcon imgReu;
    ImageIcon imgOrg;
    ImageIcon imgOb;
    ImageIcon imgRF;
    ImageIcon imgRNF;
    ImageIcon imgRR;
    ImageIcon imgRI;
    ImageIcon imgMa;
    ImageIcon imgDo;
    ImageIcon imgDoCerrado;

    /**
     * Enlazamos cada Icono con su ruta
     */
    public RendererArbol()
    {
        imgDo=new ImageIcon("src/iconos/documento.png");
        imgDoCerrado=new ImageIcon("src/iconos/libro_cerrado.png");
        imgCU=new ImageIcon("src/iconos/casodeuso.png");
        imgPaso=new ImageIcon("src/iconos/pasos.png");
        imgExcep=new ImageIcon("src/iconos/excepcion.png");
        imgSecc=new ImageIcon("src/iconos/seccion.png");
        imgPa=new ImageIcon("src/iconos/parrafo_ico.png");
        imgFG=new ImageIcon("src/iconos/picture.png");
        imgPart=new ImageIcon("src/iconos/participante_ico.png");
        imgReu=new ImageIcon("src/iconos/reunion.png");
        imgOrg=new ImageIcon("src/iconos/organizacion.png");
        imgOb=new ImageIcon("src/iconos/objetivos_ico.png");
        imgRF=new ImageIcon("src/iconos/rf.png");
        imgRNF=new ImageIcon("src/iconos/rnf.png");
        imgRR=new ImageIcon("src/iconos/rr.png");
        imgRI=new ImageIcon("src/iconos/ri.png");
        imgMa=new ImageIcon("src/iconos/matriz.png");
    }

    /**
     * Depenediendo del tipo de elemento se le asocia su correspondiente icono
     * @param tree
     * @param value
     * @param selected
     * @param expanded
     * @param leaf
     * @param row
     * @param hasFocus
     * @return los iconos del arbol
     */
    @Override
    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)
    {

        super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);
        DefaultMutableTreeNode nodo = (DefaultMutableTreeNode)value;

        if(nodo.toString().contains("Do"))
        {
            if(nodo.getChildCount()>0)
            {
                setIcon(imgDo);
            }
            else
            {
                setIcon(imgDoCerrado);
            }
            
        }
        if(nodo.toString().contains("CU"))
        {
            setIcon(imgCU);
        }
        if(nodo.toString().contains("Pa"))
        {
            setIcon(imgPaso);
        }
        if(nodo.toString().contains("Ex"))
        {
            setIcon(imgExcep);
        }
        if(nodo.toString().contains("Secc"))
        {
            setIcon(imgSecc);
        }
        if(nodo.toString().contains("Parr"))
        {
            setIcon(imgPa);
        }
        if(nodo.toString().contains("FG"))
        {
            setIcon(imgFG);
        }
        if(nodo.toString().contains("Parti"))
        {
            setIcon(imgPart);
        }
        if(nodo.toString().contains("Org"))
        {
            setIcon(imgOrg);
        }
        if(nodo.toString().contains("Obj"))
        {
            setIcon(imgOb);
        }
        if(nodo.toString().contains("RF"))
        {
            setIcon(imgRF);
        }
        if(nodo.toString().contains("RNF"))
        {
            setIcon(imgRNF);
        }
        if(nodo.toString().contains("RRes"))
        {
            setIcon(imgRR);
        }
        if(nodo.toString().contains("RInf"))
        {
            setIcon(imgRI);
        }
        if(nodo.toString().contains("MRast"))
        {
            setIcon(imgMa);
        }
        if(nodo.toString().contains("Reu"))
        {
            setIcon(imgReu);
        }

        return this;
    }

}
