Browse Source

Activation of MetricCombo, re factor creation of Nodes(INodes)List

pull/22/head
PeterForstmeier 14 years ago
parent
commit
fc7b29f5ef
  1. 2
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
  2. 9
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs
  3. 108
      src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
  4. 1
      src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs

2
src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml

@ -300,6 +300,7 @@
<util:ComboBoxWithCommand Width="200" <util:ComboBoxWithCommand Width="200"
ItemsSource="{Binding Source={StaticResource MetricsLevel}}" ItemsSource="{Binding Source={StaticResource MetricsLevel}}"
SelectedItem="{Binding SelectedMetricsLevel}"
Command="{Binding ActivateMetrics}"> Command="{Binding ActivateMetrics}">
</util:ComboBoxWithCommand> </util:ComboBoxWithCommand>
@ -332,6 +333,7 @@
Loaded="TreeMaps_Loaded" Loaded="TreeMaps_Loaded"
ItemsSource="{Binding Nodes}" ItemsSource="{Binding Nodes}"
Background="LightGray" Background="LightGray"
TreeMapMode="Squarified"
ItemTemplate="{StaticResource TreeMapDataTemplate}" ItemTemplate="{StaticResource TreeMapDataTemplate}"
ValuePropertyName="{Binding TreeValueProperty}"> ValuePropertyName="{Binding TreeValueProperty}">
</t:TreeMaps> </t:TreeMaps>

9
src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml.cs

@ -138,8 +138,11 @@ namespace ICSharpCode.CodeQualityAnalysis
definitionTree.SelectedItem = item; definitionTree.SelectedItem = item;
var graph = item.INode.Dependency.BuildDependencyGraph(); var graph = item.INode.Dependency.BuildDependencyGraph();
graphLayout.ChangeGraph(graph); graphLayout.ChangeGraph(graph);
var d = this.DataContext as MainWindowViewModel; var viewModel = this.DataContext as MainWindowViewModel;
d.MetrixTabEnable = true; //testhalber
viewModel.SelectedNode = item.INode;
// viewModel.MetrixTabEnable = true;
} }
} }
@ -305,7 +308,7 @@ namespace ICSharpCode.CodeQualityAnalysis
if (icg!=null&&icg.Status==GeneratorStatus.ContainersGenerated) if (icg!=null&&icg.Status==GeneratorStatus.ContainersGenerated)
{ {
//Do what you want //Do what you want
Mouse.OverrideCursor = Cursors.Wait; // Mouse.OverrideCursor = Cursors.Wait;
icg.StatusChanged -= ItemContainerGenerator_StatusChanged; icg.StatusChanged -= ItemContainerGenerator_StatusChanged;
} }
} }

108
src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs

@ -7,6 +7,7 @@
* To change this template use Tools | Options | Coding | Edit Standard Headers. * To change this template use Tools | Options | Coding | Edit Standard Headers.
*/ */
using System; using System;
using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.Linq; using System.Linq;
@ -57,7 +58,7 @@ namespace ICSharpCode.CodeQualityAnalysis
this.TabMetrics = "Metrics"; this.TabMetrics = "Metrics";
#endregion #endregion
MetrixTabEnable = false; // MetrixTabEnable = false;
ActivateMetrics = new RelayCommand(ActivateMetricsExecute); ActivateMetrics = new RelayCommand(ActivateMetricsExecute);
ShowTreeMap = new RelayCommand(ShowTreemapExecute,CanActivateTreemap); ShowTreeMap = new RelayCommand(ShowTreemapExecute,CanActivateTreemap);
@ -113,12 +114,10 @@ namespace ICSharpCode.CodeQualityAnalysis
} }
} }
bool metrixTabEnable;
public bool MetrixTabEnable { public bool MetrixTabEnable
get { return metrixTabEnable; } {
set { metrixTabEnable = value; get {return SelectedNode != null;}
base.RaisePropertyChanged(() => MetrixTabEnable);}
} }
string typeInfo; 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<INode> nodes; private ObservableCollection<INode> nodes;
public ObservableCollection<INode> Nodes { public ObservableCollection<INode> Nodes {
@ -157,12 +165,24 @@ namespace ICSharpCode.CodeQualityAnalysis
base.RaisePropertyChanged(() =>this.TreeValueProperty);} base.RaisePropertyChanged(() =>this.TreeValueProperty);}
} }
// MetricsLevel Combo
#region MetricsLevel Combo
public MetricsLevel MetricsLevel { public MetricsLevel MetricsLevel {
get {return MetricsLevel;} get {return MetricsLevel;}
} }
private MetricsLevel selectedMetricsLevel;
public MetricsLevel SelectedMetricsLevel {
get { return selectedMetricsLevel; }
set { selectedMetricsLevel = value;
base.RaisePropertyChanged(() =>this.selectedMetricsLevel);}
}
#endregion
#region ActivateMetrics #region ActivateMetrics
public ICommand ActivateMetrics {get;private set;} public ICommand ActivateMetrics {get;private set;}
@ -171,13 +191,31 @@ namespace ICSharpCode.CodeQualityAnalysis
void ActivateMetricsExecute () 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 public Metrics Metrics
{ {
@ -193,6 +231,9 @@ namespace ICSharpCode.CodeQualityAnalysis
} }
} }
#endregion
#region ShowTreeMap Treemap #region ShowTreeMap Treemap
public ICommand ShowTreeMap {get;private set;} public ICommand ShowTreeMap {get;private set;}
@ -203,16 +244,14 @@ namespace ICSharpCode.CodeQualityAnalysis
return metricsIsActive; return metricsIsActive;
} }
void ShowTreemapExecute()
void ShowTreemapExecute ()
{ {
var r = from ns in MainModule.Namespaces Nodes = PrepareNodes();
from type in ns.Types
from method in type.Methods var aa = SelectedNode as INode;
select method;
Nodes = new ObservableCollection<INode>(r);
switch (selectedMetrics) switch (selectedMetrics)
{ {
case Metrics.ILInstructions: case Metrics.ILInstructions:
@ -230,6 +269,39 @@ namespace ICSharpCode.CodeQualityAnalysis
} }
} }
ObservableCollection<INode> PrepareNodes()
{
IEnumerable<INode> list = new List<INode>();
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<INode>(list.Distinct());
Console.WriteLine("listcount for {0} = {1}",selectedMetricsLevel.ToString(),nodes.Count);
return nodes;
}
#endregion #endregion
} }
} }

1
src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs

@ -394,6 +394,7 @@ namespace ICSharpCode.CodeQualityAnalysis
foreach (MethodDefinition methodDefinition in methods) foreach (MethodDefinition methodDefinition in methods)
{ {
Console.WriteLine(methodDefinition.Name);
var method = (from m in type.Methods var method = (from m in type.Methods
where m.Name == FormatMethodName(methodDefinition) where m.Name == FormatMethodName(methodDefinition)
select m).SingleOrDefault(); select m).SingleOrDefault();

Loading…
Cancel
Save