示例#1
0
 private void TagAllNodesForDeletion(IBuildTreeNode tree, List <IBuildTreeNode> taggedNodes)
 {
     foreach (var node in tree.Children)
     {
         taggedNodes.Add(node);
         TagAllNodesForDeletion(node, taggedNodes);
     }
 }
示例#2
0
        protected BuildTreeNodeViewModel(IBuildTreeNode nodeSource)
        {
            NodeSource = nodeSource;
            Children   = new RemoveTrackingObservableCollection <BuildTreeNodeViewModel>(TimeSpan.FromSeconds(0.8));
            Children.CollectionChanged += ChildrenOnCollectionChanged;
            SetChildrenSorting(_currentSortingDefinition);

            CurrentTreeLevelDepth = nodeSource.Depth;
        }
示例#3
0
        public override void UpdateWithValuesFrom(IBuildTreeNode nodeToInsert)
        {
            if (!(nodeToInsert is IBuildNode otherBuild))
            {
                return;
            }

            UpdateProperties(otherBuild.Build);
        }
示例#4
0
        protected BuildTreeNodeViewModel(IBuildTreeNode nodeSource)
        {
            NodeSource = nodeSource;
            Children   = new RemoveTrackingObservableCollection <BuildTreeNodeViewModel>(TimeSpan.FromSeconds(0.8));
            Children.CollectionChanged += ChildrenOnCollectionChanged;
            SetChildrenSorting(_currentSortingDefinition);

            RemoveOneChildCommand = new DelegateCommand(RemoveOneChild);
            AddAndRemoveCommand   = new DelegateCommand(o => { RemoveOneChild(o); });
            HighlightCommand      = new DelegateCommand(Highlight);
        }
示例#5
0
        public override void UpdateWithValuesFrom(IBuildTreeNode nodeToInsert)
        {
            var otherBuild = (nodeToInsert as IBuildNode)?.Build;

            if (otherBuild == null)
            {
                return;
            }

            UpdateProperties(otherBuild);
        }
 private void RemoveTaggedNodes(IBuildTreeNode tree, List <IBuildTreeNode> taggedNodes)
 {
     foreach (var node in tree.Children.ToList())
     {
         if (taggedNodes.Any(x => ReferenceEquals(x, node)))
         {
             tree.RemoveChild(node);
         }
         else
         {
             RemoveTaggedNodes(node, taggedNodes);
         }
     }
 }
示例#7
0
 private void RemoveTaggedNodes(IBuildTreeNode tree, List <IBuildTreeNode> taggedNodes)
 {
     foreach (var node in tree.Children.ToList())
     {
         if (taggedNodes.Contains(node))
         {
             tree.RemoveChild(node);
         }
         else
         {
             RemoveTaggedNodes(node, taggedNodes);
         }
     }
 }
示例#8
0
        private void Merge(IBuildTreeNode tree, IBuildTreeNode path)
        {
            var target = tree.Children.FirstOrDefault(c => c == path);

            if (target == null)
            {
                tree.AddChild(path);
            }
            else
            {
                foreach (var child in path.Children)
                {
                    Merge(target, child);
                }
            }
        }
        private void CutTree(IBuildTreeNode tree)
        {
            var buildChildrenToRemove = tree.Children.OfType <IBuildNode>()
                                        .OrderByDescending(x => x.Build.LastChangedTime ?? DateTime.MinValue)
                                        .Skip(_configuration.BuildsToShow)
                                        .ToList();

            foreach (var node in buildChildrenToRemove)
            {
                tree.RemoveChild(node);
            }

            foreach (var child in tree.Children)
            {
                CutTree(child);
            }
        }
        private static BuildTreeNodeViewModel AsViewModel(IBuildTreeNode node, GroupDefinition groupDefinition)
        {
            switch (groupDefinition)
            {
            case GroupDefinition.Branch:
                return(new BranchGroupNodeViewModel((IBranchGroupNode)node));

            case GroupDefinition.BuildDefinition:
                return(new DefinitionGroupNodeViewModel((IDefinitionGroupNode)node));

            case GroupDefinition.Source:
                return(new SourceGroupNodeViewModel((ISourceGroupNode)node));

            case GroupDefinition.Status:
                return(new StatusGroupNodeViewModel(node));

            default:
                return(new BuildNodeViewModel((IBuildNode)node)
                {
                    IsLargeSize = false
                });
            }
        }
示例#11
0
        private void Merge(IBuildTreeNode tree, IBuildTreeNode nodeToInsert, List <IBuildTreeNode> taggedNodes)
        {
            var insertTarget = tree;

            var subTree = insertTarget.Children.FirstOrDefault(node => node.Equals(nodeToInsert));

            if (subTree != null)
            {
                subTree.UpdateWithValuesFrom(nodeToInsert);

                if (nodeToInsert.Children.Any())
                {
                    Merge(subTree, nodeToInsert.Children.First(), taggedNodes);
                }

                taggedNodes.Remove(subTree);
            }
            else
            {
                tree.AddChild(nodeToInsert);
                taggedNodes.Remove(tree);
            }
        }
示例#12
0
 public void RemoveChild(IBuildTreeNode node)
 {
     _childList.RemoveAll(x => ReferenceEquals(x, node));
 }
示例#13
0
 public void AddChild(IBuildTreeNode node)
 {
     _childList.Add(node);
 }
 public StatusGroupNodeViewModel(IBuildTreeNode node) : base(node)
 {
 }
示例#15
0
 public abstract bool Equals(IBuildTreeNode other);
 public override bool Equals(IBuildTreeNode other)
 {
     return(Definition.Id.Equals((other as DefinitionGroupNode)?.Definition?.Id));
 }
示例#17
0
 public override bool Equals(IBuildTreeNode other) => base.Equals(other) && Definition.Id.Equals((other as DefinitionGroupNode)?.Definition.Id, StringComparison.InvariantCulture);
 public override bool Equals(IBuildTreeNode other)
 {
     return(base.Equals(other) && BranchName.Equals((other as BranchGroupNode)?.BranchName, StringComparison.InvariantCulture));
 }
示例#19
0
 public virtual void UpdateWithValuesFrom(IBuildTreeNode nodeToInsert)
 {
 }
示例#20
0
 public BuildTreeParser(IBuildTreeNode tree)
 {
     _tree = tree;
 }
示例#21
0
 public override bool Equals(IBuildTreeNode other)
 {
     return(BranchName.Equals((other as BranchGroupNode)?.BranchName));
 }
示例#22
0
 public override bool Equals(IBuildTreeNode other) => base.Equals(other) && Build.Id.Equals((other as BuildNode)?.Build.Id, StringComparison.InvariantCulture);
 public override void UpdateWithValuesFrom(IBuildTreeNode nodeToInsert)
 {
     BranchName = (nodeToInsert as BranchGroupNode)?.BranchName ?? string.Empty;
 }
示例#24
0
 public void RemoveChild(IBuildTreeNode node)
 {
     _childList.Remove(node);
 }
 public BuildTreeViewModel(IBuildTreeNode tree)
     : base(tree)
 {
     _sortingDefinition = new BuildTreeSortingDefinition();
 }
 public override bool Equals(IBuildTreeNode other)
 {
     return(SourceName.Equals((other as SourceGroupNode)?.SourceName));
 }
示例#27
0
 public override bool Equals(IBuildTreeNode other)
 {
     return(Build.Id.Equals((other as BuildNode)?.Build?.Id));
 }
 public override bool Equals(IBuildTreeNode other)
 {
     throw new NotImplementedException();
 }