<?php
class CLMMultiple extends AppColumna{
	
	protected $_valoresMultiples = array();
	
	
	
	const APP_TIPO_COMBOBOX = 'combo';
	const APP_TIPO_CHECKBOX = 'check';
	
	protected $_tipo_campo = self::APP_TIPO_COMBOBOX;
	
	
	
	public function __construct($name, $valor = null, $cabecera = null, $valoresMultiples = array()){
		parent::__construct($name, $valor, $cabecera);
		$this->_valoresMultiples = $valoresMultiples;
		$this->tipo = 'multiple';
	}
	
	public function setValoresMultiples($valores = array()){
		$this->_valoresMultiples = $valores;
	}
	
	public function addValorMultiple($indice, $valor){
		$this->_valoresMultiples[$indice] = $valor; 
	}
	public function unSetValorMultiple($indice){
		unset($this->_valoresMultiples[$indice]);
	}
	
	
	public function getInfo(){

		$salida = parent::getInfo();
		$salida['valores'] = $this->_valoresMultiples;			
		return $salida;
	
	}
	
	public function setTipoCampo($valor){
		$this->_tipo_campo = $valor;
	}
	
	public function getCampo(){
		switch ($this->_tipo_campo) {
			case self::APP_TIPO_COMBOBOX:
				$campo = new EFCombobox($this->getEditable());
				$campo->setMultiOptions($this->_valoresMultiples);
				break;
			case self::APP_TIPO_CHECKBOX:
				$campo = new EFCheckbox($this->getEditable());
				break;
			
			default:
				;
			break;
		}
		
		
		
		
		$campo->setAncho(12);
		return $campo;
	}
	
	

	public function reemplaza_datosCampo($datos){
	
		$dato = $this->getValor();
		$datos = AppResultadoListado::convertirFilaParaListado($datos);
		$dato = str_replace(array_keys($datos), array_values($datos), $dato);
		$valores = $this->_valoresMultiples;
		if(isset($valores[$dato])){
			$dato_valores = $valores[$dato];
			$dato = str_replace(array_keys($datos), array_values($datos), $dato_valores);
		}elseif($valores['default']){
			$dato_valores = $valores['default'];
			$dato = str_replace(array_keys($datos), array_values($datos), $dato_valores);
		}
	
		
		return $dato;
	}
	
	
}