diff --git a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj index ddd9e0ec3c..1c15a0ac8f 100644 --- a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj +++ b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj @@ -113,6 +113,7 @@ Properties\GlobalAssemblyInfo.cs + @@ -212,6 +213,10 @@ {D68133BD-1E63-496E-9EDE-4FBDBF77B486} Mono.Cecil + + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1} + ICSharpCode.TreeView + {2748AD25-9C63-4E12-877B-4DCE96FBED54} ICSharpCode.SharpDevelop diff --git a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.sln b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.sln index db89b0e1c7..c67ec6b861 100644 --- a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.sln +++ b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.sln @@ -18,6 +18,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Do EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "..\..\..\Libraries\Mono.Cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "..\..\..\Libraries\SharpTreeView\ICSharpCode.TreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -80,6 +82,14 @@ Global {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.ActiveCfg = net_2_0_Debug|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.Build.0 = net_2_0_Debug|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.ActiveCfg = net_2_0_Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.Build.0 = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.Build.0 = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.Build.0 = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/DependecyTreeNode.cs b/src/AddIns/Analysis/CodeQuality/Src/Controls/DependecyTreeNode.cs new file mode 100644 index 0000000000..2811090c3f --- /dev/null +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/DependecyTreeNode.cs @@ -0,0 +1,34 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 02.09.2011 + * Time: 15:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.TreeView; + +namespace ICSharpCode.CodeQualityAnalysis.Controls +{ + /// + /// Description of DependecyTreeNode. + /// + public class DependecyTreeNode:SharpTreeNode + { + private INode node; + public DependecyTreeNode(INode node) + { + this.node = node; + } + + public override object Text + { + get { return node.Name; } + } + + public override object ToolTip { + get { return node.Name; } + } + } +} diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml index b6039b74e3..618ff83ddd 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml @@ -1,38 +1,73 @@ - + + - - - + + + - - + + + - - - - - + + + + + + + + + + - - - - - + - - + + \ No newline at end of file diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs index 24b2fdaf62..5c9e7a5bd3 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs @@ -12,6 +12,7 @@ using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Forms; +using System.Linq; using ICSharpCode.CodeQualityAnalysis.Utility; namespace ICSharpCode.CodeQualityAnalysis.Controls @@ -39,52 +40,49 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls InitializeComponent(); } - public void DrawMatrix() + + public void DrawTree(Module module) { - // matrixControl.DrawMatrix(); + FillTree (leftTree,module); + FillTree (topTree,module); } - public void DrawTree(Module module) + + private void FillTree (ICSharpCode.TreeView.SharpTreeView tree,Module module) { + var root = CreateTreeItem(module); + tree.Root = root; + foreach (var ns in module.Namespaces) { - var nsType = new TreeViewItem - { - Header = ns.Name - }; - - leftTree.Items.Add(nsType); - + var namespaceNode = CreateTreeItem(ns); + tree.Root.Children.Add(namespaceNode); + foreach (var type in ns.Types) { - var itemType = new TreeViewItem - { - Header = type.Name - }; - - nsType.Items.Add(itemType); + var typeNode = CreateTreeItem(type); + namespaceNode.Children.Add(typeNode); foreach (var method in type.Methods) { - var itemMethod = new TreeViewItem - { - Header = method.Name - }; - - itemType.Items.Add(itemMethod); + var methodName = CreateTreeItem(method); + namespaceNode.Children.Add(methodName); } foreach (var field in type.Fields) { - var itemField = new TreeViewItem - { - Header = field.Name - }; - - itemType.Items.Add(itemField); + var fieldNode = CreateTreeItem(field); + namespaceNode.Children.Add(fieldNode); } } } } + + + private DependecyTreeNode CreateTreeItem (INode node) + { + DependecyTreeNode dtn = new DependecyTreeNode(node); + return dtn; + } } } diff --git a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs index 34bcac635d..b481a9de52 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs @@ -106,7 +106,6 @@ namespace ICSharpCode.CodeQualityAnalysis } matrixControl.Matrix = matrix; - matrixControl.DrawMatrix(); matrixControl.DrawTree(metricsReader.MainModule); }