Exemplo n.º 1
0
        private void OnContextChanged(EventArgs eventArgs)
        {
            IFileIconMapper fim = Context.GetService <IFileIconMapper>();

            if (fim != null)
            {
                SmallImageList = fim.ImageList;
            }
        }
Exemplo n.º 2
0
        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;
                    }
                }
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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 : "");
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 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));
     }
 }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
 public void TearDown()
 {
     mapper = null;
 }
Exemplo n.º 9
0
        public void SetUp()
        {
            sp = new AnkhServiceProvider();

            mapper = new FileIconMapper(sp);
        }
Exemplo n.º 10
0
        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
            }
        }
Exemplo n.º 11
0
        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 : "");
        }
Exemplo n.º 12
0
 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);
 }
Exemplo n.º 13
0
 public void TearDown()
 {
     mapper = null;
 }
Exemplo n.º 14
0
        public void SetUp()
        {
            sp = new AnkhServiceProvider();

            mapper = new FileIconMapper(sp);
        }