/* 
* 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.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JComboBox;

public class MyComboBox extends JComboBox implements ItemListener {
	private String anteriorclaveseleccionada="";
	public MyComboBox(){
		super(new MyComboBoxModel());
		this.addItemListener(this);
		this.setRenderer(new MyCellRenderer());
    }
	
    public String getClaveAnterior(){
    	return anteriorclaveseleccionada;
    }
	public MyComboBox(ItemCombo[] cm){
		super(new MyComboBoxModel(cm));
		this.addItemListener(this);
		this.setRenderer(new MyCellRenderer());
	}

	public void setSeleccionado(String clave){
		MyComboBoxModel mcbm=(MyComboBoxModel)this.getModel();
		for (int i=0;i<mcbm.getSize();i++){
			ItemCombo itc=(ItemCombo)mcbm.getElementAt(i);
			if (itc.getClave().equals(clave) && itc.isSeleccionable()){
				this.setSelectedIndex(i);
			    break;
			}
		}
	}
	public ItemCombo getItem(String clave){
		
		MyComboBoxModel mcbm=(MyComboBoxModel)this.getModel();
		for (int i=0;i<mcbm.getSize();i++){
			ItemCombo itc=(ItemCombo)mcbm.getElementAt(i);
			if (itc.getClave().equals(clave)){
				return itc;
			}
		}
		return null;
	}
	
	public void setSelectedItem(int index){
		ItemCombo itc=(ItemCombo)this.getItemAt(index);
		if (itc.isSeleccionable()){
			this.setSelectedIndex(index);
		} 
	}
    public ItemCombo getSelectedItemCombo(){
    	int inxselected=this.getSelectedIndex();
    	if (inxselected==-1){
    		return null;
    	} else{
    	   return (ItemCombo)(this.getItemAt(inxselected));
    	}
    }

	public void itemStateChanged(ItemEvent e) {
		if (e.getStateChange()==e.DESELECTED){
			this.anteriorclaveseleccionada=((ItemCombo)e.getItem()).getClave(); 
		}
		
	}
	

	

}

