示例#1
0
        ChangeInfo GetExistingAddedItem(
            PendingChangeCategory addedCategory, int addedItemIndex)
        {
            ChangeInfo currentChangeInfo = ((PendingChangeInfo)addedCategory.
                                            GetChild(addedItemIndex)).ChangeInfo;

            if (Directory.Exists(currentChangeInfo.Path) ||
                File.Exists(currentChangeInfo.Path))
            {
                return(currentChangeInfo);
            }

            return(null);
        }
示例#2
0
        ChangeInfo GetPreviousExistingAddedItem(
            PendingChangeCategory addedCategory, int targetAddedItemIndex)
        {
            for (int i = targetAddedItemIndex - 1; i >= 0; i--)
            {
                ChangeInfo currentChangeInfo = GetExistingAddedItem(addedCategory, i);

                if (currentChangeInfo != null)
                {
                    return(currentChangeInfo);
                }
            }

            return(null);
        }
示例#3
0
        ChangeInfo GetNextExistingAddedItem(
            PendingChangeCategory addedCategory, int targetAddedItemIndex)
        {
            int addedItemsCount = addedCategory.GetChildrenCount();

            for (int i = targetAddedItemIndex + 1; i < addedItemsCount; i++)
            {
                ChangeInfo currentChangeInfo = GetExistingAddedItem(addedCategory, i);

                if (currentChangeInfo != null)
                {
                    return(currentChangeInfo);
                }
            }

            return(null);
        }
示例#4
0
        static Texture GetCategoryIcon(PendingChangeCategory category)
        {
            switch (category.Type)
            {
            case PendingChangeCategoryType.Added:
                return(Images.GetImage(Images.Name.IconAdded));

            case PendingChangeCategoryType.Changed:
                return(Images.GetImage(Images.Name.IconChanged));

            case PendingChangeCategoryType.Deleted:
                return(Images.GetImage(Images.Name.IconDeleted));

            case PendingChangeCategoryType.Moved:
                return(Images.GetImage(Images.Name.IconMoved));

            default:
                return(null);
            }
        }
示例#5
0
        internal ChangeInfo GetNearestAddedChange()
        {
            IList <int> selectedIds = GetSelection();

            if (selectedIds.Count == 0)
            {
                return(null);
            }

            int id = selectedIds[0];

            IList <TreeViewItem> treeViewItems =
                FindRows(new List <int>()
            {
                id
            });

            if (treeViewItems.Count == 0)
            {
                return(null);
            }

            PendingChangeInfo changeInfo =
                ((ChangeTreeViewItem)treeViewItems[0]).ChangeInfo;
            PendingChangeCategory category =
                (PendingChangeCategory)changeInfo.GetParent();

            int itemIndex = category.GetChildPosition(changeInfo);

            ChangeInfo result = GetNextExistingAddedItem(category, itemIndex);

            if (result != null)
            {
                return(result);
            }

            return(GetPreviousExistingAddedItem(category, itemIndex));
        }
示例#6
0
 internal ChangeCategoryTreeViewItem(int id, PendingChangeCategory category)
     : base(id, 0, category.CategoryName)
 {
     Category = category;
 }