* @author Vero: * @author Raquel: * @author Toni: * * @package gvHIDRA */ class gvHidraMainWindow extends Action { /** * variable de error * * @var object obj_errorNegocio */ var $obj_errorNegocio; /** * Variable que contendrá el posible mensaje a enviar al panel. Tiene que ser de la clase IgepMensaje * * @var object $obj_mensaje */ var $obj_mensaje; /** * Objeto que permite manejar/registrar el javascript de esta clase * @access private * @var object igepArbol */ var $obj_IgSmarty; /** * constructor. Generará a partir de los parámetros que se le pasen una conexión a al base de datos y un * array de manejadores de tablas (una por cada una de las que mantenga el panel hijo). */ public function __construct(){ global $g_error; if(!isset($g_error)) $g_error = new IgepError(); $this->obj_errorNegocio = & $g_error; } /** * Método que se ejecuta tras el constructor y que permite seleccionar la acción a realizar. * En esta clase se encuentran las siguientes acciones genéricas: *
    * camposDependientes: recalcula listas dependientes y dispara acciones de interfaz. * abrirVentanaSeleccion: abre la ventana de Selección. * buscarVentanaSeleccion: realiza la busqueda en la ventana de Selección. * keetAliveSession: Refresca la sesión según los parámetros del ConfigFramework. *
*/ function perform($actionMapping, $actionForm) { //Recogemos la accion y le quitamos el prefijo que nos viene de la ventana $str_accion = $actionForm->get('action'); //Debug:Indicamos que entramos en Negocio y la accion a ejecutar IgepDebug::setDebug(5,'gvHidraMainWindow: ejecutamos acción '.$str_accion); $comunica = new IgepComunicacion(null); //Cargamos los posibles Forwards $comunica->setMapping($actionMapping); //Parseamos el REQUEST $comunica->setOperation('iniciarVentana'); $comunica->construirArrayIniciarVentana(); //Parametros no utilizados a null $vacio= null; $comunicaUsuario = new IgepComunicaUsuario($comunica,$vacio,$vacio); switch ($str_accion) { case 'abrirAplicacion': //llamamos a un método para que los sobreescriban si quieren añadir comportamiento. $res = $this->openApp($comunicaUsuario); //Permite redirigir la entrada a un actionForward definido por el usuario if(is_object($res)) $actionForward = $res; elseif($res == -1) $actionForward = $actionMapping->get('gvHidraCloseApp'); else $actionForward = $actionMapping->get('gvHidraOpenApp'); break; case 'cerrarAplicacion': $res = $this->closeApp($comunicaUsuario); if(is_object($res)) $actionForward = $res; elseif($res == -1){ $actionForward = new ActionForward('gvHidraNoAction'); } else $actionForward = $actionMapping->get('gvHidraCloseApp'); break; case 'volverPrincipal': //llamamos a un método para que los sobreescriban si quieren añadir comportamiento. $res = $this->returnHome($comunicaUsuario); //Permite redirigir la entrada a un actionForward definido por el usuario if(is_object($res)) $actionForward = $res; elseif($res == -1) $actionForward = $actionMapping->get('gvHidraCloseApp'); else $actionForward = $actionMapping->get('gvHidraPrincipal'); break; case 'gvhKeepAliveSession'; $actionForward = $actionMapping->get('gvHidraCloseApp'); $destinoSalida = $actionForward->getPath(); if (IgepSession::keepAliveSession()) { echo gvHidraUTF8::toUTF8('1'); } else { echo gvHidraUTF8::toUTF8($destinoSalida); } die; break; default: throw new Exception('Error: La acción '.$str_accion.' no se reconoce.'); break; }//Fin switch IgepSession::_guardaPanelIgep('principal',$this); return $actionForward; }// Fin de perform /** * Este método crea un IgepMensaje y se lo asigna al panel. El primer parámetro corresponde * con el id del mensaje (ver mensaje.php) y el segundo, que es opcional, permite parametrizar * el mensaje pasando en un array los campos que se sustituirán en la cadena del mensaje. * @param $idMensaje string Cadena que contiene el id del mensaje. Ver mensaje.php * @param $mDatos Array Array que contiene parámetros del mensaje. * @return none */ public function showMessage($idMensaje,$params=null) { $this->obj_mensaje = new IgepMensaje($idMensaje,$params); } /** * Método virtual que se sobrescribe en los hijos para poder cambiar el comportamiento en la apertura de la aplicación * @return int */ public function openApp($objDatos) { return 0; } /** * Método virtual que se sobrescribe en los hijos para poder cambiar el comportamiento del cierre de la aplicación * @return int */ public function closeApp($objDatos) { return 0; } /** * Método virtual que se sobrescribe en los hijos para poder cambiar el comportamiento del cierre de la aplicación * @return int */ public function returnHome($comunicaUsuario) { return 0; } public final function isModal() { return false; } }//Fin clase gvHidraMainWindow