/** * 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; } }
/** * 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; } }