Пример #1
0
 /// <summary>
 /// Creates a new instance with the given arguments.
 /// </summary>
 /// <param name="itemType">Item type</param>
 /// <param name="description">Item description</param>
 /// <param name="workspaceArtefact">Affected workspace artefact</param>
 /// <param name="line">Line number that is associated with the item</param>
 /// <param name="column">Column number that is assocated with the item</param>
 public ProblemsViewItem(EProblemsViewItemType itemType, string description, IWorkspaceArtefact workspaceArtefact, uint line, uint column)
 {
     ItemType          = itemType;
     Description       = description;
     WorkspaceArtefact = workspaceArtefact;
     Line   = line;
     Column = column;
 }
Пример #2
0
            /// <inheritdoc />
            public bool HasChildren(object item)
            {
                IWorkspaceArtefact workspaceArtefact = (IWorkspaceArtefact)item;

                if (workspaceArtefact is IWorkspaceArtefactContainer)
                {
                    return(true);
                }
                return(false);
            }
Пример #3
0
            /// <inheritdoc />
            public ImageDescriptor GetImage(object item)
            {
                IWorkspaceArtefact workspaceArtefact = (IWorkspaceArtefact)item;
                string             artefactNature    = workspaceArtefact.Nature; // TODO Add support of artefact nature

                if (workspaceArtefact is IWorkspaceArtefactContainer)
                {
                    return(FolderImageDescriptor);
                }
                return(FileImageDescriptor);
            }
Пример #4
0
        /// <inheritdoc />
        public virtual IWorkspaceArtefact GetArtefact(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }
            using (IEnumerator <IWorkspaceArtefact> artItr = Artefacts.GetEnumerator()) {
                while (artItr.MoveNext())
                {
                    IWorkspaceArtefact artefact = artItr.Current;

                    if (artefact is IWorkspaceFile workspaceFile)
                    {
                        if (workspaceFile.Name == name)
                        {
                            return(workspaceFile);
                        }
                        continue;
                    }

                    if (artefact is IWorkspaceArtefactContainer fileContainer)
                    {
                        if (fileContainer.Name == name)
                        {
                            return(fileContainer);
                        }

                        IWorkspaceArtefact file = fileContainer.GetArtefact(name);
                        if (file != null)
                        {
                            return(file);
                        }
                    }
                }
            }

            return(null);
        }
Пример #5
0
        /// <inheritdoc />
        public virtual IEnumerable <TElement> FlatHierarchy <TElement>() where TElement : class, IWorkspaceArtefact
        {
            using (IEnumerator <IWorkspaceArtefact> artItr = Artefacts.GetEnumerator()) {
                while (artItr.MoveNext())
                {
                    IWorkspaceArtefact workspaceArtefact = artItr.Current;

                    if (workspaceArtefact is TElement targetElement)
                    {
                        yield return(targetElement);
                    }

                    if (workspaceArtefact is IWorkspaceArtefactContainer artefactContainer)
                    {
                        using (IEnumerator <TElement> cntItr = artefactContainer.FlatHierarchy <TElement>().GetEnumerator()) {
                            while (cntItr.MoveNext())
                            {
                                yield return(cntItr.Current);
                            }
                        }
                    }
                }
            }
        }
Пример #6
0
        /// <inheritdoc />
        public virtual IWorkspaceFile GetWorkspaceFile(FileInfo fileInfo)
        {
            if (fileInfo == null)
            {
                return(null);
            }
            if (!fileInfo.Exists)
            {
                return(null);
            }

            DirectoryInfo    fileDirectory   = fileInfo.Directory;
            IWorkspaceFolder workspaceFolder = GetWorkspaceFolder(fileDirectory);

            if (workspaceFolder == null)
            {
                return(null);
            }

            string             fileName       = fileInfo.Name;
            IWorkspaceArtefact folderArtefact = workspaceFolder.GetArtefact(fileName);

            return(folderArtefact as IWorkspaceFile);
        }
Пример #7
0
            /// <inheritdoc />
            public string GetText(object item)
            {
                IWorkspaceArtefact workspaceArtefact = (IWorkspaceArtefact)item;

                return(workspaceArtefact.Name);
            }
Пример #8
0
 /// <summary>
 /// Creates a new instance with the given arguments and 1 as line and column value.
 /// </summary>
 /// <param name="itemType">Item type</param>
 /// <param name="description">Item description</param>
 /// <param name="workspaceArtefact">Affected workspace artefact</param>
 public ProblemsViewItem(EProblemsViewItemType itemType, string description, IWorkspaceArtefact workspaceArtefact)
     : this(itemType, description, workspaceArtefact, 1, 1)
 {
     // Nothing to do here
 }