public ExplorerProjectNodeViewModel(ExplorerProjectViewModel treeViewModel, IHierarchicalViewModel parent, string text, ProjectItemDefinitionModel itemDefinition, object tag = null, bool lazyLoad = true, BauMvvm.ViewModels.Media.MvvmColor foreground = null) : base(parent, text, tag, lazyLoad, foreground) { TreeViewModel = treeViewModel; ItemDefinition = itemDefinition; }
public ProjectItemDefinitionBuilder(ProjectItemDefinitionBuilder parent, string id, string name, ProjectItemDefinitionModel.ItemType type) { // Inicializa los generadores ParentBuilder = parent; // Crea el elemento Item = new ProjectItemDefinitionModel(id, name, type); // Añade el elemento padre if (parent != null) { ParentBuilder.Item.Items.Add(Item); } }
/// <summary> /// Carga los archivos de proyecto /// </summary> protected void LoadProjectFiles(ExplorerProjectNodeViewModel root, string path, string folderDefinitionId) { if (!string.IsNullOrEmpty(path) && System.IO.Directory.Exists(path)) { // Carga las carpetas foreach (string child in System.IO.Directory.GetDirectories(path)) { ExplorerProjectNodeViewModel folder = AddNode(root, System.IO.Path.GetFileName(child), folderDefinitionId, child); LoadProjectFiles(folder, child, folderDefinitionId); } // Carga los archivos foreach (string file in System.IO.Directory.GetFiles(path)) { ProjectItemDefinitionModel definition = Definition.SearchByExtension(System.IO.Path.GetExtension(file)); if (definition != null) { AddNode(root, System.IO.Path.GetFileName(file), definition, file); } } } }
/// <summary> /// Añade un nodo /// </summary> protected ExplorerProjectNodeViewModel AddNode(IHierarchicalViewModel parent, string text, ProjectItemDefinitionModel definition, object tag, bool lazyLoad = false) { ExplorerProjectNodeViewModel node = new ExplorerProjectNodeViewModel(this, parent, text, definition, tag, lazyLoad); // Cambia la negrita node.IsBold = definition?.IsBold ?? false; node.Icon = definition?.Icon; node.Foreground = definition?.Foreground ?? MvvmColor.Black; // Añade el nodo a la lista if (parent == null) { Children.Add(node); } else { parent.Children.Add(node); } // Devuelve el nodo return(node); }