diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
index bbad3d701b..ecd0dd223a 100644
--- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
+++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
@@ -33,6 +33,7 @@
-
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
index 2a271ac7ed..88b6585735 100644
--- a/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
+++ b/src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
@@ -44,16 +44,15 @@ namespace ICSharpCode.CodeAnalysis
private bool userCheck;
private Dictionary rules = new Dictionary();
- private List bla = new List();
+ private List> bla = new List>();
public AnalysisProjectOptionsPanelXaml()
{
InitializeComponent();
DataContext = this;
-
- bla.Add(new KeyItemPair("Warning","Warning"));
- bla.Add(new KeyItemPair("Error","Error"));
- bla.Add(new KeyItemPair("None","None"));
+ bla.Add(Tuple.Create(SystemIcons.Warning,"Warning"));
+ bla.Add(Tuple.Create(SystemIcons.Error,"Error"));
+// bla.Add(Tuple.Create(null,"None"));
}
@@ -69,6 +68,7 @@ namespace ICSharpCode.CodeAnalysis
public ProjectProperty CodeAnalysisRules {
get { return GetProperty("CodeAnalysisRules","",TextBoxEditMode.EditEvaluatedProperty); }
}
+
#region Rule Assemblies Property
string ruleAssemblies;
@@ -113,6 +113,8 @@ namespace ICSharpCode.CodeAnalysis
b.Append('!');
b.Append(rule.Identifier);
}
+ Console.WriteLine("");
+ Console.WriteLine(b.ToString());
}
}
return b.ToString();
@@ -148,6 +150,7 @@ namespace ICSharpCode.CodeAnalysis
ruleNode.isError = error;
}
}
+ /*
foreach (SharpTreeNode cat in ruleTreeView.Root.Children) {
bool noneChecked = true;
foreach (RuleTreeNode rtn in cat.Children) {
@@ -157,7 +160,7 @@ namespace ICSharpCode.CodeAnalysis
}
}
cat.IsChecked = !noneChecked;
- }
+ } */
userCheck = true;
}
@@ -190,6 +193,11 @@ namespace ICSharpCode.CodeAnalysis
ReloadRuleList();
}
+ protected override bool Save(MSBuildBasedProject project, string configuration, string platform)
+ {
+ this.CodeAnalysisRules.Value = RuleString;
+ return base.Save(project, configuration, platform);
+ }
#endregion
@@ -228,11 +236,23 @@ namespace ICSharpCode.CodeAnalysis
}
initSuccess = true;
ReadRuleString();
+ foreach (var element in ruleTreeView.Root.Children) {
+ element.PropertyChanged += delegate {
+ base.IsDirty = true;
+ };
+ }
}
}
}
- string[] GetRuleAssemblyList(bool replacePath)
+
+ private void OnPropertyChanged(object sender,System.ComponentModel.PropertyChangedEventArgs e)
+ {
+ base.IsDirty = true;
+ }
+
+
+ private string[] GetRuleAssemblyList(bool replacePath)
{
List list = new List();
string fxCopPath = FxCopWrapper.FindFxCopPath();
@@ -250,6 +270,11 @@ namespace ICSharpCode.CodeAnalysis
return list.ToArray();
}
+ private void ChangeRuleAssembliesButtonClick object sender, RoutedEventArgs e)
+ {
+
+ }
+
#endregion
@@ -258,45 +283,35 @@ namespace ICSharpCode.CodeAnalysis
class BaseTree:SharpTreeNode
{
- private Icon ruleIcon;
private int index;
- public BaseTree(IEnumerable ruleState)
+ public BaseTree(IEnumerable> ruleState)
{
this.RuleState = ruleState;
- RuleIcon = SystemIcons.Warning;
}
- public IEnumerable RuleState {get;set;}
-
+ public IEnumerable> RuleState {get;set;}
- public Icon RuleIcon {
- get { return ruleIcon; }
- set { ruleIcon = value;
- base.RaisePropertyChanged("RuleIcon");
- }
- }
-
- public int Index {
+ public virtual int Index {
get { return index; }
- set { index = value;
- switch (index) {
- case 0:
- RuleIcon = SystemIcons.Warning;
- break;
- case 1:
- RuleIcon = SystemIcons.Error;
- break;
- case 2:
- RuleIcon = null;
- break;
- default:
-
- break;
+ 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");
}
+
}
}
@@ -305,13 +320,12 @@ namespace ICSharpCode.CodeAnalysis
{
internal FxCopCategory category;
- public CategoryTreeNode(FxCopCategory category,IEnumerable bla):base(bla)
+ public CategoryTreeNode(FxCopCategory category,IEnumerable> bla):base(bla)
{
this.category = category;
foreach (FxCopRule rule in category.Rules) {
this.Children.Add(new RuleTreeNode(rule,bla));
}
-
}
@@ -348,9 +362,19 @@ namespace ICSharpCode.CodeAnalysis
class RuleTreeNode :BaseTree
{
internal FxCopRule rule;
- internal bool isError;
+// internal bool isError;
+ bool error;
+
+ internal bool isError {
+ get { return error; }
+ set { error = value;
+ if (error) {
+ base.Index = 1;
+ }
+ }
+ }
- public RuleTreeNode(FxCopRule rule,IEnumerable ruleState):base(ruleState)
+ public RuleTreeNode(FxCopRule rule,IEnumerable> ruleState):base(ruleState)
{
this.rule = rule;
}
@@ -368,6 +392,15 @@ namespace ICSharpCode.CodeAnalysis
return rule.CategoryName + "#" + rule.CheckId;
}
}
+
+ public override int Index {
+ get { return base.Index; }
+ set { base.Index = value;
+ if (Index == 1) {
+ error = true;
+ }
+ }
+ }
}
class MessageNode : SharpTreeNode
@@ -384,7 +417,9 @@ namespace ICSharpCode.CodeAnalysis
}
}
#endregion
+
}
+
[ValueConversion(typeof(System.Drawing.Icon), typeof(System.Windows.Media.ImageSource))]
public class ImageConverter : IValueConverter
diff --git a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
index 702ac12aea..0f5ac5a2a7 100644
--- a/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
+++ b/src/AddIns/Analysis/CodeCoverage/Project/CodeCoverage.csproj
@@ -19,6 +19,7 @@
v4.0
+ False
..\..\..\..\..\AddIns\Analysis\CodeCoverage\