/* 
* Copyright 2016 Agencia Estatal de Administración Tibutaria
*
* Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto
* sean aprobadas por la Comisión Europea– versiones
* posteriores de la EUPL (la «Licencia»);
* Solo podrá usarse esta obra si se respeta la Licencia.
* Puede obtenerse una copia de la Licencia en:
*  
* https://joinup.ec.europa.eu/software/page/eupl
*  
* Salvo cuando lo exija la legislación aplicable o se acuerde
* por escrito, el programa distribuido con arreglo a la
* Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
* DE NINGÚN TIPO, ni expresasni implícitas.
*
* Véase la Licencia en el idioma concreto que rige los permisos y 
* limitaciones que establece la Licencia.
*/ 


package servidor.utiles;

import java.awt.Color;
import java.awt.Component;
import java.util.Vector;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;



public  class MyComboBoxModel extends DefaultComboBoxModel {
    public MyComboBoxModel(Object[] items){
        super(items);	   
    }

	public MyComboBoxModel(Vector v){
	super(v);
	}
	
	public MyComboBoxModel() {
	super();
	}

	public void setSelectedItem(Object anItem){
		ItemCombo itc=(ItemCombo)anItem;
		if (itc.isSeleccionable()){
			super.setSelectedItem(anItem);
		}
	}
}



 class MyCellRenderer extends JLabel implements ListCellRenderer {
    public MyCellRenderer() {
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList list,
                                                  Object value,
                                                  int index,
                                                  boolean isSelected,
                                                  boolean cellHasFocus) {
        
    	setText(value.toString());
        ItemCombo it=(ItemCombo)value;
        
        Color background;
        Color foreground;
        JList.DropLocation dropLocation = list.getDropLocation();
        if (dropLocation != null
                && !dropLocation.isInsert()
                && dropLocation.getIndex() == index) {

            background = Color.BLUE;
            foreground = Color.WHITE;

        // check if this cell is selected
        } else if (isSelected) {
            background =list.getSelectionBackground();// Color.blue;
            foreground = (it.isSeleccionable())?list.getSelectionForeground():Color.GRAY;//  Color.WHITE;

        // unselected, and not the DnD drop location
        } else {
        	if (it.isSeleccionable()){
	            background = list.getBackground();//Color.WHITE;
	            foreground = list.getForeground();//Color.BLACK;
        	}
        	else{
	            background = list.getBackground();//Color.WHITE;
	            foreground = Color.gray;
        	}
        };

        setBackground(background);
        setForeground(foreground);

        return this;

    }


}	


	
