~halega/+junk/sharpdevelop

« back to all changes in this revision

Viewing changes to src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageClassTreeNode.cs

  • Committer: sk
  • Date: 2011-09-10 05:17:57 UTC
  • Revision ID: halega@halega.com-20110910051757-qfouz1llya9m6boy
4.1.0.7915 Release Candidate 1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
 
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
3
 
 
4
using System;
 
5
using System.Collections.Generic;
 
6
using ICSharpCode.SharpDevelop;
 
7
 
 
8
namespace ICSharpCode.CodeCoverage
 
9
{
 
10
        public class CodeCoverageClassTreeNode : CodeCoverageMethodsTreeNode
 
11
        {
 
12
                public CodeCoverageClassTreeNode(string name, List<CodeCoverageMethod> methods)
 
13
                        : base(name, methods, CodeCoverageImageListIndex.Class)
 
14
                {
 
15
                }
 
16
 
 
17
                public override void ActivateItem()
 
18
                {
 
19
                        foreach (CodeCoverageTreeNode node in Nodes) {
 
20
                                CodeCoverageMethodTreeNode methodNode = node as CodeCoverageMethodTreeNode;
 
21
                                CodeCoverageMethodsTreeNode methodsNode = node as CodeCoverageMethodsTreeNode;
 
22
                                
 
23
                                bool openedFile = false;
 
24
                                if (methodNode != null) {
 
25
                                        openedFile = OpenFile(methodNode.Method.SequencePoints);
 
26
                                } else if ((methodsNode != null) && (methodsNode.Methods.Count > 0)) {
 
27
                                        openedFile = OpenFile(methodsNode.Methods[0].SequencePoints);
 
28
                                }
 
29
                                
 
30
                                if (openedFile) {
 
31
                                        break;
 
32
                                }
 
33
                        }
 
34
                }
 
35
                
 
36
                bool OpenFile(List<CodeCoverageSequencePoint> sequencePoints)
 
37
                {
 
38
                        foreach (CodeCoverageSequencePoint point in sequencePoints) {
 
39
                                if (point.HasDocument()) {
 
40
                                        OpenFile(point.Document);
 
41
                                        return true;
 
42
                                }
 
43
                        }
 
44
                        return false;
 
45
                }
 
46
                
 
47
                protected override void Initialize()
 
48
                {
 
49
                        Nodes.Clear();
 
50
 
 
51
                        // Add methods.
 
52
                        CodeCoveragePropertyCollection properties = new CodeCoveragePropertyCollection();
 
53
                        foreach (CodeCoverageMethod method in Methods) {
 
54
                                if (method.IsProperty) {
 
55
                                        properties.Add(method);
 
56
                                } else {
 
57
                                        CodeCoverageMethodTreeNode node = new CodeCoverageMethodTreeNode(method);
 
58
                                        node.AddTo(this);
 
59
                                }
 
60
                        }
 
61
                        
 
62
                        // Add properties.s
 
63
                        foreach (CodeCoverageProperty property in properties) {
 
64
                                CodeCoveragePropertyTreeNode node = new CodeCoveragePropertyTreeNode(property);
 
65
                                node.AddTo(this);
 
66
                        }
 
67
                        
 
68
                        // Sort nodes.
 
69
                        SortChildNodes();
 
70
                }
 
71
        }
 
72
}