Example #1
0
        /// <summary>
        ///		Carga los nodos del árbol
        /// </summary>
        protected override TreeViewItemsViewModelCollection LoadNodes()
        {
            TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection();

            // Carga los nodos
            LoadNodes(nodes, null, File.Files);
            // Devuelve la colección de nodos
            return(nodes);
        }
Example #2
0
        /// <summary>
        ///		Carga los nodos hijos de un árbol
        /// </summary>
        private void LoadNodes(TreeViewItemsViewModelCollection nodes, TreeViewItemViewModel nodeParent, FilesModelCollection files)
        {
            foreach (FileModel file in files)
            {
                TreeViewItemViewModel node;

                // Si es un archivo del tipo seleccionado, se añade al árbol, si no, se considera el nodo igual que el padre
                // y se siguen añadiendo hijos
                if (DocumentType == FileModel.DocumentType.Unknown || DocumentType == FileModel.DocumentType.File || DocumentType == file.FileType ||
                    IsReference(file, DocumentType))
                {
                    // Crea un nuevo nodo
                    node            = new TreeViewItemViewModel(file.FullFileName, file.Title, nodeParent, false, file);
                    node.IsExpanded = true;
                    // Selecciona el nodo
                    if (Files != null)
                    {
                        node.IsChecked = Files.ExistsByIDFileName(file.IDFileName);
                    }
                    // Lo añade al árbol
                    if (nodeParent == null)
                    {
                        nodes.Add(node);
                    }
                    else
                    {
                        nodeParent.Children.Add(node);
                    }
                }
                else
                {
                    node = nodeParent;
                }
                // Añade el manejador de eventos
                if (node != null)
                {
                    node.PropertyChanged += (sender, evntArgs) =>
                    {
                        if (evntArgs.PropertyName.EqualsIgnoreCase(nameof(TreeViewItemViewModel.IsChecked)) ||
                            evntArgs.PropertyName.EqualsIgnoreCase(nameof(TreeViewItemViewModel.IsSelected)))
                        {
                            IsTreeeUpdated = true;
                        }
                    }
                }
                ;
                // Añade los nodos hijo
                if (file.IsFolder)
                {
                    LoadNodes(nodes, node, new Application.Bussiness.Solutions.FileBussiness().Load(file));
                }
            }
        }
Example #3
0
        /// <summary>
        ///		Carga los nodos del árbol
        /// </summary>
        protected override TreeViewItemsViewModelCollection LoadNodes()
        {
            FilesModelCollection             files = new Application.Bussiness.Solutions.FileBussiness().Load(File.Project);
            TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection();

            // Carga los nodos
            LoadNodes(nodes, null, files);
            // Indica que no ha habido modificaciones
            if (ViewModelParent != null)
            {
                ViewModelParent.IsUpdated = false;
            }
            // Devuelve la colección de nodos
            return(nodes);
        }
        /// <summary>
        ///		Carga los nodos del árbol
        /// </summary>
        private TreeViewItemsViewModelCollection LoadTreeNodes(BaseNodeViewModel parent, FileModel file,
                                                               OwnerChildModelCollection childs)
        {
            TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection();

            // Crea los nodos
            if (childs != null)
            {
                foreach (OwnerChildModel ownerChild in childs)
                {
                    nodes.Add(new OwnerNodeViewModel(file, ownerChild, parent, ownerChild.HasChilds));
                }
            }
            // Devuelve la colección de nodos
            return(nodes);
        }
        /// <summary>
        ///		Obtiene los nodos correspondientes a las definiciones de objetos propietario
        /// </summary>
        private TreeViewItemsViewModelCollection LoadOwnerNodes(BaseNodeViewModel parent, FileModel file, OwnerChildModel owner,
                                                                OwnerObjectDefinitionModelCollection ownerDefinitions)
        {
            TreeViewItemsViewModelCollection nodes = new TreeViewItemsViewModelCollection();

            // Obtiene los nodos
            if (owner != null && owner.ObjectChilds != null && owner.ObjectChilds.Count > 0)
            {
                nodes = LoadTreeNodes(parent, file, owner.ObjectChilds);
            }
            else
            {
                // Normaliza los elementos hijo
                if (ownerDefinitions == null || ownerDefinitions.Count == 0)
                {
                    if (file is ProjectModel)
                    {
                        ownerDefinitions = (file as ProjectModel)?.Definition.OwnerChilds;
                    }
                    else
                    {
                        ownerDefinitions = file.FileDefinition.OwnerChilds;
                    }
                }
                // Carga los nodos
                foreach (OwnerObjectDefinitionModel ownerDefinition in ownerDefinitions)
                {
                    if (ownerDefinition.IsRootNode)
                    {
                        nodes.Add(new OwnerNodeViewModel(file, new OwnerChildModel(file.FullFileName + "_" + ownerDefinition.GlobalId,
                                                                                   file, ownerDefinition.Name,
                                                                                   ownerDefinition, ownerDefinition.OwnerChilds.Count > 0),
                                                         parent));
                    }
                    else
                    {
                        nodes = LoadTreeNodes(parent, file,
                                              SourceEditorViewModel.Instance.MessagesController.LoadOwnerChilds(file, owner));
                    }
                }
            }
            // Devuelve la colección de nodos
            return(nodes);
        }
Example #6
0
        /// <summary>
        ///		Carga los nodos hijos de un árbol
        /// </summary>
        private void LoadNodes(TreeViewItemsViewModelCollection nodes, TreeViewItemViewModel nodeParent, FileModelCollection files)
        {
            foreach (FileModel file in files)
            {
                TreeViewItemViewModel node;

                // Crea un nuevo nodo
                node            = new TreeViewItemViewModel(file.FullFileName, file.Name, nodeParent, false, file);
                node.IsExpanded = true;
                // Selecciona el nodo
                if (files != null)
                {
                    node.IsChecked = FilesSelected.ExistsByFileName(file.FullFileName);
                }
                // Lo añade al árbol
                if (nodeParent == null)
                {
                    nodes.Add(node);
                }
                else
                {
                    nodeParent.Children.Add(node);
                }
                // Añade el manejador de eventos
                if (node != null)
                {
                    node.PropertyChanged += (sender, evntArgs) =>
                    {
                        if (evntArgs.PropertyName.EqualsIgnoreCase("IsChecked") ||
                            evntArgs.PropertyName.EqualsIgnoreCase("IsSelected"))
                        {
                            IsTreeeUpdated = true;
                        }
                    }
                }
                ;
                // Añade los nodos hijo
                if (file.IsFolder)
                {
                    LoadNodes(nodes, node, file.Files);
                }
            }
        }
Example #7
0
        /// <summary>
        ///		Obtiene los archivos seleccionados
        /// </summary>
        private FileModelCollection GetFilesIsChecked(TreeViewItemsViewModelCollection nodes)
        {
            FileModelCollection files = new FileModelCollection();

            // Busca los nodos seleccionados
            if (nodes != null)
            {
                foreach (TreeViewItemViewModel node in nodes)
                {
                    // Añade el archivo si está seleccionado
                    if (node.IsChecked && (node.Tag is FileModel))
                    {
                        files.Add(node.Tag as FileModel);
                    }
                    // Añade los archivos hijo
                    files.AddRange(GetFilesIsChecked(node.Children));
                }
            }
            // Devuelve los archivos
            return(files);
        }