コード例 #1
0
        /// <summary>
        /// Resolves the specified revision.
        /// </summary>
        /// <param name="origin"></param>
        /// <param name="revision">The revision.</param>
        /// <returns></returns>
        public AnkhRevisionType Resolve(SvnOrigin origin, SharpSvn.SvnRevision revision)
        {
            if (revision == null)
            {
                throw new ArgumentNullException("revision");
            }

            foreach (IAnkhRevisionProvider p in _providers)
            {
                AnkhRevisionType r = p.Resolve(origin, revision);

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

            switch (revision.RevisionType)
            {
            case SvnRevisionType.Number:
                ExplicitRevisionType ert = new ExplicitRevisionType(Context, origin);
                ert.CurrentValue = revision;
                return(ert);
            }

            return(null);
        }
コード例 #2
0
ファイル: VersionSelector.cs プロジェクト: windygu/AnkhSVN
        private void typeCombo_SelectedValueChanged(object sender, EventArgs e)
        {
            AnkhRevisionType rev = typeCombo.SelectedItem as AnkhRevisionType;

            if (rev != null)
            {
                SetRevision(rev);
            }

            OnChanged(EventArgs.Empty);
        }
コード例 #3
0
ファイル: VersionSelector.cs プロジェクト: windygu/AnkhSVN
        void SetRevision(AnkhRevisionType rev)
        {
            if (rev == null && _currentRevType == null)
            {
                return;
            }
            else if (rev != null && _currentRevType != null && rev.Equals(_currentRevType))
            {
                return;
            }

            if (_revTypes == null)
            {
                _revTypes = new List <AnkhRevisionType>();
            }

            if (_currentRevType != null && !_revTypes.Contains(_currentRevType))
            {
                _revTypes.Add(_currentRevType);
            }

            if (rev != null && !_revTypes.Contains(rev))
            {
                _revTypes.Add(rev);
            }

            _currentRevType = rev;

            EnsureList();

            foreach (Control c in versionTypePanel.Controls)
            {
                c.Enabled = c.Visible = false;
            }



            if (rev.HasUI)
            {
                if (rev.CurrentControl == null)
                {
                    rev.InstantiateUIIn(versionTypePanel, EventArgs.Empty);
                }

                rev.CurrentControl.Visible = rev.CurrentControl.Enabled = true;
            }

            typeCombo.SelectedItem = _currentRevType;
        }
コード例 #4
0
        public AnkhRevisionType Resolve(SvnOrigin origin, AnkhRevisionType revision)
        {
            if (revision == null)
            {
                throw new ArgumentNullException("revision");
            }

            foreach (IAnkhRevisionProvider p in _providers)
            {
                AnkhRevisionType r = p.Resolve(origin, revision);

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

            return(Resolve(origin, revision.CurrentValue));
        }
コード例 #5
0
 public AnkhRevisionType Resolve(SvnOrigin origin, AnkhRevisionType revision)
 {
     return Resolve(origin, revision.CurrentValue);
 }
コード例 #6
0
        public AnkhRevisionType Resolve(SvnOrigin origin, AnkhRevisionType revision)
        {
            if (revision == null)
                throw new ArgumentNullException("revision");

            foreach (IAnkhRevisionProvider p in _providers)
            {
                AnkhRevisionType r = p.Resolve(origin, revision);

                if (r != null)
                    return r;
            }

            return Resolve(origin, revision.CurrentValue);
        }
コード例 #7
0
ファイル: VersionSelector.cs プロジェクト: windygu/AnkhSVN
        private void EnsureList()
        {
            if (RevisionResolver == null || SvnOrigin == null)
            {
                return;
            }

            foreach (AnkhRevisionType ri in new ArrayList(typeCombo.Items))
            {
                if (!ri.IsValidOn(SvnOrigin))
                {
                    if (ri == _currentRevType)
                    {
                        _newValue       = ri.CurrentValue;
                        _currentRevType = null;
                    }
                    typeCombo.Items.Remove(ri);
                }
            }

            if (_revTypes != null)
            {
                foreach (AnkhRevisionType rt in _revTypes)
                {
                    if (rt.IsValidOn(SvnOrigin) && !typeCombo.Items.Contains(rt))
                    {
                        typeCombo.Items.Add(rt);
                    }
                }
            }
            else
            {
                _revTypes = new List <AnkhRevisionType>();
            }

            foreach (AnkhRevisionType rt in RevisionResolver.GetRevisionTypes(SvnOrigin))
            {
                if (_revTypes.Contains(rt))
                {
                    continue;
                }

                _revTypes.Add(rt);
                typeCombo.Items.Add(rt);
            }

            if (_currentRevType == null && _newValue != null && _newValue != SvnRevision.None)
            {
                AnkhRevisionType rt = RevisionResolver.Resolve(SvnOrigin, _newValue);

                if (rt != null && !rt.IsValidOn(SvnOrigin))
                {
                    _newValue = SvnOrigin.Target.Revision;
                    if (_newValue == null || _newValue == SvnRevision.None)
                    {
                        _newValue = (SvnOrigin.Target is SvnUriTarget) ? SvnRevision.Head : SvnRevision.Base;
                    }

                    rt = RevisionResolver.Resolve(SvnOrigin, _newValue);
                }

                SetRevision(rt);
            }

            if (_currentRevType != typeCombo.SelectedItem)
            {
                typeCombo.SelectedItem = _currentRevType;
            }
        }
コード例 #8
0
 public AnkhRevisionType Resolve(SvnOrigin origin, AnkhRevisionType revision)
 {
     return(Resolve(origin, revision.CurrentValue));
 }
コード例 #9
0
ファイル: VersionSelector.cs プロジェクト: necora/ank_git
        void SetRevision(AnkhRevisionType rev)
        {
            if (rev == null && _currentRevType == null)
                return;
            else if (rev != null && _currentRevType != null && rev.Equals(_currentRevType))
                return;

            if (_revTypes == null)
                _revTypes = new List<AnkhRevisionType>();

            if (_currentRevType != null && !_revTypes.Contains(_currentRevType))
                _revTypes.Add(_currentRevType);

            if (rev != null && !_revTypes.Contains(rev))
                _revTypes.Add(rev);

            _currentRevType = rev;

            EnsureList();

            foreach (Control c in versionTypePanel.Controls)
            {
                c.Enabled = c.Visible = false;
            }

            if (rev.HasUI)
            {
                if (rev.CurrentControl == null)
                    rev.InstantiateUIIn(versionTypePanel, EventArgs.Empty);

                rev.CurrentControl.Visible = rev.CurrentControl.Enabled = true;
            }

            typeCombo.SelectedItem = _currentRevType;
        }
コード例 #10
0
ファイル: VersionSelector.cs プロジェクト: necora/ank_git
        private void EnsureList()
        {
            if (RevisionResolver == null || SvnOrigin == null)
                return;

            foreach (AnkhRevisionType ri in new ArrayList(typeCombo.Items))
            {
                if (!ri.IsValidOn(SvnOrigin))
                {
                    if (ri == _currentRevType)
                    {
                        _newValue = ri.CurrentValue;
                        _currentRevType = null;
                    }
                    typeCombo.Items.Remove(ri);
                }
            }

            if (_revTypes != null)
                foreach (AnkhRevisionType rt in _revTypes)
                {
                    if (rt.IsValidOn(SvnOrigin) && !typeCombo.Items.Contains(rt))
                        typeCombo.Items.Add(rt);
                }
            else
                _revTypes = new List<AnkhRevisionType>();

            foreach (AnkhRevisionType rt in RevisionResolver.GetRevisionTypes(SvnOrigin))
            {
                if (_revTypes.Contains(rt))
                    continue;

                _revTypes.Add(rt);
                typeCombo.Items.Add(rt);
            }

            if (_currentRevType == null && _newValue != null && _newValue != SvnRevision.None)
            {
                AnkhRevisionType rt = RevisionResolver.Resolve(SvnOrigin, _newValue);

                if (rt != null && !rt.IsValidOn(SvnOrigin))
                {
                    _newValue = SvnOrigin.Target.Revision;
                    if (_newValue == null || _newValue == SvnRevision.None)
                        _newValue = (SvnOrigin.Target is SvnUriTarget) ? SvnRevision.Head : SvnRevision.Base;

                    rt = RevisionResolver.Resolve(SvnOrigin, _newValue);
                }

                SetRevision(rt);
            }

            if (_currentRevType != typeCombo.SelectedItem)
                typeCombo.SelectedItem = _currentRevType;
        }