* @author Keka: * @author Vero: * @author Raquel: * @author Toni: * @package gvHIDRA */ class IgepComunicaIU extends IgepComunicaUsuario { /** * Contiene el código JS que se va a ejecutar * @access private * @var string */ var $script; /** * Prefijo para obtener los campos adaptados * en pantalla * @access private * @var string */ var $prefijoAdaptacion; /** * Prefijo para obtener los campos adaptados * en pantalla * @access private * @var string */ var $sufijoAdaptacion; /** * Variable que contiene el nombre del campo que dispara la acción en el caso de las acciones de interfaz * @access private * @var string */ var $_campoDisparador; /** * Constructor. Recibe como parámetro una instancia viva de la clase * IgepComunicacion * * @access public * @param object $comunica */ //function IgepComunicaIU(& $comunica, & $datosPreinsertados, & $listasPanel, $destinos, $destinosAdaptados) function IgepComunicaIU(& $comunica, & $datosPreinsertados, & $listasPanel, $campoOrigen) { parent::IgepComunicaUsuario($comunica, $datosPreinsertados, $listasPanel); $this->script = ''; //Almacenamos los destinosAdaptados en un array indexado por el nombre del campo $this->prefijoAdaptacion =''; $this->sufijoAdaptacion =''; $auxDestino = $campoOrigen; $v_auxDestino = explode('___',$auxDestino,3); if (count($v_auxDestino)>2) { $this->prefijoAdaptacion = $v_auxDestino[0].'___'; $this->sufijoAdaptacion = '___'.$v_auxDestino[2]; } } /** * Alias para getCampo */ function destinosAdaptados($nombreCampo) { return ($this->prefijoAdaptacion.$nombreCampo.$this->sufijoAdaptacion); } function setValue($campo, $valor) { //Parche para transformar el valor $tipo = $this->comunica->descCampoPanel[$campo]['tipo']; if ($tipo == TIPO_DECIMAL) $valor = ConfIgep::prepararPresentacion($valor, $tipo, $this->comunica->dsnActual, $this->comunica->descCampoPanel[$campo]['parteDecimal']); else $valor = ConfIgep::prepararPresentacion($valor, $tipo, $this->comunica->dsnActual); //Fin de parche $campoDestino = $this->destinosAdaptados($campo); $this->script.= IgepSmarty::getJsSetCampoTexto($campoDestino, $valor); $this->script .= IgepSmarty::getJsSetEstadoModificado($campoDestino); } /** * Alias de setValue */ function setCampo($campo, $valor) { $this->setValue($campo, $valor); } /** * setSelected fija el valor de una lista en una Acción de interfaz * * @access public * @param string $nombreCampo Nombre del campo * @param string $valorCampo Valor del campo * @param $parametroOperacion Origen de datos (datos para insertar, para modificar, para borrar) * @return mixed */ function setSelected($campo, $valor) { $campoDestino = $this->destinosAdaptados($campo); $this->script.= IgepSmarty::getJsSetSelected($campoDestino, $valor); $this->script .= IgepSmarty::getJsSetEstadoModificado($campoDestino); }//Fin function setSelected /* * alias setSelected */ function setSeleccionado($campo, $valor) { $this->setSelected($campo, $valor); } function setLista($campo, $objListaStruc) { $v_lista = $objListaStruc->getEstructuraListaIgep(); $campoDestino = $this->destinosAdaptados($campo); $this->script.= IgepSmarty::getJsLista($campoDestino, $v_lista); $this->script .= IgepSmarty::getJsSetEstadoModificado($campoDestino); } function setVisible($campo,$valor) { $campoDestino = $this->destinosAdaptados($campo); $this->script.= IgepSmarty::getJsSetVisible($campoDestino, $valor); } function setEnable($campo,$valor) { $campoDestino = $this->destinosAdaptados($campo); $this->script.= IgepSmarty::getJsSetEnable($campoDestino, $valor); } /** * IgepComunicaIU::setBttlState Establece el estado del boton Tooltip * correspondiente a activado (true) o desactivado (false) * @access public * @param String $panel Indica el panel sobre el que se sitúa el botonTooltip ||| * @param String $nameBttl Nombre del boton tooltip * @param Boolean $on True para activar, false para desahabilitar * @return void */ function setBttlState($idPanel, $nameBttl, $on) { $this->script.=IgepSmarty::getJsSetBttlState($idPanel, $nameBttl, $on); } /** * Método interno para fijar el nombre del campo que dispara la acción en las acciones de interfaz * @access private * @param string $nombreCampo * @return none */ function _setCampoDisparador($nombreCampo){ $this->_campoDisparador = $nombreCampo; } /** * Método para obtener el nombre del campo que dispara la acción en las acciones de interfaz * @access public * @return string */ function getCampoDisparador(){ return $this->_campoDisparador; } /** * Nos permite cambiar la ficha activa */ function posicionarEnFicha($indiceFila) { if($this->sufijoAdaptacion!=''){ $v_auxUno = explode('___',$this->sufijoAdaptacion); $v_auxDos = explode('_',$v_auxUno[1]); $this->sufijoAdaptacion = '___'.$v_auxDos[0].'_'.$indiceFila; } $this->comunica->posicionarEnTupla($indiceFila); } /** * Obtenemos el modo activo para una acción de interfaz dada. * Los modos posibles son: * -fil : Filtro o modo de búsqueda. * -lis : Listado o modo de tabla. * -edi : Edición o modo de ficha. */ function getModoActivo(){ return $this->comunica->damePanelActivo(); } //PROVISIONAL function getScript() { return $this->script; } //REVIEW: Toni Para poder conseguir que las acciones de negocio tengan acceso a mapeos diferentes a los ya especificados por gvHidra function getForward($name){ die('Error: no se puede hacer uso de esta funcionalidad desde una acción de interfaz.'); } }//Fin de IgepComunicaIU ?>