Browse Source

All queries are checked for '0' values, StatusBar show RemovedValues.Count

pull/18/head
PeterForstmeier 14 years ago
parent
commit
ab8450b7f4
  1. 167
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
  2. 13
      src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs
  3. 14
      src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/BaseQuery.cs
  4. 6
      src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryMethod.cs
  5. 35
      src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryNameSpace.cs
  6. 8
      src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryType.cs
  7. 2
      src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/TreeMapViewModel.cs
  8. 1
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

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

@ -148,90 +148,11 @@ @@ -148,90 +148,11 @@
x:Name="matrixControl"></Graph:TreeMatrixControl>
</TabItem>
<!-- Initial version of Thomaz
<TabItem
Header="{Binding TabMetrics}"
IsEnabled="{Binding MetrixTabEnable}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="Auto" />
<RowDefinition
Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="*" />
</Grid.ColumnDefinitions>
<ToolBarTray
Background="White"
Grid.Row="0"
Grid.Column="0">
<ToolBar>
<TextBlock
Text="Level: " />
<ComboBox
IsEditable="False"
x:Name="cbxMetrixLevel"
IsDropDownOpen="True"
Width="150"
SelectionChanged="MetricLevel_SelectionChanged">
<ComboBoxItem
Name="assembly">Assembly</ComboBoxItem>
<ComboBoxItem
Name="namespace">Namespace</ComboBoxItem>
<ComboBoxItem
Name="type">Type</ComboBoxItem>
<ComboBoxItem
Name="field">Field</ComboBoxItem>
<ComboBoxItem
Name="method">Method</ComboBoxItem>
</ComboBox>
<TextBlock
Text="Metric: " />
<ComboBox
Width="200"
x:Name="cbxMetrics"
SelectionChanged="Metrics_SelectionChanged" />
</ToolBar>
</ToolBarTray>
<datavis:TreeMap
x:Name="treemap"
Grid.Row="1"
Grid.Column="0">
<datavis:TreeMap.ItemDefinition>
<datavis:TreeMapItemDefinition
ValuePath="Instructions.Count">
<DataTemplate>
<Border
Background="AliceBlue"
BorderBrush="Black"
BorderThickness="1"
ToolTipService.ToolTip="{Binding ToolTip}">
<StackPanel>
<TextBlock
Text="{Binding DeclaringType.Name}" />
<TextBlock
Text="{Binding Name}"
VerticalAlignment="Center"
TextAlignment="Center"
TextWrapping="Wrap" />
</StackPanel>
</Border>
</DataTemplate>
</datavis:TreeMapItemDefinition>
</datavis:TreeMap.ItemDefinition>
</datavis:TreeMap>
</Grid>
</TabItem>
-->
<TabItem
Name="TreeMapTabItem"
Header="{Binding TabMetrics}"
IsEnabled="{Binding MetrixTabEnable}">
<TabItem.Resources>
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type sys:Enum}"
x:Key="MetricsLevel">
@ -240,16 +161,7 @@ @@ -240,16 +161,7 @@
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<!--
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type sys:Enum}"
x:Key="Metrics">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="src:Metrics" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
-->
<loc:EnumToFriendlyNameConverter x:Key="enumItemsConverter"/>
<loc:EnumToFriendlyNameConverter x:Key="enumItemsConverter"/>
<DataTemplate
x:Key="TreeMapDataTemplate">
@ -262,7 +174,7 @@ @@ -262,7 +174,7 @@
Text="{Binding DeclaringType.Name}" />
<TextBlock
Text="{Binding Name}"
VerticalAlignment="Center"
VerticalAlignment="Top"
TextAlignment="Center"
TextWrapping="Wrap" />
</StackPanel>
@ -295,25 +207,7 @@ @@ -295,25 +207,7 @@
</util:ComboBoxWithCommand>
<TextBlock Margin="4,0,0,0" Text="Metric: " />
<!--
<util:ComboBoxWithCommand Width="200" Margin="4,0,0,0"
ItemsSource="{Binding Source={StaticResource Metrics}}"
SelectedItem="{Binding SelectedMetrics}"
SelectedIndex="{Binding SelectedMetricsIndex}"
Command="{Binding ShowTreeMap}">
<util:ComboBoxWithCommand.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Path=.,Mode=OneWay,
Converter={StaticResource enumItemsConverter}}"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</DataTemplate>
</util:ComboBoxWithCommand.ItemTemplate>
</util:ComboBoxWithCommand>
-->
<util:ComboBoxWithCommand Width="200" Margin="4,0,0,0"
ItemsSource="{Binding ItemsWithCommand}"
SelectedItem="{Binding SelectedItemWithCommand}"
@ -363,60 +257,7 @@ @@ -363,60 +257,7 @@
Height="15" />
</StackPanel>
</StatusBarItem>
<!--
<StatusBarItem
HorizontalAlignment="Right"
Visibility="{Binding AssemblyStatsVisible}">
<StackPanel
Orientation="Horizontal">
<StatusBarItem>
<StackPanel
Orientation="Horizontal">
<TextBlock
Text="Namespaces: " />
<TextBlock
Text="{Binding Path=MainModule.Namespaces.Count}" />
</StackPanel>
</StatusBarItem>
<StatusBarItem>
<StackPanel
Orientation="Horizontal">
<TextBlock
Text="Types: " />
<TextBlock
Text="{Binding Path=MainModule.TypesCount}" />
</StackPanel>
</StatusBarItem>
<StatusBarItem>
<StackPanel
Orientation="Horizontal">
<TextBlock
Text="Methods: " />
<TextBlock
Text="{Binding Path=MainModule.MethodsCount}" />
</StackPanel>
</StatusBarItem>
<StatusBarItem>
<StackPanel
Orientation="Horizontal">
<TextBlock
Text="Fields: " />
<TextBlock
Text="{Binding Path=MainModule.FieldsCount}" />
</StackPanel>
</StatusBarItem>
<StatusBarItem>
<StackPanel
Orientation="Horizontal">
<TextBlock
Text="IL instructions: " />
<TextBlock
Text="{Binding Path=MainModule.InstructionsCount}" />
</StackPanel>
</StatusBarItem>
</StackPanel>
</StatusBarItem>
-->
<StatusBarItem
HorizontalAlignment="Right"
Visibility="{Binding AssemblyStatsVisible}">

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

@ -33,7 +33,7 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -33,7 +33,7 @@ namespace ICSharpCode.CodeQualityAnalysis
Method
}
public enum Metrics
{
@ -46,9 +46,11 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -46,9 +46,11 @@ namespace ICSharpCode.CodeQualityAnalysis
[LocalizableDescription("Variables")]
Variables
}
public class MainWindowViewModel :ViewModelBase
{
BaseQuery query;
public MainWindowViewModel():base()
{
@ -212,7 +214,7 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -212,7 +214,7 @@ namespace ICSharpCode.CodeQualityAnalysis
void ActivateMetricsExecute ()
{
BaseQuery query = null;
// BaseQuery query = null;
itemsWithCommand.Clear();
switch (SelectedMetricsLevel) {
@ -265,11 +267,14 @@ namespace ICSharpCode.CodeQualityAnalysis @@ -265,11 +267,14 @@ namespace ICSharpCode.CodeQualityAnalysis
void ExecuteSelectedItem()
{
if (SelectedItemWithCommand != null) {
// TreeValueProperty = SelectedItemWithCommand.Metrics;
TreeValueProperty ="Numval";
TreeValueProperty ="NumericValue";
var list = SelectedItemWithCommand.Action.Invoke();
if (list != null ) {
Nodes = new ObservableCollection<TreeMapViewModel>(list);
Summary = String.Format("Total number of Elements <{0}> '0'-values <{1}> No of Displayed Elements <{2}> ",
query.TotalElements,
query.RemovedElements,
Nodes.Count);
}
}
}

14
src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/BaseQuery.cs

@ -23,7 +23,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -23,7 +23,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
}
protected Module MainModule {get; private set;}
public int TotalElements {get; private set;}
public int RemovedElements {get; private set;}
public virtual List<ItemWithAction> GetQueryList ()
{
return null;
@ -32,10 +35,13 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -32,10 +35,13 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
protected List<TreeMapViewModel> EliminateZeroValues(IEnumerable<TreeMapViewModel> list)
{
var filtered = from viewModel in list
where viewModel.Numval > 0
var filtered = from viewModel in list
where viewModel.NumericValue > 0
select viewModel;
return filtered.ToList();
var result = filtered.ToList();
TotalElements = list.Count();
RemovedElements = TotalElements - result.Count();
return result;
}
}
}

6
src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryMethod.cs

@ -70,7 +70,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -70,7 +70,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
NumericValue = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
});
var filtered = base.EliminateZeroValues(list);
@ -86,7 +86,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -86,7 +86,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.CyclomaticComplexity
NumericValue = m.CyclomaticComplexity
});
var filtered = base.EliminateZeroValues(list);
Console.WriteLine("{0} - {1} - {2}",intermediate.Count,list.Count(),filtered.Count());
@ -101,7 +101,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -101,7 +101,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.Variables
NumericValue = m.Variables
});
var filtered = base.EliminateZeroValues(list);
Console.WriteLine("{0} - {1} - {2}",intermediate.Count,list.Count(),filtered.Count());

35
src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryNameSpace.cs

@ -58,23 +58,9 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -58,23 +58,9 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
Metrics = Metrics.Variables.ToString(),
Action = TypesCount
});
// items.Add(new ItemWithAction()
// {
// Description = "# of Namespaces",
// Metrics = Metrics.Variables.ToString(),
// Action = ExecuteNotImplemented
// });
return items;
}
private List<TreeMapViewModel> ExecuteNotImplemented()
{
MessageService.ShowMessage("Not Implemented yet","CodeQualityAnalysis");
return null;
}
private List<TreeMapViewModel> ExecuteILInstructions ()
{
@ -83,9 +69,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -83,9 +69,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
NumericValue = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
});
return list.ToList();
var filtered = base.EliminateZeroValues(list);
return filtered.ToList();
}
@ -96,10 +83,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -96,10 +83,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().ToList().Count
NumericValue = m.GetAllMethods().ToList().Count
});
return list.ToList();
var filtered = base.EliminateZeroValues(list);
return filtered.ToList();
}
@ -109,9 +96,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -109,9 +96,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllFields().ToList().Count
NumericValue = m.GetAllFields().ToList().Count
});
return list.ToList();
var filtered = base.EliminateZeroValues(list);
return filtered.ToList();
}
@ -122,9 +110,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -122,9 +110,10 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllTypes().ToList().Count
NumericValue = m.GetAllTypes().ToList().Count
});
return list.ToList();
var filtered = base.EliminateZeroValues(list);
return filtered.ToList();
}
}
}

8
src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/QueryType.cs

@ -74,7 +74,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -74,7 +74,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
NumericValue = m.GetAllMethods().Aggregate(i, (current, x) => current + x.Instructions.Count)
});
var filtered = base.EliminateZeroValues(list);
return filtered.ToList();
@ -88,7 +88,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -88,7 +88,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().Aggregate(i, (current, x) => current + x.CyclomaticComplexity)
NumericValue = m.GetAllMethods().Aggregate(i, (current, x) => current + x.CyclomaticComplexity)
});
var filtered = base.EliminateZeroValues(list);
Console.WriteLine("{0} - {1} - {2}",intermediate.Count,list.Count(),filtered.Count());
@ -102,7 +102,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -102,7 +102,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllMethods().ToList().Count
NumericValue = m.GetAllMethods().ToList().Count
});
var filtered = base.EliminateZeroValues(list);
@ -117,7 +117,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -117,7 +117,7 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
var list = intermediate.Select(m => new TreeMapViewModel()
{
Name = m.Name,
Numval = m.GetAllFields().ToList().Count
NumericValue = m.GetAllFields().ToList().Count
});
var filtered = base.EliminateZeroValues(list);
Console.WriteLine("{0} - {1} - {2}",intermediate.Count,list.Count(),filtered.Count());

2
src/AddIns/Analysis/CodeQuality/Src/Utility/Queries/TreeMapViewModel.cs

@ -16,6 +16,6 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries @@ -16,6 +16,6 @@ namespace ICSharpCode.CodeQualityAnalysis.Utility.Queries
public class TreeMapViewModel
{
public string Name {get;set;}
public int Numval {get;set;}
public int NumericValue {get;set;}
}
}

1
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -525,6 +525,7 @@ @@ -525,6 +525,7 @@
</Compile>
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\ProjectReferencePanel.cs">
<SubType>Component</SubType>
<DependentUpon>SelectReferenceDialog.cs</DependentUpon>
</Compile>
<Compile Include="Src\Gui\Dialogs\ReferenceDialog\SelectReferenceDialog.cs">
<SubType>Form</SubType>

Loading…
Cancel
Save