diff --git a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
index ae1bc08557..5f81cb44f8 100644
--- a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
+++ b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
@@ -300,6 +300,7 @@
@@ -332,6 +333,7 @@
Loaded="TreeMaps_Loaded"
ItemsSource="{Binding Nodes}"
Background="LightGray"
+ TreeMapMode="Squarified"
ItemTemplate="{StaticResource TreeMapDataTemplate}"
ValuePropertyName="{Binding TreeValueProperty}">
diff --git a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs
index 3916e250b4..90812944a3 100644
--- a/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs
+++ b/src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs
@@ -138,8 +138,11 @@ namespace ICSharpCode.CodeQualityAnalysis
definitionTree.SelectedItem = item;
var graph = item.INode.Dependency.BuildDependencyGraph();
graphLayout.ChangeGraph(graph);
- var d = this.DataContext as MainWindowViewModel;
- d.MetrixTabEnable = true;
+ var viewModel = this.DataContext as MainWindowViewModel;
+ //testhalber
+ viewModel.SelectedNode = item.INode;
+
+// viewModel.MetrixTabEnable = true;
}
}
@@ -305,7 +308,7 @@ namespace ICSharpCode.CodeQualityAnalysis
if (icg!=null&&icg.Status==GeneratorStatus.ContainersGenerated)
{
//Do what you want
- Mouse.OverrideCursor = Cursors.Wait;
+ // Mouse.OverrideCursor = Cursors.Wait;
icg.StatusChanged -= ItemContainerGenerator_StatusChanged;
}
}
diff --git a/src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs b/src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
index c06dff758c..4e67ef27d9 100644
--- a/src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
+++ b/src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
@@ -7,6 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
+using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
@@ -57,7 +58,7 @@ namespace ICSharpCode.CodeQualityAnalysis
this.TabMetrics = "Metrics";
#endregion
- MetrixTabEnable = false;
+// MetrixTabEnable = false;
ActivateMetrics = new RelayCommand(ActivateMetricsExecute);
ShowTreeMap = new RelayCommand(ShowTreemapExecute,CanActivateTreemap);
@@ -113,12 +114,10 @@ namespace ICSharpCode.CodeQualityAnalysis
}
}
- bool metrixTabEnable;
- public bool MetrixTabEnable {
- get { return metrixTabEnable; }
- set { metrixTabEnable = value;
- base.RaisePropertyChanged(() => MetrixTabEnable);}
+ public bool MetrixTabEnable
+ {
+ get {return SelectedNode != null;}
}
string typeInfo;
@@ -140,6 +139,15 @@ namespace ICSharpCode.CodeQualityAnalysis
}
+ private INode selectedNode;
+
+ public INode SelectedNode {
+ get { return selectedNode; }
+ set { selectedNode = value;
+ base.RaisePropertyChanged(() =>this.SelectedNode);
+ base.RaisePropertyChanged(() =>this.MetrixTabEnable);}
+ }
+
private ObservableCollection nodes;
public ObservableCollection Nodes {
@@ -157,12 +165,24 @@ namespace ICSharpCode.CodeQualityAnalysis
base.RaisePropertyChanged(() =>this.TreeValueProperty);}
}
- // MetricsLevel Combo
+
+ #region MetricsLevel Combo
public MetricsLevel MetricsLevel {
get {return MetricsLevel;}
}
+ private MetricsLevel selectedMetricsLevel;
+
+ public MetricsLevel SelectedMetricsLevel {
+ get { return selectedMetricsLevel; }
+ set { selectedMetricsLevel = value;
+ base.RaisePropertyChanged(() =>this.selectedMetricsLevel);}
+ }
+
+
+ #endregion
+
#region ActivateMetrics
public ICommand ActivateMetrics {get;private set;}
@@ -171,13 +191,31 @@ namespace ICSharpCode.CodeQualityAnalysis
void ActivateMetricsExecute ()
{
- metricsIsActive = true;
+
+ Console.WriteLine(SelectedMetricsLevel.ToString());
+ switch (SelectedMetricsLevel) {
+ case MetricsLevel.Assembly:
+ Console.WriteLine("assembly");
+ break;
+ case MetricsLevel.Namespace:
+ Console.WriteLine("namespace");
+ break;
+ case MetricsLevel.Type:
+ Console.WriteLine("type");
+ break;
+ case MetricsLevel.Method:
+ metricsIsActive = true;
+ Console.WriteLine("method");
+ break;
+ default:
+ throw new Exception("Invalid value for MetricsLevel");
+ }
}
- #endregion
+ #endregion
- // Metrics Combo
+ #region MetricsLevel Combo
public Metrics Metrics
{
@@ -193,6 +231,9 @@ namespace ICSharpCode.CodeQualityAnalysis
}
}
+
+ #endregion
+
#region ShowTreeMap Treemap
public ICommand ShowTreeMap {get;private set;}
@@ -203,16 +244,14 @@ namespace ICSharpCode.CodeQualityAnalysis
return metricsIsActive;
}
- void ShowTreemapExecute()
+
+ void ShowTreemapExecute ()
{
- var r = from ns in MainModule.Namespaces
- from type in ns.Types
- from method in type.Methods
- select method;
-
- Nodes = new ObservableCollection(r);
-
+ Nodes = PrepareNodes();
+
+ var aa = SelectedNode as INode;
+
switch (selectedMetrics)
{
case Metrics.ILInstructions:
@@ -230,6 +269,39 @@ namespace ICSharpCode.CodeQualityAnalysis
}
}
+
+ ObservableCollection PrepareNodes()
+ {
+ IEnumerable list = new List();
+ switch (selectedMetricsLevel) {
+ case MetricsLevel.Assembly:
+ list = from ns in MainModule.Namespaces
+ select ns;
+ break;
+
+ case MetricsLevel.Namespace:
+ list = from ns in MainModule.Namespaces
+ select ns;
+ break;
+ case MetricsLevel.Type:
+ list = from ns in MainModule.Namespaces
+ from type in ns.Types
+ select ns;
+ break;
+ case MetricsLevel.Method:
+ list = from ns in MainModule.Namespaces
+ from type in ns.Types
+ from method in type.Methods
+ select method;
+ break;
+ default:
+ throw new Exception("Invalid value for MetricsLevel");
+ }
+ var nodes = new ObservableCollection(list.Distinct());
+ Console.WriteLine("listcount for {0} = {1}",selectedMetricsLevel.ToString(),nodes.Count);
+ return nodes;
+ }
+
#endregion
}
}
diff --git a/src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs b/src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs
index d30048ed54..b5b0ae009f 100644
--- a/src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs
+++ b/src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs
@@ -394,6 +394,7 @@ namespace ICSharpCode.CodeQualityAnalysis
foreach (MethodDefinition methodDefinition in methods)
{
+ Console.WriteLine(methodDefinition.Name);
var method = (from m in type.Methods
where m.Name == FormatMethodName(methodDefinition)
select m).SingleOrDefault();