} // onClose /// <summary> /// Método que se invoca siempre que se selecciona un nuevo nodo /// en el árbol de directorios que se muestra en el formulario. /// El método recupera el nodo recuperado y lo añade al control /// encargada de visualizar la información sobre el elemento /// actualmente seleccionado. /// </summary> /// <param name="sender"> /// Este parámetro se incluye por conformidad con el /// perfil de la operación a implementar, de acuerdo con las /// especificaciones de la plataforma. No se utilizada para /// nada en este caso concreto. /// </param> /// <param name="e"> /// Objeto que contiene diversa información acerca del nodo /// seleccionado. En este caso se utiliza para recuperar el /// nodo seleccionado. /// </param> /// <pre>(e != null) && (e.Node != null)</pre> private void onElementSelected(object sender, TreeViewEventArgs e) { // Este casting indeseable es causa de una mala implementación // del control TreeView. Creando una clase genérica TreeView<T> // se podría haber evitado. Dicha clase pertenece a la biblioteca // de controles para aplicaciones de escritorio de .NET SparrowNode selected = (SparrowNode)e.Node; this.spv_ElementViewer.SparrowElement = selected.ReferencedElement; } // onElementSelected
} // onElementSelected #endregion #region Métodos privados de soporte /// <summary> /// Genera un árbol de nodos con la visualización del /// sistema de archivos. /// </summary> /// <param name="fs"> /// El sistema de archivos que debe ser pasado a un árbol /// de nodos. /// </param> /// <returns> /// Un árbol de nodos correspondiente al sistema de archivos /// pasado como parámetro. /// </returns> /// <pre>(fs != null)</pre> protected TreeNode SistemaArchivo2Node(SistemaArchivo fs) { // Creamos el nodo raíz TreeNode result = new SparrowNode(fs); // Añadimos los hijos al nodo raíz // Para ello iteramos sobre los hijos del raíz foreach (SistemaArchivo s in fs.Archivos) { // Construimos el árbol correspondiente al hijo actual TreeNode newChild = SistemaArchivo2Node(s); // Añadimos ese hijo a la colección de hijos del nodo // raíz result.Nodes.Add(newChild); } // foreach return(result); } // SistemaArchivo2Node