Árbol
Un
ei_arbol
representa gráficamente una estructura de árbol con
posibilidad de incluir funcionalidades referentes a cada nodo del árbol
tales como iconos, utilerías, colapsados, ayuda extendida, etc.
Actualmente la definición del objeto utilizando el editor es muy básica,
todo el comportamiento se define en forma de código.
Carga
En la configuración se espera recibir de parte del CI que lo contiene un objeto que implemente la interface toba_nodo_arbol.
Este objeto será considerado como el nodo raíz y será el punto de inicio
del recorrido a partir de su método get_hijos(). Cuando el árbol a
cargar se puede hacer muy grande existe la posibilidad de que el árbol
vaya cargando sus ramas bajo demanda, utilizando AJAX, invocando el
evento cargar_nodo
en el servidor. Un nodo así se lo denomina
parcialmente cargado cuando el nodo no es hoja (tiene hijos)
pero sus hijos no están cargados:
!$nodo->es_hoja() && !$nodo->tiene_hijos_cargados()
Eventos predefinidos
cambio_apertura
: Se dispara cuando al volver al server el objeto descubre que el usuario ha cambiado la apertura de alguno de los nodos. El evento envía un arreglo asociativo'id_del_nodo' => 0|1
determinando si esta abierto o no.ver_propiedades
: Cuando un nodotiene_propiedades()
, el usuario puede clickear sobre el, en este evento se acarrea el identificador del nodo que fue seleccionado.cargar_nodo
: Este evento se dispara en el proceso de carga a demanda de nodos (usando AJAX). Cuando un nodo responde que tiene hijos pero no se brindan las referencias a estos hijos el árbol asume que estos nodos se quieren cargar en demanda, acarreando el id del nodo como parámetro de este evento. La respuesta de este evento debe ser el nodo del árbol que implementa la interfaz toba_nodo_arbol.
Ejemplo
Por ahora el catalogo de items, en el frame de la izquierda del editor, es el ejemplo más claro de este objeto.