void PerformInitialUpdate(IPendingChangesManager manager) { if (manager == null) throw new ArgumentNullException("manager"); pendingCommits.BeginUpdate(); _listItems.Clear(); // Make sure we are clear pendingCommits.ClearItems(); try { foreach (PendingChange pc in manager.GetAll()) { PendingCommitItem pi = new PendingCommitItem(pendingCommits, pc); _listItems.Add(pc.FullPath, pi); if (_checkedItems != null) pi.Checked = _checkedItems.Contains(pc.FullPath); pendingCommits.Items.Add(pi); } _checkedItems = null; } finally { pendingCommits.EndUpdate(); pendingCommits.Invalidate(); } }
/// <summary> /// Initializes a new instance of the <see cref="PendingChangeEventArgs"/> class. /// </summary> /// <param name="service">The service.</param> /// <param name="change">The change.</param> public PendingChangeEventArgs(IPendingChangesManager service, PendingChange change) { if (service == null) throw new ArgumentNullException("service"); _change = change; // change can be null _context = service; }
private void HookList() { if (_manager != null || Context == null) return; if (pendingCommits.SmallImageList == null) { IFileIconMapper mapper = Context.GetService<IFileIconMapper>(); pendingCommits.SmallImageList = mapper.ImageList; } _manager = Context.GetService<IPendingChangesManager>(); if (_manager == null) return; _manager.Added += new EventHandler<PendingChangeEventArgs>(OnPendingChangeAdded); _manager.Removed += new EventHandler<PendingChangeEventArgs>(OnPendingChangeRemoved); _manager.Changed += new EventHandler<PendingChangeEventArgs>(OnPendingChangesChanged); _manager.InitialUpdate += new EventHandler<PendingChangeEventArgs>(OnPendingChangesInitialUpdate); _manager.IsActiveChanged += new EventHandler<PendingChangeEventArgs>(OnPendingChangesActiveChanged); _manager.ListFlushed += new EventHandler<PendingChangeEventArgs>(OnPendingChangesListFlushed); if (!_manager.IsActive) { _manager.IsActive = true; _manager.FullRefresh(false); } else PerformInitialUpdate(_manager); AnkhServiceEvents ev = Context.GetService<AnkhServiceEvents>(); ev.SolutionClosed += new EventHandler(OnSolutionRefresh); ev.SolutionOpened += new EventHandler(OnSolutionRefresh); OnSolutionRefresh(this, EventArgs.Empty); }