/// <summary> /// Este método se ejecuta cuando se hace doble-click (y enter?) /// sobre un item del árbol de opciones de la ventana. Debería /// 'mostrar' cualquier error que pudiese ocurrir y no propagar /// ninguna excepción. Cada nodo del árbol que puede lanzar un /// caso de uso debería tener, en su atributo Tag, un texto con /// el nombre de dicho caso (aplicando el esquema dll.caso-de-uso /// de ser necesario) y si se desea pasar algún parametro (solo /// puede ser una cadena), se puede pasar separando el mismo por /// dos puntos ':', por ejemplo: /// TAG: cuAbmGestion.cuListGestiones:TELEFONICA /// </summary> /// <param name="sender"> /// El componente que lanza el evento (envía el mensaje). /// </param> /// <param name="e"> /// Los argumentos del evento lanzado por el componente. /// </param> private void treeView1_NodeMouseDoubleClick(object sender, TreeNodeMouseClickEventArgs e) { TreeNode nodo = e.Node; // Si el nodo seleccionado no tiene info extra se vuelve if (nodo == null || nodo.Tag == null) return; // Se separa la cadena asociada al nodo seleccionado string[] textosNodo = nodo.Tag.ToString().Split(':'); if (textosNodo[0] != null && textosNodo[0].StartsWith("cu")) try { // Se obtiene cualquier cadena extra para pasar al listado string llamado = (textosNodo.Length > 1) ? textosNodo[1] : ""; // Se avisa al controlador que se está por ejecutar un nodo _controladorTree.alEjecutarNodo(nodo); // Por las dudas avisa que va a ocultar los paneles que ya existan if (_controladorListado != null) _controladorListado.alOcultar(); // Se lanza el caso de uso de control del listado _controladorListado = (IControladorListTree) (CUCaller.CallCU(textosNodo[0], this, new object[] {EModoVentana.FULL, llamado})); // Actualiza la imagen del seleccionado if (_nodoPrevio != null) { _nodoPrevio.SelectedImageIndex = _imagenSPrevia; _nodoPrevio.ImageIndex = _imagenNsPrevia; } _imagenSPrevia = nodo.SelectedImageIndex; _imagenNsPrevia = nodo.ImageIndex; _nodoPrevio = nodo; nodo.SelectedImageIndex = _controladorTree.getImagenSeleccionado(); nodo.ImageIndex = _controladorTree.getImagenSeleccionado(); treeView1.Refresh(); // Se actualizan los paneles asociados al nodo actual actualizarListado(); // Por las dudas avisa que acaba de mostrar los paneles _controladorListado.alMostrar(); } catch (Exception ex) { Sistema.Controlador.mostrar("TREE-NOK", ENivelMensaje.ERROR, ex.ToString(), true); } }