Example #1
0
        private void ConnectDependant(string name, TargetTreeItem parent)
        {
            var item = GetItem(name) as TargetTreeItem;

            if (item == null)
            {
                item = new TargetTreeItem(name, rootTreeItem);
                parent.AddDependsOnTarget(item);
                var target = analyzer.GetTarget(name);
                if (target != null)
                {
                    foreach (var dep in Helper.SplitValue(target.DependsOnTargets))
                    {
                        if (dep.StartsWith("$("))
                        {
                            var propName = dep.Trim('$', '(', ')');
                            var deps     = Helper.SplitValue(analyzer.GetPropertyValue(propName));
                            foreach (var val in deps)
                            {
                                ConnectDependant(val, item);
                            }
                        }
                        else
                        {
                            ConnectDependant(dep, item);
                        }
                    }
                }
            }
        }
Example #2
0
 public void SetDefaultTargets(string[] targets)
 {
     if (rootTreeItem != null)
     {
         throw new InvalidOperationException("Can only set targets once.");
     }
     rootTreeItem = TargetTreeItem.Root;
     foreach (var name in targets)
     {
         ConnectDependant(name, rootTreeItem);
     }
     // TODO: Search for Before and After targets.
 }
Example #3
0
 public void AddDependsOnTarget(TargetTreeItem dep)
 {
     dependsOnTargets.Add(dep);
 }
Example #4
0
 public void AddAfterTarget(TargetTreeItem after)
 {
     afterTargets.Add(after);
 }
Example #5
0
 public void AddBeforeTarget(TargetTreeItem before)
 {
     beforeTargets.Add(before);
 }
Example #6
0
 public TargetTreeItem(string targetName, TargetTreeItem parent)
 {
     TargetName = targetName;
     Parent     = parent;
 }