From 1c3754a2f2fec2bcc2e07b1eea227027710145ff Mon Sep 17 00:00:00 2001 From: PeterForstmeier Date: Fri, 2 Sep 2011 14:44:19 +0200 Subject: [PATCH 1/2] TreeMatrixControl, add Treeview at Top --- .../Src/Controls/TreeMatrixControl.xaml | 73 ++++++++++++++----- .../Src/Controls/TreeMatrixControl.xaml.cs | 54 +++++++------- .../CodeQuality/Src/MainWindow.xaml.cs | 1 - 3 files changed, 82 insertions(+), 46 deletions(-) diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml index b6039b74e3..39922ec81f 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 0227f2a22f..04ee9ef1ff 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; namespace ICSharpCode.CodeQualityAnalysis.Controls { @@ -38,52 +39,53 @@ 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 (System.Windows.Controls.TreeView tree,Module module) { foreach (var ns in module.Namespaces) { - var nsType = new TreeViewItem - { - Header = ns.Name - }; + var leftType = CreateTreeItem(ns.Name); - leftTree.Items.Add(nsType); + tree.Items.Add(leftType); foreach (var type in ns.Types) { - var itemType = new TreeViewItem - { - Header = type.Name - }; - - nsType.Items.Add(itemType); + var lType = CreateTreeItem(type.Name); + + leftType.Items.Add(lType); foreach (var method in type.Methods) { - var itemMethod = new TreeViewItem - { - Header = method.Name - }; - - itemType.Items.Add(itemMethod); + var leftMethod = CreateTreeItem(method.Name); + leftType.Items.Add(leftMethod); } foreach (var field in type.Fields) { - var itemField = new TreeViewItem - { - Header = field.Name - }; - - itemType.Items.Add(itemField); + var leftField = CreateTreeItem(field.Name); + leftType.Items.Add(leftField); } } } } + + + private TreeViewItem CreateTreeItem (string ns) + { + var nsType = new TreeViewItem + { + Header = ns, + ToolTip = ns + }; +// nsType.Height = matrixControl.CellHeight; + return nsType; + } } } diff --git a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs index 11367374a8..4ed2eb4fdf 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs @@ -104,7 +104,6 @@ namespace ICSharpCode.CodeQualityAnalysis } matrixControl.Matrix = matrix; - matrixControl.DrawMatrix(); matrixControl.DrawTree(metricsReader.MainModule); } From 582a1cf7f1ef1c1e76ad8971da5d3eed50ef18ec Mon Sep 17 00:00:00 2001 From: PeterForstmeier Date: Fri, 2 Sep 2011 22:37:23 +0200 Subject: [PATCH 2/2] Use ICSharpCode.TreeView in DependencyMatrixControl --- .../CodeQuality/CodeQualityAnalysis.csproj | 5 +++ .../CodeQuality/CodeQualityAnalysis.sln | 12 +++++- .../Src/Controls/DependecyTreeNode.cs | 34 ++++++++++++++++ .../Src/Controls/TreeMatrixControl.xaml | 40 +++++++++---------- .../Src/Controls/TreeMatrixControl.xaml.cs | 38 ++++++++---------- 5 files changed, 87 insertions(+), 42 deletions(-) create mode 100644 src/AddIns/Analysis/CodeQuality/Src/Controls/DependecyTreeNode.cs diff --git a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj index b66b643ae0..1a771d0722 100644 --- a/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj +++ b/src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj @@ -113,6 +113,7 @@ Properties\GlobalAssemblyInfo.cs + @@ -210,6 +211,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 0be6b617ee..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 @@ -73,13 +75,21 @@ Global {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.Build.0 = Release|Any CPU {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|x86.ActiveCfg = Release|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.Build.0 = net_2_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.ActiveCfg = net_2_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.ActiveCfg = net_4_0_Debug|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.Build.0 = net_2_0_Debug|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.ActiveCfg = net_2_0_Debug|Any CPU {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.Build.0 = net_2_0_Debug|Any CPU {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 39922ec81f..618ff83ddd 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml @@ -1,21 +1,22 @@ - + + x:Class="ICSharpCode.CodeQualityAnalysis.Controls.TreeMatrixControl" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:Controls="clr-namespace:ICSharpCode.CodeQualityAnalysis.Controls" + xmlns:tree="http://icsharpcode.net/sharpdevelop/treeview"> + Height="70" /> + Width="70" /> - - - - + + - - + - - + + diff --git a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs index 04ee9ef1ff..9643d1614c 100644 --- a/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Src/Controls/TreeMatrixControl.xaml.cs @@ -44,48 +44,44 @@ namespace ICSharpCode.CodeQualityAnalysis.Controls { FillTree (leftTree,module); FillTree (topTree,module); - } - private void FillTree (System.Windows.Controls.TreeView tree,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 leftType = CreateTreeItem(ns.Name); - - tree.Items.Add(leftType); - + var namespaceNode = CreateTreeItem(ns); + tree.Root.Children.Add(namespaceNode); + foreach (var type in ns.Types) { - var lType = CreateTreeItem(type.Name); - - leftType.Items.Add(lType); + var typeNode = CreateTreeItem(type); + namespaceNode.Children.Add(typeNode); foreach (var method in type.Methods) { - var leftMethod = CreateTreeItem(method.Name); - leftType.Items.Add(leftMethod); + var methodName = CreateTreeItem(method); + namespaceNode.Children.Add(methodName); } foreach (var field in type.Fields) { - var leftField = CreateTreeItem(field.Name); - leftType.Items.Add(leftField); + var fieldNode = CreateTreeItem(field); + namespaceNode.Children.Add(fieldNode); } } } } - private TreeViewItem CreateTreeItem (string ns) + private DependecyTreeNode CreateTreeItem (INode node) { - var nsType = new TreeViewItem - { - Header = ns, - ToolTip = ns - }; -// nsType.Height = matrixControl.CellHeight; - return nsType; + DependecyTreeNode dtn = new DependecyTreeNode(node); + return dtn; } } }