static void Main() { // Inicializamos los aspectos básicos del sistema // de ventanas Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // Creamos un nuevo gestor de multiformularios MultiWindowRunner runner = new MultiWindowRunner(); // Creamos un sistema de ficheros ejemplo ElementoSistema fs = CrearSistemaEjemplo(); // Creamos un nuevo visor de sistema de archivos Sparrow FileExplorerView fev = new FileExplorerView(runner); fev.SparrowFileSystem = fs; // Creamos un nuevo editor de nombres para los // elementos del sistema de archivos Sparrow anterior FileNameEditor fne = new FileNameEditor(runner); fne.SparrowFileSystem = fs; // Registramos ambos formularios en el gestor de formularios runner.registerForm(fne); runner.registerForm(fev); // Ejecutamos los formularios runner.run(); } // main
} // extractNameFromRow /// <summary> /// Introduce los nombres del sistema de archivos pasado como /// parámetro dentro del diccionario de nombres. /// </summary> /// <param name="sa"> /// El sistema de archivos que se debe introducir en el /// diccionario de nombres de la clase. /// </param> private void createDictorionary(ElementoSistema sa) { // Si el elemento no está en el diccionario lo // añadimos if (!elementos.ContainsKey(sa.Nombre)) { this.elementos[sa.Nombre] = sa; } // Y a continuación procesamos de la misma forma // todos sus hijos. foreach (ElementoSistema s in sa.Archivos) { createDictorionary(s); } // foreach } // createDictionary.
} // 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(ElementoSistema 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 (ElementoSistema 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
} // SparrowNode /// <summary> /// Actualiza la informacion del elemento con la nueva informacion. /// </summary> public void Update(ElementoSistema e) { this.Text = e.Nombre; }// Update
/// <summary> /// Constructor de la clase /// </summary> /// <param name="sa"> /// Elemento del sistema de archivos Sparrow a visualizar /// </param> /// <pre>(sa != null)</pre> public SparrowNode(ElementoSistema sa) : base(sa.Nombre) { this.referencedElement = sa; sa.AnhadeObserver(this); this.Text = referencedElement.Nombre; } // SparrowNode
} // SparrowElementViewer_Resize /// <summary> /// Actualiza la informacion del elemento con la nueva /// informacion. /// </summary> public void Update(ElementoSistema e) { displayElement(); }// Update
} // Archivos /// <summary> /// Actualiza la informacion del enlace con la nueva /// informacion del elemento. /// </summary> /// <param name="e">Elemento del sistema sparrow.</param> public void Update(ElementoSistema e) { Nombre = e.Nombre; } // Update
}// AnhadeElemento /// <summary> /// Metodo que permite eliminar un elemento del conjunto /// </summary> /// <param name="elemento"> Elemento a eliminar </param> public void EliminaElemento(ElementoSistema elemento) { elementos.Remove(elemento); } // EliminaElemento
}// TotalArchivos /// <summary> /// Metodo que permite anhadir un elemento al conjunto. /// </summary> /// <param name="elemento"> Elemento a anhadir </param> public void AnhadeElemento(ElementoSistema elemento) { elementos.Add(elemento); }// AnhadeElemento