diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
index 4875b687bb..f829ff6198 100644
--- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
+++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
@@ -9,13 +9,18 @@
xmlns:local="clr-namespace:ICSharpCode.CodeAnalysis"
xmlns:core="http://icsharpcode.net/sharpdevelop/core">
+
+
+
@@ -32,8 +37,14 @@
+
-
+
-
-
+
@@ -92,17 +108,18 @@
-
-
-
-
+ -->
+
-
+
+
+
+
+
+
+
+
diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
index e4d31b1f7a..9dac8b9661 100644
--- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
+++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
@@ -44,15 +44,10 @@ namespace ICSharpCode.CodeAnalysis
private bool userCheck;
private Dictionary rules = new Dictionary();
- private List> bla = new List>();
-
public AnalysisProjectOptionsPanelXaml()
{
InitializeComponent();
DataContext = this;
- 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"));
}
@@ -169,19 +164,23 @@ namespace ICSharpCode.CodeAnalysis
void SetCategoryIcon() {
- foreach (CategoryTreeNode element in ruleTreeView.Root.Children) {
+
+ foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) {
// Console.WriteLine(" {0} ",element.Text);
- if (!element.NewErrorState.HasValue) {
- Console.WriteLine (" {0} is Mixed Mode",element.Text);
+ if (!categoryNode.NewErrorState.HasValue) {
+ Console.WriteLine (" {0} is Mixed Mode",categoryNode.Text);
+ categoryNode.AddMixedMode();
} else{
- if (element.NewErrorState == true) {
- Console.WriteLine (" {0} is Error",element.Text);
- element.Index = 1;
+ if (categoryNode.NewErrorState == true) {
+ Console.WriteLine (" {0} is Error",categoryNode.Text);
+ categoryNode.Index = 1;
} else {
- Console.WriteLine (" {0} is Warning",element.Text);
+ Console.WriteLine (" {0} is Warning",categoryNode.Text);
}
}
}
+ Console.WriteLine("--------------");
+
}
string ruleString = "";
@@ -247,7 +246,7 @@ namespace ICSharpCode.CodeAnalysis
ruleTreeView.Root.Children.Add(new MessageNode(StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.SpecifyFxCopPath}")));
} else {
foreach (FxCopCategory cat in ruleList) {
- CategoryTreeNode catNode = new CategoryTreeNode(cat,bla);
+ CategoryTreeNode catNode = new CategoryTreeNode(cat);
catNode.PropertyChanged += OnPropertyChanged;
ruleTreeView.Root.Children.Add(catNode);
foreach (RuleTreeNode ruleNode in catNode.Children) {
@@ -322,7 +321,14 @@ namespace ICSharpCode.CodeAnalysis
}
}
+ void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
+ {
+// throw new NotImplementedException();
+ }
+
#endregion
+
+
}
@@ -334,6 +340,7 @@ namespace ICSharpCode.CodeAnalysis
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
+ Console.WriteLine ("------- TypeSelector ---------");
var rule = item as RuleTreeNode;
if (rule != null) {
@@ -359,7 +366,7 @@ namespace ICSharpCode.CodeAnalysis
[ValueConversion(typeof(System.Drawing.Icon), typeof(System.Windows.Media.ImageSource))]
public class ImageConverter : IValueConverter
{
- public object Convert(object value, Type targetType,
+ public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
// empty images are empty...
diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs
index c9d3207235..95338ceda2 100644
--- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs
+++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs
@@ -7,8 +7,12 @@
*/
using System;
using System.Collections.Generic;
+using System.Collections.ObjectModel;
using System.Drawing;
+using System.Windows;
+using System.Windows.Interop;
using System.Windows.Media;
+using System.Windows.Media.Imaging;
using ICSharpCode.Core;
using ICSharpCode.Core.Presentation;
@@ -22,13 +26,23 @@ namespace ICSharpCode.CodeAnalysis
public class BaseTree:SharpTreeNode
{
private int index;
-
- public BaseTree(IEnumerable> ruleState)
+
+ public BaseTree()
{
- this.RuleState = ruleState;
+ RuleState = new ObservableCollection>();
+ this.RuleState.Add(Tuple.Create(SystemIcons.Warning,ResourceService.GetString("Global.WarningText")));
+ this.RuleState.Add(Tuple.Create(SystemIcons.Error,ResourceService.GetString("Global.ErrorText")));
+// bla.Add(Tuple.Create(null,"None"));
}
- public IEnumerable> RuleState {get;set;}
+ public ObservableCollection> RuleState {get;set;}
+
+ private Tuple selectedItem;
+
+ public Tuple SelectedNode {
+ get { return selectedItem; }
+ set { selectedItem = value; }
+ }
public virtual int Index {
@@ -36,40 +50,30 @@ namespace ICSharpCode.CodeAnalysis
set {
if (index != value) {
index = value;
- switch (index) {
- case 0:
- break;
- case 1:
- break;
- case 2:
- break;
- default:
- break;
- }
- base.RaisePropertyChanged("Index");
}
+ base.RaisePropertyChanged("Index");
}
}
}
+
public class CategoryTreeNode : BaseTree
{
internal FxCopCategory category;
- private string mixedModeText;
- private ImageSource mixedModeIcon;
+ private Tuple mixedTuple;
- public CategoryTreeNode(FxCopCategory category,IEnumerable> bla):base(bla)
+ public CategoryTreeNode(FxCopCategory category):base()
{
- 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));
+ this.Children.Add(new RuleTreeNode(rule));
}
+
}
-
+
public override bool IsCheckable {
get { return true; }
}
@@ -83,23 +87,28 @@ namespace ICSharpCode.CodeAnalysis
set {
if (value != base.Index) {
base.Index = value;
- foreach (RuleTreeNode rule in this.Children) {
- rule.Index = Index;
+ if (mixedTuple == null) {
+ foreach (RuleTreeNode rule in this.Children) {
+ rule.Index = Index;
+ }
}
+
}
}
}
- public ImageSource MixedModeIcon {
- get { return mixedModeIcon; }
- }
- public string MixedModeText
+ public void AddMixedMode()
{
- get {return mixedModeText;}
+ Bitmap b = (Bitmap)ResourceService.GetImageResource("Icons.16x16.ClosedFolderBitmap");
+ System.Drawing.Icon ico = (Icon)System.Drawing.Icon.FromHandle(b.GetHicon());
+
+ mixedTuple = Tuple.Create(ico,
+ StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}"));
+ RuleState.Add(mixedTuple);
+ Index = RuleState.Count -1;
}
-
public Nullable NewErrorState {
get {
bool allWarn = true;
@@ -153,15 +162,16 @@ namespace ICSharpCode.CodeAnalysis
set {
if (error != value) {
error = value;
+
if (error) {
base.Index = 1;
}
}
-
}
}
- public RuleTreeNode(FxCopRule rule,IEnumerable> ruleState):base(ruleState)
+
+ public RuleTreeNode(FxCopRule rule):base()
{
this.rule = rule;
}
@@ -184,13 +194,16 @@ namespace ICSharpCode.CodeAnalysis
public override int Index {
get { return base.Index; }
set {
- if (value != Index) {
- if (Index == 1) {
- error = true;
- } else {
- error = false;
- }
+ if (base.Index != value) {
+ isError = value == 1;
base.Index = value;
+
+// if (base.Index == 1) {
+// error = true;
+// } else {
+// error = false;
+// }
+ Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError);
}
}
}
@@ -210,5 +223,4 @@ namespace ICSharpCode.CodeAnalysis
get { return message; }
}
}
-
}