Esempio n. 1
0
        /// <summary>Create <see cref="FakeRevisionListItem"/>.</summary>
        /// <param name="repository">Related repository.</param>
        /// <param name="type">Item type.</param>
        public FakeRevisionListItem(Repository repository, FakeRevisionItemType type)
            : base(null)
        {
            Verify.Argument.IsNotNull(repository, "repository");

            _repository = repository;
            _type       = type;
            switch (type)
            {
            case FakeRevisionItemType.StagedChanges:
                lock (repository.Status.SyncRoot)
                {
                    _iconEntries = new FileStatusIconEntry[]
                    {
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgStagedAdded,
                            Count = repository.Status.StagedAddedCount
                        },
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgStagedRemoved,
                            Count = repository.Status.StagedRemovedCount
                        },
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgStagedModified,
                            Count = repository.Status.StagedModifiedCount
                        },
                    };
                }
                break;

            case FakeRevisionItemType.UnstagedChanges:
                lock (repository.Status.SyncRoot)
                {
                    _subType     = GetSubType(repository.Status);
                    _iconEntries = new FileStatusIconEntry[]
                    {
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgUnmerged,
                            Count = repository.Status.UnmergedCount
                        },
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgUnstagedUntracked,
                            Count = repository.Status.UnstagedUntrackedCount
                        },
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgUnstagedRemoved,
                            Count = repository.Status.UnstagedRemovedCount
                        },
                        new FileStatusIconEntry {
                            Image = FileStatusIcons.ImgUnstagedModified,
                            Count = repository.Status.UnstagedModifiedCount
                        },
                    };
                }
                break;

            default:
                throw new ArgumentException("Unknown type value.", "type");
            }
        }
Esempio n. 2
0
        private void OnStatusUpdated(object sender, EventArgs e)
        {
            var status = (Status)sender;

            switch (Type)
            {
            case FakeRevisionItemType.StagedChanges:
                _iconEntries[0].Count = status.StagedAddedCount;
                _iconEntries[1].Count = status.StagedRemovedCount;
                _iconEntries[2].Count = status.StagedModifiedCount;
                break;

            case FakeRevisionItemType.UnstagedChanges:
                _subType = GetSubType(status);
                _iconEntries[0].Count = status.UnmergedCount;
                _iconEntries[1].Count = status.UnstagedUntrackedCount;
                _iconEntries[2].Count = status.UnstagedRemovedCount;
                _iconEntries[3].Count = status.UnstagedModifiedCount;
                break;
            }
            InvalidateSafe();
        }