Browse Source

LocalizableDescriptionAttribute and EnumToFriendlyNameConverter to display enum's in a user friendly name

pull/20/merge
PeterForstmeier 14 years ago
parent
commit
287b860e9a
  1. 4
      src/AddIns/Analysis/CodeQuality/CodeQualityAnalysis.csproj
  2. 20
      src/AddIns/Analysis/CodeQuality/Src/MainWindow.xaml
  3. 9
      src/AddIns/Analysis/CodeQuality/Src/MainWindowModel.cs

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

@ -145,6 +145,8 @@
<Compile Include="Src\Utility\DoubleKeyDictionary.cs" /> <Compile Include="Src\Utility\DoubleKeyDictionary.cs" />
<Compile Include="Src\Utility\IColorizer.cs" /> <Compile Include="Src\Utility\IColorizer.cs" />
<Compile Include="Src\Utility\Helper.cs" /> <Compile Include="Src\Utility\Helper.cs" />
<Compile Include="Src\Utility\LocalizeableCombo\EnumToFriendlyNameConverter.cs" />
<Compile Include="Src\Utility\LocalizeableCombo\LocalizableDescriptionAttribute.cs" />
<Compile Include="Src\Utility\Matrix.cs" /> <Compile Include="Src\Utility\Matrix.cs" />
<Compile Include="Src\Utility\RelayCommand.cs" /> <Compile Include="Src\Utility\RelayCommand.cs" />
<Compile Include="Src\Utility\ViewModelBase.cs" /> <Compile Include="Src\Utility\ViewModelBase.cs" />
@ -264,7 +266,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Src\Utility" /> <Folder Include="Src\Utility" />
<Folder Include="Src\Utility\LocaliceableCombo" /> <Folder Include="Src\Utility\LocalizeableCombo" />
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.

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

@ -12,11 +12,14 @@
xmlns:tree="http://icsharpcode.net/sharpdevelop/treeview" xmlns:tree="http://icsharpcode.net/sharpdevelop/treeview"
xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:t="clr-namespace:TreeMaps.Controls;assembly=TreeMaps" xmlns:t="clr-namespace:TreeMaps.Controls;assembly=TreeMaps"
xmlns:loc ="clr-namespace:ICSharpCode.CodeQualityAnalysis.Utility.LocalizeableCombo"
Title="{Binding FrmTitle}" Title="{Binding FrmTitle}"
x:Name="root"> x:Name="root">
<Window.DataContext> <Window.DataContext>
<src:MainWindowViewModel /> <src:MainWindowViewModel />
</Window.DataContext> </Window.DataContext>
<Window.Resources> <Window.Resources>
<ResourceDictionary> <ResourceDictionary>
<ResourceDictionary.MergedDictionaries> <ResourceDictionary.MergedDictionaries>
@ -27,6 +30,7 @@
</ResourceDictionary.MergedDictionaries> </ResourceDictionary.MergedDictionaries>
</ResourceDictionary> </ResourceDictionary>
</Window.Resources> </Window.Resources>
<Grid> <Grid>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition <RowDefinition
@ -238,6 +242,8 @@
</ObjectDataProvider.MethodParameters> </ObjectDataProvider.MethodParameters>
</ObjectDataProvider> </ObjectDataProvider>
<loc:EnumToFriendlyNameConverter x:Key="enumItemsConverter"/>
<DataTemplate <DataTemplate
x:Key="TreeMapDataTemplate"> x:Key="TreeMapDataTemplate">
<Border <Border
@ -279,10 +285,20 @@
<TextBlock Margin="4,0,0,0" Text="Metric: " /> <TextBlock Margin="4,0,0,0" Text="Metric: " />
<ComboBox Width="200" Margin="4,0,0,0" <ComboBox Width="200" Margin="4,0,0,0"
ItemsSource="{Binding Source={StaticResource Metrics}}" ItemsSource="{Binding Source={StaticResource Metrics}}"
SelectedItem="{Binding SelectedMetrics}"> SelectedItem="{Binding SelectedMetrics}">
</ComboBox> <ComboBox.ItemTemplate>
<DataTemplate>
<Label Content="{Binding Path=.,Mode=OneWay,
Converter={StaticResource enumItemsConverter}}"
Height="Auto"
Margin="0"
VerticalAlignment="Center"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</ToolBar> </ToolBar>
</ToolBarTray> </ToolBarTray>

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

@ -16,7 +16,7 @@ using System.Windows.Media.Imaging;
using ICSharpCode.CodeQualityAnalysis.Controls; using ICSharpCode.CodeQualityAnalysis.Controls;
using ICSharpCode.CodeQualityAnalysis.Utility; using ICSharpCode.CodeQualityAnalysis.Utility;
using ICSharpCode.CodeQualityAnalysis.Utility.LocalizeableCombo;
using Microsoft.Win32; using Microsoft.Win32;
namespace ICSharpCode.CodeQualityAnalysis namespace ICSharpCode.CodeQualityAnalysis
@ -32,10 +32,16 @@ namespace ICSharpCode.CodeQualityAnalysis
Method Method
} }
public enum Metrics public enum Metrics
{ {
[LocalizableDescription("IL Instructions")]
ILInstructions, ILInstructions,
[LocalizableDescription("Cyclomatic Complexity")]
CyclomaticComplexity, CyclomaticComplexity,
[LocalizableDescription("Variables")]
Variables Variables
} }
@ -211,6 +217,5 @@ namespace ICSharpCode.CodeQualityAnalysis
throw new Exception("Invalid value for Metrics"); throw new Exception("Invalid value for Metrics");
} }
} }
} }
} }

Loading…
Cancel
Save