Ejemplo n.º 1
0
 /**
  * Carga la lista de eventos definidos desde el administrador 
  * La redefinicion filtra solo aquellos utilizados en esta pantalla
  * y agrega los tabs como eventos
  * @ignore 
  */
 protected function cargar_lista_eventos()
 {
     //--- Filtra los eventos definidos por el usuario segun la asignacion a pantallas
     parent::cargar_lista_eventos();
     if (isset($this->_evento_implicito)) {
         //Si el evento implicito no esta en esta pantalla, no usarlo
         $id = $this->_evento_implicito->get_id();
         if (!isset($this->_eventos_usuario_utilizados[$id])) {
             unset($this->_evento_implicito);
         }
     }
     //Como los eventos de pantalla vienen indexados por identificador (al igual que los utilizados por el usuario) podemos usar eso a nuestro favor
     // en lugar de hacer el tipico ciclo, asi obtenemos los eventos usados por el usuario en una linea.
     $this->_eventos_usuario_utilizados = array_intersect_key($this->_eventos_usuario_utilizados, $this->_eventos_pantalla);
     //-- Agrega los eventos internos relacionados con la navegacion tabs
     switch ($this->_info_ci['tipo_navegacion']) {
         case self::NAVEGACION_TAB_HORIZONTAL:
         case self::NAVEGACION_TAB_VERTICAL:
             foreach ($this->_lista_tabs as $id => $tab) {
                 $this->registrar_evento_cambio_tab($id);
             }
             break;
         case self::NAVEGACION_WIZARD:
             list($anterior, $siguiente) = array_elem_limitrofes(array_keys($this->get_lista_tabs()), $this->_info_pantalla['identificador']);
             if ($anterior !== false) {
                 $e = new toba_evento_usuario();
                 $e->set_id('cambiar_tab__anterior');
                 $e->set_etiqueta('< &Anterior');
                 $e->set_estilo_css('ei-boton-izq');
                 $e->set_maneja_datos(false);
                 $this->_eventos_usuario[$e->get_id()] = $e;
                 //Lista de eventos
                 $nuevo[$e->get_id()] = $e;
                 $this->_eventos_usuario_utilizados = array_merge($nuevo, $this->_eventos_usuario_utilizados);
                 //$this->_eventos_usuario_utilizados[ $e->get_id() ] = $e;	//Lista de utilizados
             }
             if ($siguiente !== false) {
                 $e = new toba_evento_usuario();
                 $e->set_id('cambiar_tab__siguiente');
                 $e->set_etiqueta('&Siguiente >');
                 $this->_eventos_usuario[$e->get_id()] = $e;
                 //Lista de eventos
                 $this->_eventos_usuario_utilizados[$e->get_id()] = $e;
                 //Lista de utilizados
             }
             break;
     }
 }
Ejemplo n.º 2
0
 /**
  * Genera el html de un botón específico
  * @param toba_evento_usuario $evento
  * @param boolean $retornar Define si devuelve como resultado el HTML o lo 'imprime'
  */
 protected function generar_html_boton($evento, $retornar = false)
 {
     $salida = '';
     //--- Link al editor
     if (toba_editor::modo_prueba()) {
         $salida .= toba_editor::get_vinculo_evento($this->_id, $this->_info['clase_editor_item'], $evento->get_id()) . "\n";
     }
     //--- Utilidades de impresion
     if ($evento->posee_accion_imprimir()) {
         $this->_utilizar_impresion_html = true;
     }
     if (!$evento->esta_anulado()) {
         $salida .= $evento->get_html($this->_submit, $this->objeto_js, $this->_id);
     }
     if ($retornar) {
         return $salida;
     } else {
         echo $salida;
     }
 }