private void OnContextChanged(EventArgs eventArgs) { IFileIconMapper fim = Context.GetService <IFileIconMapper>(); if (fim != null) { SmallImageList = fim.ImageList; } }
protected override void OnContextChanged(EventArgs e) { base.OnContextChanged(e); if (Context == null) { return; } IFileIconMapper mapper = Context.GetService <IFileIconMapper>(); dirView.SmallImageList = mapper.ImageList; _dirOffset = mapper.DirectoryIcon; _fileOffset = mapper.FileIcon; if (VSVersion.VS2012OrLater) { return; } IUIService ds = GetService <IUIService>(); if (ds != null) { ToolStripRenderer renderer = ds.Styles["VsToolWindowRenderer"] as ToolStripRenderer; if (renderer != null) { toolStrip1.Renderer = renderer; } else { IAnkhVSColor color = Context.GetService <IAnkhVSColor>(); Color clr; if (color != null && color.TryGetColor(__VSSYSCOLOREX.VSCOLOR_COMMANDBAR_GRADIENT_MIDDLE, out clr)) { toolStrip1.BackColor = clr; } if (color != null && color.TryGetColor(__VSSYSCOLOREX.VSCOLOR_COMMANDBAR_HOVEROVERSELECTED, out clr)) { toolStrip1.ForeColor = clr; } if (color != null && color.TryGetColor(__VSSYSCOLOREX.VSCOLOR_COMMANDBAR_TEXT_ACTIVE, out clr)) { urlLabel.ForeColor = clr; } } } }
public WCSolutionNode(IAnkhServiceProvider context, SvnItem item) : base(context, null, item) { string file = Context.GetService <IAnkhSolutionSettings>().SolutionFilename; IFileIconMapper iconMapper = context.GetService <IFileIconMapper>(); if (string.IsNullOrEmpty(file)) { _imageIndex = iconMapper.GetIconForExtension(".sln"); } else { _imageIndex = iconMapper.GetIcon(file); } }
public RepositoryListItem(RepositoryListView view, SharpSvn.Remote.ISvnRepositoryListItem listItem, SvnOrigin dirOrigin, IFileIconMapper iconMapper) : base(view) { if (listItem == null) throw new ArgumentNullException("listItem"); else if (dirOrigin == null) throw new ArgumentNullException("dirOrigin"); SvnDirEntry entry = listItem.Entry; Uri entryUri = listItem.Uri; _entry = entry; _origin = new SvnOrigin(entryUri, dirOrigin); string name = SvnTools.GetFileName(entryUri); bool isFile = (entry.NodeKind == SvnNodeKind.File); string extension = isFile ? Path.GetExtension(name) : ""; if (iconMapper != null) { if (isFile) ImageIndex = iconMapper.GetIconForExtension(extension); else { ImageIndex = iconMapper.DirectoryIcon; } } SvnLockInfo lockInfo = null; SvnListEventArgs lea = listItem as SvnListEventArgs; if (lea != null) lockInfo = lea.Lock; SetValues( name, IsFolder ? RepositoryStrings.ExplorerDirectoryName : view.Context.GetService<IFileIconMapper>().GetFileType(extension), entry.Revision.ToString(), entry.Author, IsFolder ? "" : entry.FileSize.ToString(), entry.Time.ToLocalTime().ToString("g"), (lockInfo != null) ? lockInfo.Owner : ""); }
private void HookList() { if (_manager != null || Context == null) { return; } _manager = Context.GetService <IPendingChangesManager>(); if (_manager == null) { return; } UI.Items = _manager.PendingChanges; if (pendingCommits != null) { if (pendingCommits.SmallImageList == null) { IFileIconMapper mapper = Context.GetService <IFileIconMapper>(); pendingCommits.SmallImageList = mapper.ImageList; } _manager.IsActiveChanged += OnPendingChangesActiveChanged; _manager.BatchUpdateStarted += new EventHandler <BatchStartedEventArgs>(OnBatchUpdateStarted); } _manager.PendingChanges.ItemChanged += OnPendingChangesChanged; if (!_manager.IsActive) { _manager.IsActive = true; _manager.FullRefresh(false); } AnkhServiceEvents ev = Context.GetService <AnkhServiceEvents>(); ev.SolutionClosed += new EventHandler(OnSolutionRefresh); ev.SolutionOpened += new EventHandler(OnSolutionRefresh); OnSolutionRefresh(this, EventArgs.Empty); }
private int GetIcon(IFileIconMapper mapper) { if (SvnItem.Exists) { return(mapper.GetIcon(_item.FullPath)); } else if (_status.NodeKind == SvnNodeKind.Directory) { return(mapper.DirectoryIcon); } else if (_status.NodeKind == SvnNodeKind.None && _status.RemoteUpdateNodeKind == SvnNodeKind.Directory) { return(mapper.DirectoryIcon); } else { return(mapper.GetIconForExtension(_item.Extension)); } }
private void UpdateText() { IFileIconMapper mapper = Context.GetService <IFileIconMapper>(); ImageIndex = GetIcon(mapper); StateImageIndex = mapper.GetStateIcon(GetIcon(_status)); SetValues( _item.Status.ChangeList, _item.Directory, _item.FullPath, _localStatus.PendingCommitText, (_status.RemoteLock != null) ? PCResources.LockedValue : "", // Locked SafeDate(_item.Modified), _item.Name, GetRelativePath(_item), GetProject(_item), _remoteStatus.PendingCommitText, Context.GetService <IFileIconMapper>().GetFileType(_item), SafeWorkingCopy(_item)); }
public void TearDown() { mapper = null; }
public void SetUp() { sp = new AnkhServiceProvider(); mapper = new FileIconMapper(sp); }
void OnFill(Uri uri) { if (uri == null) { throw new ArgumentNullException(); } try { using (SvnPoolRemoteSession session = GetSession(uri)) { string path = session.MakeRelativePath(uri); SvnRemoteListArgs la = new SvnRemoteListArgs(); la.ThrowOnError = false; la.RetrieveEntries = SvnDirEntryItems.Kind; Uri repositoryRoot = null; List <ListViewItem> items = new List <ListViewItem>(); SvnRemoteNodeKindArgs commonArgs = new SvnRemoteNodeKindArgs(); commonArgs.ThrowOnError = false; SvnNodeKind kind; session.GetNodeKind(path, commonArgs, out kind); session.GetRepositoryRoot(out repositoryRoot); bool ok = (kind == SvnNodeKind.File) || session.List(path, la, delegate(object sender, SvnRemoteListEventArgs e) { if (string.IsNullOrEmpty(e.Path)) { return; } ListViewItem lvi = new ListViewItem(); lvi.Tag = e.Uri; lvi.Text = SvnTools.GetFileName(e.Uri); lvi.ImageIndex = (e.Entry.NodeKind == SvnNodeKind.Directory) ? _dirOffset : _fileOffset; items.Add(lvi); }); if (IsHandleCreated) { Invoke((AnkhAction) delegate() { if (uri == _currentUri) { dirView.Items.Clear(); if (repositoryRoot != null && !_repositoryRoots.Contains(repositoryRoot)) { _repositoryRoots.Add(repositoryRoot); } if (ok) { IFileIconMapper mapper = Context != null ? Context.GetService <IFileIconMapper>() : null; foreach (ListViewItem item in items) { if (item.ImageIndex == _fileOffset) { string ext = Path.GetExtension(item.Text); if (!string.IsNullOrEmpty(ext)) { int n = mapper.GetIconForExtension(ext); if (n > 0) { item.ImageIndex = n; } } } } SetView(items.ToArray()); _walking[uri] = items; } else { string message = string.Format("<{0}>", la.LastException != null ? la.LastException.Message : "Nothing"); dirView.Items.Add(message); } } }); } } } catch (SvnException svnEx) { BeginInvoke((AnkhAction) delegate() { dirView.Items.Clear(); string message = string.Format("<{0}>", svnEx.Message); dirView.Items.Add(message); }); } finally { BeginInvoke((AnkhAction) delegate() { lock (_running) { _running.Remove(uri); if (_running.Count == 0) { if (_busy != null && _loading) { _loading = false; _busy.Hide(); } } } }); // Exception or something } }
public RepositoryListItem(RepositoryListView view, SharpSvn.Remote.ISvnRepositoryListItem listItem, SvnOrigin dirOrigin, IFileIconMapper iconMapper) : base(view) { if (listItem == null) { throw new ArgumentNullException("listItem"); } else if (dirOrigin == null) { throw new ArgumentNullException("dirOrigin"); } SvnDirEntry entry = listItem.Entry; Uri entryUri = listItem.Uri; _entry = entry; _origin = new SvnOrigin(entryUri, dirOrigin); string name = SvnTools.GetFileName(entryUri); bool isFile = (entry.NodeKind == SvnNodeKind.File); string extension = isFile ? Path.GetExtension(name) : ""; if (iconMapper != null) { if (isFile) { ImageIndex = iconMapper.GetIconForExtension(extension); } else { ImageIndex = iconMapper.DirectoryIcon; } } SvnLockInfo lockInfo = null; SvnListEventArgs lea = listItem as SvnListEventArgs; if (lea != null) { lockInfo = lea.Lock; } SetValues( name, IsFolder ? RepositoryStrings.ExplorerDirectoryName : view.Context.GetService <IFileIconMapper>().GetFileType(extension), entry.Revision.ToString(), entry.Author, IsFolder ? "" : entry.FileSize.ToString(), entry.Time.ToLocalTime().ToString("g"), (lockInfo != null) ? lockInfo.Owner : ""); }
private int GetIcon(IFileIconMapper mapper) { if (SvnItem.Exists) return mapper.GetIcon(_item.FullPath); else if (_status.NodeKind == SvnNodeKind.Directory) return mapper.DirectoryIcon; else if (_status.NodeKind == SvnNodeKind.None && _status.RemoteUpdateNodeKind == SvnNodeKind.Directory) return mapper.DirectoryIcon; else return mapper.GetIconForExtension(_item.Extension); }
public void TearDown() { mapper = null; }
public void SetUp() { sp = new AnkhServiceProvider(); mapper = new FileIconMapper(sp); }