4 changed files with 349 additions and 196 deletions
@ -0,0 +1,199 @@
@@ -0,0 +1,199 @@
|
||||
/* |
||||
* Created by SharpDevelop. |
||||
* User: Peter Forstmeier |
||||
* Date: 30.06.2012 |
||||
* Time: 20:55 |
||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
||||
*/ |
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Drawing; |
||||
|
||||
using ICSharpCode.TreeView; |
||||
|
||||
namespace ICSharpCode.CodeAnalysis |
||||
{ |
||||
/// <summary>
|
||||
/// Description of AnalysisProjectOptionsTreeNodes.
|
||||
/// </summary>
|
||||
public class BaseTree:SharpTreeNode |
||||
{ |
||||
private int index; |
||||
|
||||
public BaseTree(IEnumerable<Tuple<Icon,string,int>> ruleState) |
||||
{ |
||||
this.RuleState = ruleState; |
||||
} |
||||
|
||||
public IEnumerable<Tuple<Icon,string,int>> RuleState {get;set;} |
||||
|
||||
|
||||
public virtual int Index { |
||||
get { return index; } |
||||
set { |
||||
if (index != value) { |
||||
index = value; |
||||
switch (index) { |
||||
case 0: |
||||
break; |
||||
case 1: |
||||
break; |
||||
case 2: |
||||
break; |
||||
default: |
||||
break; |
||||
} |
||||
base.RaisePropertyChanged("Index"); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
public class CategoryTreeNode : BaseTree |
||||
{ |
||||
internal FxCopCategory category; |
||||
|
||||
public CategoryTreeNode(FxCopCategory category,IEnumerable<Tuple<Icon,string,int>> bla):base(bla) |
||||
{ |
||||
this.category = category; |
||||
foreach (FxCopRule rule in category.Rules) { |
||||
this.Children.Add(new RuleTreeNode(rule,bla)); |
||||
} |
||||
} |
||||
|
||||
|
||||
public override bool IsCheckable { |
||||
get { return true; } |
||||
} |
||||
|
||||
public override object Text { |
||||
get { return category.DisplayName; } |
||||
} |
||||
|
||||
public override int Index { |
||||
get { return base.Index; } |
||||
set { |
||||
if (value != base.Index) { |
||||
base.Index = value; |
||||
foreach (RuleTreeNode rule in this.Children) { |
||||
rule.Index = Index; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
public Nullable<bool> NewErrorState { |
||||
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 { |
||||
bool allWarn = true; |
||||
bool allErr = true; |
||||
foreach (RuleTreeNode tn in Children) { |
||||
if (tn.isError) |
||||
allWarn = false; |
||||
else |
||||
allErr = false; |
||||
} |
||||
if (allErr) |
||||
return 1; |
||||
else if (allWarn) |
||||
return 0; |
||||
else |
||||
return -1; |
||||
} |
||||
} |
||||
*/ |
||||
} |
||||
|
||||
|
||||
public class RuleTreeNode :BaseTree |
||||
{ |
||||
internal FxCopRule rule; |
||||
bool error; |
||||
|
||||
internal bool isError { |
||||
get { return error; } |
||||
set { |
||||
if (error != value) { |
||||
error = value; |
||||
if (error) { |
||||
base.Index = 1; |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
|
||||
public RuleTreeNode(FxCopRule rule,IEnumerable<Tuple<Icon,string,int>> ruleState):base(ruleState) |
||||
{ |
||||
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; |
||||
} |
||||
} |
||||
|
||||
|
||||
public override int Index { |
||||
get { return base.Index; } |
||||
set { |
||||
if (value != Index) { |
||||
if (Index == 1) { |
||||
error = true; |
||||
} else { |
||||
error = false; |
||||
} |
||||
base.Index = value; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
public class MessageNode : SharpTreeNode |
||||
{ |
||||
private string message; |
||||
|
||||
public MessageNode (string message) |
||||
{ |
||||
this.message = message; |
||||
} |
||||
|
||||
public override object Text { |
||||
get { return message; } |
||||
} |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue