* @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]; } } /** * Método que transforma en nombre de un campo en formato html (cam__...) * * @param string $nombreCampo Nombre del campo * @return string devuelve el campo en formato HTML */ public function destinosAdaptados($nombreCampo) { // REVIEW: David y Vero... A falta de la solución definitiva de la versión 2.x // Llevar a negocio el checkbox y los radio. if (trim($this->prefijoAdaptacion) == 'hins___') return ('ins___'.$nombreCampo.$this->sufijoAdaptacion); else return ($this->prefijoAdaptacion.$nombreCampo.$this->sufijoAdaptacion); } /** * Método que devuelve el nombre de un check en HTML * * @access private * @param string $nombreCampo Nombre del campo * @return string devuelve el id del check en formato HTML */ private function getCheckName($nombreCampo) { //Panel fil if($this->prefijoAdaptacion=='') return 'chkbfil_'.$nombreCampo; //Panel modo edi elseif($this->prefijoAdaptacion == 'cam___') return 'ccam___'.$nombreCampo.$this->sufijoAdaptacion; //Panel modo ins else return 'cins___'.$nombreCampo.$this->sufijoAdaptacion; } /** * Método que devuelve el nombre del hidden de un check * * @access private * @param string $nombreCampo Nombre del campo * @return string devuelve el campo en formato HTML */ private function getCheckHiddenName($nombreCampo) { //Panel fil if($this->prefijoAdaptacion=='') return $nombreCampo; //Panel modo edi elseif($this->prefijoAdaptacion == 'cam___') return 'cam___'.$nombreCampo.$this->sufijoAdaptacion; //Panel modo ins else return 'hins___'.$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); } /** * Método que permite modificar el valor del un check. * PROVISIONAL: en la versión de gvHidra superior a la 2.2 esto se verá modificado. Consultar gvHidra Team. * @param string name nombre del check * @param boolean check Checked si o no * @param string value Valor del si o no * @return none */ //REVIEW: Toni Esto tiene que replantearse para la version HEAD de gvHidra public function setChecked($name, $check, $value) { $idCheck = $this->getCheckName($name); $hiddenName = $this->getCheckHiddenName($name); $this->script.= IgepSmarty::getJsSetCheck($idCheck, $check, $hiddenName, $value); } 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 ?>