Exemplo n.º 1
0
        /// <summary>
        ///		Crea un nuevo elemento
        /// </summary>
        protected override bool NewItem()
        {
            FilesModelCollection files = new FilesModelCollection(Project);
            bool isUpdated             = false;

            // Obtiene los archivos de la lista
            foreach (PageListItemViewModel item in ListItems)
            {
                files.Add(item.File);
            }
            // Abre la ventana de selección de documentos
            if (DocWriterViewModel.Instance.ViewsController.SelectFilesProject
                    (Project, FileModel.DocumentType.Document,
                    files, out FilesModelCollection filesSelected) == SystemControllerEnums.ResultType.Yes)
            {
                // Limpia la lista
                ListItems.Clear();
                // Añade los elementos
                foreach (FileModel file in filesSelected)
                {
                    ListItems.Add(new PageListItemViewModel(file));
                }
                // Indica que ha habido modificaciones
                isUpdated = true;
            }
            // Devuelve el valor que indica si se ha dado alguno de alta
            return(isUpdated);
        }
Exemplo n.º 2
0
 public TreeDocumentsViewModel(BauMvvm.ViewModels.BaseObservableObject viewModelParent, FileModel.DocumentType documentType,
                               FileModel file, FilesModelCollection files)
 {
     ViewModelParent = viewModelParent;
     DocumentType    = documentType;
     File            = file;
     Files           = files;
 }
Exemplo n.º 3
0
        /// <summary>
        ///		Obtiene los archivos seleccionados
        /// </summary>
        public FilesModelCollection GetIsCheckedFiles()
        {
            FilesModelCollection files = new FilesModelCollection(File.Project);

            // Añade los nodos seleccionados
            files.AddRange(GetFilesIsChecked(Nodes));
            // Devuelve la colección de archivos
            return(files);
        }
 public SelectFilesProjectViewModel(ProjectModel project, FileModel.DocumentType idDocumentType, FilesModelCollection filesSelected)
 {
     // Inicializa las propiedades
     Project        = project;
     FilesSelected  = filesSelected;
     IDDocumentType = idDocumentType;
     // Carga por primera vez el combo de proyectos
     LoadTreeFiles(project);
 }
Exemplo n.º 5
0
        /// <summary>
        ///		Obtiene los archivos de la lista de páginas
        /// </summary>
        internal FilesModelCollection GetPages()
        {
            FilesModelCollection files = new FilesModelCollection(Project);

            // Obtiene los archivos de la lista
            foreach (PageListItemViewModel item in ListItems)
            {
                files.Add(item.File);
            }
            // Devuelve la colección de listas
            return(files);
        }
Exemplo n.º 6
0
        /// <summary>
        ///		Obtiene el índice del documento
        /// </summary>
        private string GetIndex(ProjectModel project, DocumentModel documentRoot)
        {
            NhamlBuilder         builder = new NhamlBuilder();
            FilesModelCollection files   = GetFilesChild(documentRoot);

            // Crea la lista con el índice
            builder.Indent = 0;
            builder.AddTag("br");
            // Obtiene el índice
            CreateIndex(builder, project, files);
            // Devuelve el contenido
            return(builder.ToString());
        }
        /// <summary>
        ///		Obtiene los archivos hijo de una colección
        /// </summary>
        internal FileTargetModelCollection GetChilds(FilesModelCollection files, bool isRecursive, bool onlyRss)
        {
            FileTargetModelCollection childs = new FileTargetModelCollection(Processor);

            // Recorre los archivos añadiendo los hijos
            foreach (FileModel file in files)
            {
                childs.AddRange(GetChilds(file, isRecursive, onlyRss));
            }
            // Elimina los duplicados
            childs.RemoveDuplicates();
            // Devuelve la colección
            return(childs);
        }
Exemplo n.º 8
0
        /// <summary>
        ///		Carga los archivos de una carpeta
        /// </summary>
        private FilesModelCollection Load(ProjectModel project, string path)
        {
            FilesModelCollection files = new FilesModelCollection(project);

            // Obtiene los archivos
            if (Directory.Exists(path))
            {
                // Añade los directorios
                files.AddRange(ConvertFiles(project, Directory.GetDirectories(path)));
                // Añade los archivos
                files.AddRange(ConvertFiles(project, Directory.GetFiles(path)));
            }
            // Devuelve los archivos
            return(files);
        }
Exemplo n.º 9
0
        /// <summary>
        ///		Añade un archivo / directorio a la colección
        /// </summary>
        private FilesModelCollection ConvertFiles(ProjectModel project, string [] arrfileName)
        {
            FilesModelCollection files = new FilesModelCollection(project);

            // Añade los archivos a la colección
            foreach (string fileName in arrfileName)
            {
                FileModel file = ConvertFile(project, fileName);

                if (file != null)
                {
                    files.Add(file);
                }
            }
            // Devuelve la colección de archivos
            return(files);
        }
Exemplo n.º 10
0
        /// <summary>
        ///		Obtiene el número de documentos de una colección de archivos
        /// </summary>
        private int GetCountDocuments(FilesModelCollection files)
        {
            int count = 0;

            // Obtiene el número de documentos entre los archivos
            if (files != null)
            {
                foreach (FileModel file in files)
                {
                    if (file.FileType == FileModel.DocumentType.Document)
                    {
                        count++;
                    }
                }
            }
            // Devuelve el número de documentos
            return(count);
        }
Exemplo n.º 11
0
        /// <summary>
        ///		Abre el formulario de selección de archivos de un proyecto
        /// </summary>
        public SystemControllerEnums.ResultType SelectFilesProject(ProjectModel project, FileModel.DocumentType idDocumentType, FilesModelCollection filesSelected,
                                                                   out FilesModelCollection filesOutput)
        {
            SelectFilesProjectView frmNewSelect = new SelectFilesProjectView(project, idDocumentType, filesSelected);

            SystemControllerEnums.ResultType result;

            // Inicializa los datos de salida
            filesOutput = new FilesModelCollection(project);
            // Muestra el formulario
            result = DocWriterPlugin.MainInstance.HostPluginsController.HostViewsController.ShowDialog(frmNewSelect);
            // Recoge los valores
            if (result == SystemControllerEnums.ResultType.Yes)
            {
                filesOutput = frmNewSelect.ViewModel.FilesSelected;
            }
            // Devuelve el resultado
            return(result);
        }
Exemplo n.º 12
0
        /// <summary>
        ///		Obtiene los archivos de un tipo de una carpeta
        /// </summary>
        private FilesModelCollection GetFiles(ProjectModel project, FilesModelCollection filesProject, FileModel.DocumentType idDocumentType)
        {
            FilesModelCollection files = new FilesModelCollection(project);

            // Añade a la colección de salida los archivos de determinado tipo
            foreach (FileModel fileProject in filesProject)
            {
                if (fileProject.FileType == idDocumentType)
                {
                    files.Add(fileProject);
                }
                else
                {
                    files.AddRange(fileProject.Files);
                }
            }
            // Devuelve la colección de archivos
            return(files);
        }
Exemplo n.º 13
0
        /// <summary>
        ///		Obtiene los archivos seleccionados
        /// </summary>
        private FilesModelCollection GetFilesIsChecked(TreeViewItemsViewModelCollection nodes)
        {
            FilesModelCollection files = new FilesModelCollection(File.Project);

            // 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);
        }
Exemplo n.º 14
0
        /// <summary>
        ///		Obtiene el índice
        /// </summary>
        private void CreateIndex(NhamlBuilder builder, ProjectModel project, FilesModelCollection files)
        {
            if (GetCountDocuments(files) > 0)
            {
                // Abre la lista
                builder.AddTag("ul");
                builder.Indent++;
                // Crea los elementos de la lista
                foreach (FileModel file in files)
                {
                    if (file.FileType == FileModel.DocumentType.Document)
                    {
                        DocumentModel document = new LibDocWriter.Application.Bussiness.Documents.DocumentBussiness().Load(file);

                        // Añade el título
                        builder.AddTag("li", $"#a {{href=\"{project.Name}\\{document.File.IDFileName}\" }} {document.Title} #");
                        // Añade los elementos hijo
                        CreateIndex(builder, project, GetFilesChild(document));
                    }
                }
                // Cierra la lista
                builder.Indent--;
            }
        }
Exemplo n.º 15
0
 public SelectFilesProjectView(ProjectModel project, FileModel.DocumentType idDocumentType, FilesModelCollection filesSelected)
 {
     // Inicializa los componentes
     InitializeComponent();
     // Inicializa el ViewModel
     ViewModel        = new SelectFilesProjectViewModel(project, idDocumentType, filesSelected);
     DataContext      = ViewModel;
     ViewModel.Close += (sender, result) =>
     {
         DialogResult = result.IsAccepted;
         Close();
     };
 }
Exemplo n.º 16
0
        /// <summary>
        ///		Crea las referencias
        /// </summary>
        public void Create(ProjectModel projectTarget, string pathTarget, ProjectModel projectSource, FilesModelCollection files, bool isRecursive)
        {
            foreach (FileModel file in files)
            {
                string pathFirstTarget = pathTarget;

                // Si lo que se está copiando es un directorio, se añade el directorio al destino
                if (Directory.Exists(file.FullFileName))
                {
                    pathFirstTarget = Path.Combine(pathTarget, Path.GetFileName(file.FullFileName));
                }
                // Copia los archivos / directorios
                Copy(projectSource, projectTarget, file.FullFileName,
                     pathFirstTarget, isRecursive || file.IsDocumentFolder);
            }
        }
Exemplo n.º 17
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));
                }
            }
        }