Browse Source

Reset databinding for TreeMaps

pull/22/merge
PeterForstmeier 15 years ago
parent
commit
4591d52baa
  1. 538
      SharpDevelop.Tests.sln
  2. 4
      src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj
  3. 4
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
  4. 92
      src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
  5. 1
      src/AddIns/Analysis/CodeQuality/Src/MetricsReader.cs

538
SharpDevelop.Tests.sln

File diff suppressed because it is too large Load Diff

4
src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj

@ -126,7 +126,9 @@
<SubType>Code</SubType> <SubType>Code</SubType>
<DependentUpon>TreeMatrixControl.xaml</DependentUpon> <DependentUpon>TreeMatrixControl.xaml</DependentUpon>
</Compile> </Compile>
<Compile Include="Src\DependencyGraphCommand.cs" /> <Compile Include="Src\DependencyGraphCommand.cs">
<DependentUpon>RelationshipType.cs</DependentUpon>
</Compile>
<Compile Include="Src\DependencyTreeNode.cs" /> <Compile Include="Src\DependencyTreeNode.cs" />
<Compile Include="Src\Event.cs" /> <Compile Include="Src\Event.cs" />
<Compile Include="Src\Field.cs" /> <Compile Include="Src\Field.cs" />

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

@ -309,7 +309,9 @@
<util:ComboBoxWithCommand Width="200" Margin="4,0,0,0" <util:ComboBoxWithCommand Width="200" Margin="4,0,0,0"
ItemsSource="{Binding Source={StaticResource Metrics}}" ItemsSource="{Binding Source={StaticResource Metrics}}"
SelectedItem="{Binding SelectedMetrics}" SelectedItem="{Binding SelectedMetrics}"
Command="{Binding ShowTreeMap}"> SelectedIndex="{Binding SelectedMetricsIndex}"
Command="{Binding ShowTreeMap}"
>
<util:ComboBoxWithCommand.ItemTemplate> <util:ComboBoxWithCommand.ItemTemplate>
<DataTemplate> <DataTemplate>
<Label Content="{Binding Path=.,Mode=OneWay, <Label Content="{Binding Path=.,Mode=OneWay,

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

@ -33,6 +33,9 @@ namespace ICSharpCode.CodeQualityAnalysis
public enum Metrics public enum Metrics
{ {
[LocalizableDescription("Select a Value")]
dummy,
[LocalizableDescription("IL Instructions")] [LocalizableDescription("IL Instructions")]
ILInstructions, ILInstructions,
@ -80,7 +83,7 @@ namespace ICSharpCode.CodeQualityAnalysis
public string FileName { public string FileName {
get { return fileName; } get { return fileName; }
set { fileName = value; set { fileName = value;
base.RaisePropertyChanged(() =>FileName);} base.RaisePropertyChanged(() =>FileName);}
} }
@ -90,10 +93,10 @@ namespace ICSharpCode.CodeQualityAnalysis
get { return progressbarVisibly; } get { return progressbarVisibly; }
set { progressbarVisibly = value; set { progressbarVisibly = value;
base.RaisePropertyChanged(() =>ProgressbarVisible); base.RaisePropertyChanged(() =>ProgressbarVisible);
} }
} }
private Visibility assemblyStatsVisible= Visibility.Hidden; private Visibility assemblyStatsVisible= Visibility.Hidden;
public Visibility AssemblyStatsVisible { public Visibility AssemblyStatsVisible {
get { return assemblyStatsVisible; } get { return assemblyStatsVisible; }
@ -133,11 +136,11 @@ namespace ICSharpCode.CodeQualityAnalysis
set { mainModule = value; set { mainModule = value;
base.RaisePropertyChanged(() =>this.MainModule); base.RaisePropertyChanged(() =>this.MainModule);
Summary = String.Format("Module Name: {0} Namespaces: {1} Types {2} Methods: {3} Fields: {4}", Summary = String.Format("Module Name: {0} Namespaces: {1} Types {2} Methods: {3} Fields: {4}",
mainModule.Name, mainModule.Name,
mainModule.Namespaces.Count, mainModule.Namespaces.Count,
mainModule.TypesCount, mainModule.TypesCount,
mainModule.MethodsCount, mainModule.MethodsCount,
mainModule.FieldsCount); mainModule.FieldsCount);
} }
} }
@ -147,9 +150,9 @@ namespace ICSharpCode.CodeQualityAnalysis
public INode SelectedNode { public INode SelectedNode {
get { return selectedNode; } get { return selectedNode; }
set { selectedNode = value; set { selectedNode = value;
base.RaisePropertyChanged(() =>this.SelectedNode); base.RaisePropertyChanged(() =>this.SelectedNode);
base.RaisePropertyChanged(() =>this.MetrixTabEnable); base.RaisePropertyChanged(() =>this.MetrixTabEnable);
Summary = UpdateToolStrip(); Summary = UpdateToolStrip();
} }
} }
@ -181,7 +184,7 @@ namespace ICSharpCode.CodeQualityAnalysis
public ObservableCollection<INode> Nodes { public ObservableCollection<INode> Nodes {
get { return nodes; } get { return nodes; }
set { nodes = value; set { nodes = value;
base.RaisePropertyChanged(() =>this.Nodes);} base.RaisePropertyChanged(() =>this.Nodes);}
} }
@ -190,7 +193,7 @@ namespace ICSharpCode.CodeQualityAnalysis
public string TreeValueProperty { public string TreeValueProperty {
get { return treeValueProperty; } get { return treeValueProperty; }
set { treeValueProperty = value; set { treeValueProperty = value;
base.RaisePropertyChanged(() =>this.TreeValueProperty);} base.RaisePropertyChanged(() =>this.TreeValueProperty);}
} }
@ -199,13 +202,16 @@ namespace ICSharpCode.CodeQualityAnalysis
public MetricsLevel MetricsLevel { public MetricsLevel MetricsLevel {
get {return MetricsLevel;} get {return MetricsLevel;}
} }
private MetricsLevel selectedMetricsLevel; private MetricsLevel selectedMetricsLevel;
public MetricsLevel SelectedMetricsLevel { public MetricsLevel SelectedMetricsLevel {
get { return selectedMetricsLevel; } get { return selectedMetricsLevel; }
set { selectedMetricsLevel = value; set { selectedMetricsLevel = value;
base.RaisePropertyChanged(() =>this.selectedMetricsLevel);} SelectedMetricsIndex = 0;
base.RaisePropertyChanged(() =>this.SelectedMetricsLevel);
ResetTreeMap();
}
} }
@ -220,20 +226,18 @@ namespace ICSharpCode.CodeQualityAnalysis
void ActivateMetricsExecute () void ActivateMetricsExecute ()
{ {
Console.WriteLine(SelectedMetricsLevel.ToString());
switch (SelectedMetricsLevel) { switch (SelectedMetricsLevel) {
case MetricsLevel.Assembly: case MetricsLevel.Assembly:
Console.WriteLine("assembly"); metricsIsActive = false;
break; break;
case MetricsLevel.Namespace: case MetricsLevel.Namespace:
Console.WriteLine("namespace"); metricsIsActive = true;
break; break;
case MetricsLevel.Type: case MetricsLevel.Type:
Console.WriteLine("type"); metricsIsActive = true;
break; break;
case MetricsLevel.Method: case MetricsLevel.Method:
metricsIsActive = true; metricsIsActive = true;
Console.WriteLine("method");
break; break;
default: default:
throw new Exception("Invalid value for MetricsLevel"); throw new Exception("Invalid value for MetricsLevel");
@ -259,12 +263,27 @@ namespace ICSharpCode.CodeQualityAnalysis
} }
} }
int selectedMetricsIndex;
public int SelectedMetricsIndex {
get { return selectedMetricsIndex; }
set {
selectedMetricsIndex = value;
base.RaisePropertyChanged(() =>this.SelectedMetricsIndex);}
}
#endregion #endregion
#region ShowTreeMap Treemap #region ShowTreeMap Treemap
public ICommand ShowTreeMap {get;private set;} void ResetTreeMap()
{
Nodes.Clear();
metricsIsActive = false;
}
public ICommand ShowTreeMap {get;private set;}
bool CanActivateTreemap() bool CanActivateTreemap()
{ {
@ -274,14 +293,6 @@ namespace ICSharpCode.CodeQualityAnalysis
void ShowTreemapExecute () void ShowTreemapExecute ()
{ {
Nodes = PrepareNodes();
var aa = SelectedNode as INode;
var m = aa as Method;
var t = aa as Type;
var n = aa as Namespace;
switch (selectedMetrics) switch (selectedMetrics)
{ {
case Metrics.ILInstructions: case Metrics.ILInstructions:
@ -297,38 +308,45 @@ namespace ICSharpCode.CodeQualityAnalysis
default: default:
throw new Exception("Invalid value for Metrics"); throw new Exception("Invalid value for Metrics");
} }
Nodes = PrepareNodes();
} }
ObservableCollection<INode> PrepareNodes() ObservableCollection<INode> PrepareNodes()
{ {
IEnumerable<INode> list = new List<INode>(); IEnumerable<INode> list = new List<INode>();
switch (selectedMetricsLevel) {
switch (selectedMetricsLevel)
{
case MetricsLevel.Assembly: case MetricsLevel.Assembly:
list = from ns in MainModule.Namespaces list = from ns in MainModule.Namespaces
select ns; select ns;
break; break;
case MetricsLevel.Namespace: case MetricsLevel.Namespace:
list = from ns in MainModule.Namespaces var n1 = SelectedNode as Namespace;
select ns; list = from x in n1.GetAllMethods() select x;
Console.WriteLine ("NameSpace List {0}",list.Count());
break; break;
case MetricsLevel.Type: case MetricsLevel.Type:
list = from ns in MainModule.Namespaces var n2 = SelectedNode as Namespace;
from type in ns.Types list = n2.GetAllTypes();
select ns; var i1 = list.Count();
Console.WriteLine ("Type List {0}",list.Count());
break; break;
case MetricsLevel.Method: case MetricsLevel.Method:
list = from ns in MainModule.Namespaces list = from ns in MainModule.Namespaces
from type in ns.Types from type in ns.Types
from method in type.Methods from method in type.Methods
select method; select method;
Console.WriteLine ("method List {0}",list.Count());
break; break;
default: default:
throw new Exception("Invalid value for MetricsLevel"); throw new Exception("Invalid value for MetricsLevel");
} }
var nodes = new ObservableCollection<INode>(list.Distinct()); // var nodes = new ObservableCollection<INode>(list.Distinct());
Console.WriteLine("listcount for {0} = {1}",selectedMetricsLevel.ToString(),nodes.Count); var nodes = new ObservableCollection<INode>(list);
return nodes; return nodes;
} }

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

@ -394,7 +394,6 @@ 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