From e4a0c08d9046c5796ad2b5a6f314696f6e0ab655 Mon Sep 17 00:00:00 2001 From: PeterForstmeier Date: Wed, 18 Jul 2012 20:31:46 +0200 Subject: [PATCH] AnalysisProjectOptionsPanel --- .../Src/AnalysisProjectOptionsPanelXaml.xaml | 42 +++++------ .../AnalysisProjectOptionsPanelXaml.xaml.cs | 13 +--- .../Src/AnalysisProjectOptionsTreeNodes.cs | 74 +++++++++++-------- 3 files changed, 66 insertions(+), 63 deletions(-) diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml index f42dad8f88..ac6cfbca9d 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml @@ -52,31 +52,31 @@ - - - - - - + + + + + + + + - + - - - - - - + + + + - - + + diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs index f2445d89c3..a76e568e37 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs @@ -140,7 +140,8 @@ namespace ICSharpCode.CodeAnalysis RuleTreeNode ruleNode; if (rules.TryGetValue(rule, out ruleNode)) { ruleNode.IsChecked = active; - ruleNode.isError = error; + //ruleNode.isError = error; + ruleNode.Index = 1; } } userCheck = true; @@ -255,15 +256,7 @@ namespace ICSharpCode.CodeAnalysis Console.WriteLine("OnPropertyChanged {0}",e.PropertyName); if (e.PropertyName == "Index") { base.IsDirty = true; -// var rule = sender as RuleTreeNode; -// if (rule != null) { -// var cat = rule.Parent as CategoryTreeNode; -// if (cat != null) { -// cat.CheckMode(); -// } -// } } - } } @@ -311,7 +304,5 @@ namespace ICSharpCode.CodeAnalysis } #endregion - - } } \ No newline at end of file diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs index 065e383a9c..17c3b8610c 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs @@ -28,10 +28,10 @@ namespace ICSharpCode.CodeAnalysis private int index; - + public BaseTree() { - RuleState = new ObservableCollection>(); + RuleState = new ObservableCollection>(); Icon icon = SystemIcons.Warning; ImageSource imageSource = ToImageSource(icon); @@ -45,19 +45,19 @@ namespace ICSharpCode.CodeAnalysis // bla.Add(Tuple.Create(null,"None")); } - private static ImageSource ToImageSource( Icon icon) - { - Bitmap bitmap = icon.ToBitmap(); - IntPtr hBitmap = bitmap.GetHbitmap(); - - ImageSource wpfBitmap = Imaging.CreateBitmapSourceFromHBitmap( - hBitmap, - IntPtr.Zero, - Int32Rect.Empty, - BitmapSizeOptions.FromEmptyOptions()); - - return wpfBitmap; - } + private static ImageSource ToImageSource( Icon icon) + { + Bitmap bitmap = icon.ToBitmap(); + IntPtr hBitmap = bitmap.GetHbitmap(); + + ImageSource wpfBitmap = Imaging.CreateBitmapSourceFromHBitmap( + hBitmap, + IntPtr.Zero, + Int32Rect.Empty, + BitmapSizeOptions.FromEmptyOptions()); + + return wpfBitmap; + } @@ -93,7 +93,6 @@ namespace ICSharpCode.CodeAnalysis foreach (FxCopRule rule in category.Rules) { this.Children.Add(new RuleTreeNode(rule)); } - CheckMode(); } @@ -106,6 +105,7 @@ namespace ICSharpCode.CodeAnalysis get { return category.DisplayName; } } + bool ignoreCheckMode; public override int Index { get { return base.Index; } set { @@ -113,10 +113,16 @@ namespace ICSharpCode.CodeAnalysis base.Index = value; if (mixedModeTuple == null) { Console.WriteLine("Set all to index"); + ignoreCheckMode = true; foreach (RuleTreeNode rule in this.Children) { rule.Index = Index; } - base.RaisePropertyChanged("Index"); + ignoreCheckMode = false; +// CheckMode(); +// base.RaisePropertyChanged("Index"); +// foreach (RuleTreeNode rule in this.Children) { +// Console.WriteLine(rule.Index.ToString()); +// } } } } @@ -129,7 +135,7 @@ namespace ICSharpCode.CodeAnalysis if (!RuleState.Contains(mixedModeTuple)) { var image = PresentationResourceService.GetBitmapSource("Icons.16x16.ClosedFolderBitmap"); mixedModeTuple = Tuple.Create(image, - StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}")); + StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}")); RuleState.Add(mixedModeTuple); Index = RuleState.Count -1; base.RaisePropertyChanged("Index"); @@ -152,19 +158,23 @@ namespace ICSharpCode.CodeAnalysis public void CheckMode () { - Console.WriteLine("CheckMode"); - if (!NewErrorState.HasValue) { - Console.WriteLine ("\t{0} is Mixed Mode",Text); - AddMixedMode(); -// categoryNode.AddMixedMode(); - } else{ - RemoveMixedMode(); - if (NewErrorState == true) { - Console.WriteLine ("\t{0} is Error",Text); -// categoryNode.Index = 1; - } else { - Console.WriteLine ("\t{0} is Warning",Text); + if (! ignoreCheckMode) { + Console.WriteLine("CheckMode"); + if (!NewErrorState.HasValue) { + Console.WriteLine ("\t{0} is Mixed Mode",Text); + AddMixedMode(); + } + else{ + RemoveMixedMode(); + /* + if (NewErrorState == true) { + Console.WriteLine ("\t{0} is Error",Text); +// Index = 1; + } else { + Console.WriteLine ("\t{0} is Warning",Text); // categoryNode.Index = ; + } + */ } } } @@ -222,10 +232,11 @@ namespace ICSharpCode.CodeAnalysis get { return error; } set { error = value; +// Index = 1; } } - + public RuleTreeNode(FxCopRule rule):base() { this.rule = rule; @@ -252,6 +263,7 @@ namespace ICSharpCode.CodeAnalysis if (base.Index != value) { isError = value == 1; base.Index = value; + RaisePropertyChanged("Index"); var p = Parent as CategoryTreeNode; p.CheckMode(); Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError);