From 49e09b7f5c4553d42321bca7e4ccc3a964d186d1 Mon Sep 17 00:00:00 2001 From: PeterForstmeier Date: Mon, 2 Jul 2012 21:05:28 +0200 Subject: [PATCH] Icon in DataTemplate --- .../Src/AnalysisProjectOptionsPanelXaml.xaml | 15 ++++++---- .../AnalysisProjectOptionsPanelXaml.xaml.cs | 30 ++++++++++++------- .../Src/AnalysisProjectOptionsTreeNodes.cs | 19 ++++++++++-- 3 files changed, 47 insertions(+), 17 deletions(-) diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml index 7dc0ca2cb9..4875b687bb 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml @@ -20,23 +20,28 @@ - + - - - + - + + + + + + + diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs index bf10252ce2..e4d31b1f7a 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs @@ -50,8 +50,8 @@ namespace ICSharpCode.CodeAnalysis { InitializeComponent(); DataContext = this; - bla.Add(Tuple.Create(SystemIcons.Warning,"Warning",0)); - bla.Add(Tuple.Create(SystemIcons.Error,"Error",1)); + bla.Add(Tuple.Create(SystemIcons.Warning,ResourceService.GetString("Global.WarningText"),0)); + bla.Add(Tuple.Create(SystemIcons.Error,ResourceService.GetString("Global.ErrorText"),1)); // bla.Add(Tuple.Create(null,"None")); } @@ -334,15 +334,25 @@ namespace ICSharpCode.CodeAnalysis public override DataTemplate SelectTemplate(object item, DependencyObject container) { -// var element = item as RuleTreeNode; -// if (element != null) { -// return ComboTemplate; -// } else { -// return TxtTemplate; -// } - return ComboTemplate; - } + var rule = item as RuleTreeNode; + + if (rule != null) { + return ComboTemplate; + } + + var cat = item as CategoryTreeNode; + if (cat != null) { + if (!cat.NewErrorState.HasValue) { + //Mixed Mode + return TxtTemplate; + } else { + //All childs has same value + return ComboTemplate; + } + } + return ComboTemplate; + } } diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs index 042d7332ae..c9d3207235 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs @@ -8,7 +8,10 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Windows.Media; +using ICSharpCode.Core; +using ICSharpCode.Core.Presentation; using ICSharpCode.TreeView; namespace ICSharpCode.CodeAnalysis @@ -53,16 +56,20 @@ namespace ICSharpCode.CodeAnalysis public class CategoryTreeNode : BaseTree { internal FxCopCategory category; + private string mixedModeText; + private ImageSource mixedModeIcon; public CategoryTreeNode(FxCopCategory category,IEnumerable> bla):base(bla) { + mixedModeText = StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}"); + mixedModeIcon = PresentationResourceService.GetBitmapSource("Icons.16x16.ClosedFolderBitmap"); this.category = category; foreach (FxCopRule rule in category.Rules) { this.Children.Add(new RuleTreeNode(rule,bla)); } } - + public override bool IsCheckable { get { return true; } } @@ -83,7 +90,15 @@ namespace ICSharpCode.CodeAnalysis } } - + public ImageSource MixedModeIcon { + get { return mixedModeIcon; } + } + + public string MixedModeText + { + get {return mixedModeText;} + } + public Nullable NewErrorState { get {