diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs index 349484ae61..f84ce4a624 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs @@ -92,7 +92,7 @@ namespace ICSharpCode.CodeAnalysis string CreateRuleString() { - Console.WriteLine ("CreateRuleString()"); + StringBuilder b = new StringBuilder(); foreach (SharpTreeNode category in ruleTreeView.Items) { foreach (RuleTreeNode rule in category.Children) { @@ -104,7 +104,6 @@ namespace ICSharpCode.CodeAnalysis else b.Append('-'); if (rule.isError) - Console.WriteLine("Error Node found"); b.Append('!'); b.Append(rule.Identifier); } @@ -116,15 +115,13 @@ namespace ICSharpCode.CodeAnalysis void ReadRuleString() { - Console.WriteLine("ReadRuleString()"); -// userCheck = false; foreach (SharpTreeNode cat in ruleTreeView.Root.Children) { foreach (RuleTreeNode rtn in cat.Children) { rtn.IsChecked = true; rtn.isError = false; } } - Console.WriteLine("{0}",ruleString); + foreach (string rule2 in ruleString.Split(';')) { string rule = rule2; if (rule.Length == 0) continue; @@ -144,48 +141,24 @@ namespace ICSharpCode.CodeAnalysis if (rules.TryGetValue(rule, out ruleNode)) { ruleNode.IsChecked = active; ruleNode.isError = error; - ruleNode.Index = 1; + if (error) { + ruleNode.Index = 1; + } else { + ruleNode.Index = 0; + } +// ruleNode.Index = 1; } } -// userCheck = true; -// SetCheckedState(); SetCategoryIcon(); } - /* - void SetCheckedState() - { - foreach (SharpTreeNode cat in ruleTreeView.Root.Children) { - bool noneChecked = true; - foreach (RuleTreeNode rtn in cat.Children) { - if (!(bool) rtn.IsChecked) { - -Console.WriteLine("uncheck"); - } - if ((bool)rtn.IsChecked) { - noneChecked = false; - break; - } - } - cat.IsChecked = !noneChecked; + private void SetCategoryIcon() { + foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) { + categoryNode.CheckMode(); } } - */ - - private void SetCategoryIcon() { - foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) { - foreach (RuleTreeNode rtn in categoryNode.Children) { - if (!(bool) rtn.IsChecked) { - Console.WriteLine("uncheck"); - } - if (rtn.isError) { - Console.WriteLine("Error"); - } - } - categoryNode.CheckMode(); - } - } + string ruleString = ""; @@ -269,9 +242,25 @@ Console.WriteLine("uncheck"); { if (initSuccess) { if (e.PropertyName == "Index") { - base.IsDirty = true; + initSuccess = false; + var categoryNode = sender as CategoryTreeNode; + if (categoryNode != null) { + foreach (RuleTreeNode rule in categoryNode.Children) { + rule.Index = categoryNode.Index; + } + base.IsDirty = true; + initSuccess = true; + } + var ruleNode = sender as RuleTreeNode; + if (ruleNode != null) { + CategoryTreeNode parent = ruleNode.Parent as CategoryTreeNode; + parent.CheckMode(); + base.IsDirty = true; + initSuccess = true; + } } + if (e.PropertyName == "IsChecked") { base.IsDirty = true; } diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs index 44e93afca6..887e41da21 100644 --- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs +++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs @@ -6,7 +6,6 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; -using System.Collections.Generic; using System.Collections.ObjectModel; using System.Drawing; using System.Windows; @@ -27,8 +26,6 @@ namespace ICSharpCode.CodeAnalysis { private int index; - - public BaseTree() { RuleState = new ObservableCollection>(); @@ -45,6 +42,7 @@ namespace ICSharpCode.CodeAnalysis } + private static ImageSource ToImageSource( Icon icon) { Bitmap bitmap = icon.ToBitmap(); @@ -60,7 +58,6 @@ namespace ICSharpCode.CodeAnalysis } - public ObservableCollection> RuleState {get;set;} private Tuple selectedItem; @@ -93,7 +90,6 @@ namespace ICSharpCode.CodeAnalysis foreach (FxCopRule rule in category.Rules) { this.Children.Add(new RuleTreeNode(rule)); } - CheckMode(); } @@ -101,6 +97,7 @@ namespace ICSharpCode.CodeAnalysis get { return true; } } + public override object Text { get { return category.DisplayName; } } @@ -111,12 +108,7 @@ namespace ICSharpCode.CodeAnalysis set { if (value != base.Index) { base.Index = value; - if (mixedModeTuple == null) { - foreach (RuleTreeNode rule in this.Children) { - rule.Index = Index; - } - CheckMode(); - } + RaisePropertyChanged("Index"); } } } @@ -131,10 +123,10 @@ namespace ICSharpCode.CodeAnalysis RuleState.Add(mixedModeTuple); Index = RuleState.Count -1; base.RaisePropertyChanged("Index"); - CheckMode(); } } + private void RemoveMixedMode() { if (mixedModeTuple != null) { @@ -142,61 +134,26 @@ namespace ICSharpCode.CodeAnalysis RuleState.Remove(mixedModeTuple); mixedModeTuple = null; base.RaisePropertyChanged("Index"); - CheckMode(); } } } + public void CheckMode () { var state = ErrorState; if (state == 0) { RemoveMixedMode(); + Index = 0; } else if (state == 1) { -// RemoveMixedMode(); - AddMixedMode(); + RemoveMixedMode(); + Index = 1; } else { AddMixedMode(); - Console.WriteLine("Unchecked"); } } - /* - public void CheckMode () - { -// if (! ignoreCheckMode) { -// Console.WriteLine("CheckMode"); - if (!ErrorState.HasValue) { -// Console.WriteLine ("\t{0} is Mixed Mode",Text); - AddMixedMode(); - } - else{ - RemoveMixedMode(); - } -// } - } - */ - /* - public Nullable ErrorState { - get { - bool allWarn = true; - bool allErr = true; - foreach (RuleTreeNode tn in Children) { - if (tn.isError) - allWarn = false; - else - allErr = false; - } - if (allErr) - return true; - else if (allWarn) - return false; - else - return null; - } - } - */ internal int ErrorState { get { @@ -208,21 +165,11 @@ namespace ICSharpCode.CodeAnalysis else allErr = false; } - /* - if (allErr) - return 1; - else if (allWarn) - return 0; - else - return -1; - */ if (allErr) return 1; if (allWarn) { return 0; } -// else -// return -1; return -1; } } @@ -245,14 +192,17 @@ namespace ICSharpCode.CodeAnalysis this.rule = rule; } + public override bool IsCheckable { get { return true; } } + public override object Text { get { return rule.CheckId + " : " + rule.DisplayName; } } + public string Identifier { get { return rule.CategoryName + "#" + rule.CheckId; @@ -265,14 +215,8 @@ namespace ICSharpCode.CodeAnalysis set { if (base.Index != value) { isError = value == 1; - if (isError) { - Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError); - } base.Index = value; RaisePropertyChanged("Index"); - var parent = Parent as CategoryTreeNode; - parent.CheckMode(); -// } } }