Browse Source

Remove unused PropertyChangedEvents

pull/30/head
PeterForstmeier 14 years ago
parent
commit
b0dd16be57
  1. 92
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml
  2. 118
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs
  3. 117
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

92
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml

@ -8,63 +8,6 @@
xmlns:tv="http://icsharpcode.net/sharpdevelop/treeview" xmlns:tv="http://icsharpcode.net/sharpdevelop/treeview"
xmlns:local="clr-namespace:ICSharpCode.CodeAnalysis" xmlns:local="clr-namespace:ICSharpCode.CodeAnalysis"
xmlns:core="http://icsharpcode.net/sharpdevelop/core"> xmlns:core="http://icsharpcode.net/sharpdevelop/core">
<optionpanels:ProjectOptionPanel.Resources>
<local:ImageConverter x:Key="imageConverter"></local:ImageConverter>
<DataTemplate x:Key="comboTemplate">
<ComboBox Background="Transparent" Width="100"
HorizontalAlignment="Center" VerticalAlignment="Center"
ItemsSource="{Binding Path=RuleState}"
SelectedItem="{Binding SelectedNode}"
IsReadOnly="False"
SelectionChanged="ComboBox_SelectionChanged"
SelectedIndex="{Binding Index}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding Item1,
Converter={StaticResource imageConverter}}"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DataTemplate>
<!--<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListViewItem}}, Path=IsSelected}" Value="True">
<Setter TargetName="MyGrid" Property="Background" Value="Red" />
</DataTrigger>
</DataTemplate.Triggers>-->
<!-- <DataTemplate x:Key="txtTemplate">
<StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding MixedModeIcon}"></Image>
<TextBlock Text="{Binding MixedModeText}"></TextBlock>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ListViewItem}}, Path=IsSelected}" Value="True">
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
-->
<!-- <local:TypeSelector x:Key="TypeSelector" ComboTemplate="{StaticResource comboTemplate}"
TxtTemplate="{StaticResource txtTemplate}"></local:TypeSelector>-->
</optionpanels:ProjectOptionPanel.Resources>
<ScrollViewer VerticalScrollBarVisibility="Auto"> <ScrollViewer VerticalScrollBarVisibility="Auto">
<Grid > <Grid >
@ -92,7 +35,7 @@
Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly}"></Button> Content="{core:Localize ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly}"></Button>
<tv:SharpTreeView x:Name="ruleTreeView" ShowRoot="False" ShowLines="False" IsSynchronizedWithCurrentItem="True" <tv:SharpTreeView x:Name="ruleTreeView" ShowRoot="False" ShowLines="False" IsSynchronizedWithCurrentItem="True"
Grid.Row="2" Grid.ColumnSpan="3" SelectedItem="{Binding SelectedNode}"> Grid.Row="2" Grid.ColumnSpan="3">
<ListView.View> <ListView.View>
<tv:SharpGridView > <tv:SharpGridView >
@ -104,34 +47,24 @@
</DataTemplate> </DataTemplate>
</GridViewColumn.CellTemplate> </GridViewColumn.CellTemplate>
</GridViewColumn> </GridViewColumn>
<!-- http://finercode.net/2012/06/05/using-a-different-datatemplate-when-a-wpf-combobox-is-expanded/ -->
<!-- <GridViewColumn Header="Action"
CellTemplateSelector="{StaticResource TypeSelector}">
</GridViewColumn>-->
<!-- </tv:SharpGridView.Columns>-->
<GridViewColumn Header="Action" x:Name="xxx"> <GridViewColumn Header="Action">
<GridViewColumn.CellTemplate> <GridViewColumn.CellTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<ComboBox Background="Transparent" Width="100" <ComboBox Background="Transparent" Width="100"
HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Center"
ItemsSource="{Binding Path=RuleState}" ItemsSource="{Binding Path=RuleState}"
IsSynchronizedWithCurrentItem="True"
IsReadOnly="False" IsReadOnly="False"
SelectedIndex="{Binding Index}"> SelectedIndex="{Binding Index}">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<StackPanel Orientation="Horizontal"> <StackPanel Orientation="Horizontal">
<Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0" <Image VerticalAlignment="Center" Height="15" Margin="3,0,5,0"
Source="{Binding Item1, Source="{Binding Item1}"></Image>
Converter={StaticResource imageConverter}}"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock> <TextBlock VerticalAlignment="Center" Text="{Binding Item2}"></TextBlock>
</StackPanel> </StackPanel>
@ -139,22 +72,11 @@
</DataTemplate> </DataTemplate>
</ComboBox.ItemTemplate> </ComboBox.ItemTemplate>
</ComboBox> </ComboBox>
<TextBlock Text="{Binding Index}" ></TextBlock>
</StackPanel> </StackPanel>
</DataTemplate> </DataTemplate>
</GridViewColumn.CellTemplate> </GridViewColumn.CellTemplate>
</GridViewColumn> </GridViewColumn>
<GridViewColumn Header="test"> </tv:SharpGridView.Columns>
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Index}"></TextBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</tv:SharpGridView.Columns>
</tv:SharpGridView> </tv:SharpGridView>
</ListView.View> </ListView.View>

118
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanelXaml.xaml.cs

@ -144,43 +144,32 @@ namespace ICSharpCode.CodeAnalysis
} }
} }
userCheck = true; userCheck = true;
// SetCategoryIcon();
SetCategoryIcon(); SetCategoryIcon();
} }
/*
void oldSetCategoryIcon()
{
foreach (CategoryTreeNode element in ruleTreeView.Root.Children) {
Console.WriteLine(" {0} - errorstate {1}",element.Text, element.ErrorState.ToString());
if (element.ErrorState > -1) {
element.Index = element.ErrorState;
}
Console.WriteLine("-------------------------");
}
}
*/
void SetCategoryIcon() { void SetCategoryIcon() {
Console.WriteLine("SetCategoryicon");
foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) { foreach (CategoryTreeNode categoryNode in ruleTreeView.Root.Children) {
// Console.WriteLine(" {0} ",element.Text); categoryNode.CheckMode();
/*
if (!categoryNode.NewErrorState.HasValue) { if (!categoryNode.NewErrorState.HasValue) {
Console.WriteLine (" {0} is Mixed Mode",categoryNode.Text); Console.WriteLine ("\t{0} is Mixed Mode",categoryNode.Text);
categoryNode.AddMixedMode(); categoryNode.AddMixedMode();
} else{ } else{
if (categoryNode.NewErrorState == true) { if (categoryNode.NewErrorState == true) {
Console.WriteLine (" {0} is Error",categoryNode.Text); Console.WriteLine ("\t{0} is Error",categoryNode.Text);
categoryNode.Index = 1; // categoryNode.Index = 1;
} else { } else {
Console.WriteLine (" {0} is Warning",categoryNode.Text); Console.WriteLine ("\t{0} is Warning",categoryNode.Text);
// categoryNode.Index = ;
} }
} }
*/
} }
Console.WriteLine("--------------"); Console.WriteLine("--------------");
} }
string ruleString = ""; string ruleString = "";
@ -219,7 +208,6 @@ namespace ICSharpCode.CodeAnalysis
#endregion #endregion
#region RuleList #region RuleList
void ReloadRuleList() void ReloadRuleList()
@ -254,7 +242,6 @@ namespace ICSharpCode.CodeAnalysis
rules[ruleNode.Identifier] = ruleNode; rules[ruleNode.Identifier] = ruleNode;
} }
} }
ReadRuleString(); ReadRuleString();
initSuccess = true; initSuccess = true;
} }
@ -265,16 +252,18 @@ namespace ICSharpCode.CodeAnalysis
private void OnPropertyChanged(object sender,System.ComponentModel.PropertyChangedEventArgs e) private void OnPropertyChanged(object sender,System.ComponentModel.PropertyChangedEventArgs e)
{ {
if (initSuccess) { if (initSuccess) {
base.IsDirty = true; Console.WriteLine("OnPropertyChanged {0}",e.PropertyName);
if (e.PropertyName == "Index") { if (e.PropertyName == "Index") {
RuleTreeNode r = sender as RuleTreeNode; base.IsDirty = true;
if (r != null) { // var rule = sender as RuleTreeNode;
var p = r.Parent; // if (rule != null) {
if (p != null) { // var cat = rule.Parent as CategoryTreeNode;
SetCategoryIcon(); // if (cat != null) {
} // cat.CheckMode();
} // }
// }
} }
} }
} }
@ -321,73 +310,8 @@ namespace ICSharpCode.CodeAnalysis
} }
} }
void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// throw new NotImplementedException();
}
#endregion #endregion
}
public class TypeSelector : DataTemplateSelector
{
public DataTemplate ComboTemplate { get; set; }
public DataTemplate TxtTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
Console.WriteLine ("------- TypeSelector ---------");
var rule = item as RuleTreeNode;
if (rule != null) {
return ComboTemplate;
}
var cat = item as CategoryTreeNode;
if (cat != null) {
if (!cat.NewErrorState.HasValue) {
//Mixed Mode
return TxtTemplate;
} else {
//All childs has same value
return ComboTemplate;
}
}
return ComboTemplate;
}
}
[ValueConversion(typeof(System.Drawing.Icon), typeof(System.Windows.Media.ImageSource))]
public class ImageConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
// empty images are empty...
if (value == null) { return null; }
var image = (System.Drawing.Icon)value;
// Winforms Image we want to get the WPF Image from...
var bitmap = new System.Windows.Media.Imaging.BitmapImage();
bitmap.BeginInit();
MemoryStream memoryStream = new MemoryStream();
// Save to a memory stream...
image.Save(memoryStream);
// Rewind the stream...
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
bitmap.StreamSource = memoryStream;
bitmap.EndInit();
return bitmap;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return null;
}
} }
} }

117
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

@ -26,16 +26,42 @@ namespace ICSharpCode.CodeAnalysis
public class BaseTree:SharpTreeNode public class BaseTree:SharpTreeNode
{ {
private int index; private int index;
public BaseTree() public BaseTree()
{ {
RuleState = new ObservableCollection<Tuple<Icon,string>>(); RuleState = new ObservableCollection<Tuple<ImageSource,string>>();
this.RuleState.Add(Tuple.Create<Icon,string>(SystemIcons.Warning,ResourceService.GetString("Global.WarningText")));
this.RuleState.Add(Tuple.Create<Icon,string>(SystemIcons.Error,ResourceService.GetString("Global.ErrorText"))); Icon icon = SystemIcons.Warning;
ImageSource imageSource = ToImageSource(icon);
this.RuleState.Add(Tuple.Create<ImageSource,string>(imageSource,
ResourceService.GetString("Global.WarningText")));
icon = SystemIcons.Error;
imageSource = ToImageSource(icon);
this.RuleState.Add(Tuple.Create<ImageSource,string>(imageSource,
ResourceService.GetString("Global.ErrorText")));
// bla.Add(Tuple.Create<Icon,string>(null,"None")); // bla.Add(Tuple.Create<Icon,string>(null,"None"));
} }
public ObservableCollection<Tuple<Icon,string>> RuleState {get;set;} 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;
}
public ObservableCollection<Tuple<ImageSource,string>> RuleState {get;set;}
private Tuple<Icon,string> selectedItem; private Tuple<Icon,string> selectedItem;
@ -48,10 +74,7 @@ namespace ICSharpCode.CodeAnalysis
public virtual int Index { public virtual int Index {
get { return index; } get { return index; }
set { set {
if (index != value) { index = value;
index = value;
}
base.RaisePropertyChanged("Index");
} }
} }
} }
@ -61,7 +84,7 @@ namespace ICSharpCode.CodeAnalysis
public class CategoryTreeNode : BaseTree public class CategoryTreeNode : BaseTree
{ {
internal FxCopCategory category; internal FxCopCategory category;
private Tuple<Icon,string> mixedTuple; private Tuple<ImageSource,string> mixedModeTuple;
public CategoryTreeNode(FxCopCategory category):base() public CategoryTreeNode(FxCopCategory category):base()
{ {
@ -71,6 +94,7 @@ namespace ICSharpCode.CodeAnalysis
this.Children.Add(new RuleTreeNode(rule)); this.Children.Add(new RuleTreeNode(rule));
} }
CheckMode();
} }
@ -87,28 +111,65 @@ namespace ICSharpCode.CodeAnalysis
set { set {
if (value != base.Index) { if (value != base.Index) {
base.Index = value; base.Index = value;
if (mixedTuple == null) { if (mixedModeTuple == null) {
Console.WriteLine("Set all to index");
foreach (RuleTreeNode rule in this.Children) { foreach (RuleTreeNode rule in this.Children) {
rule.Index = Index; rule.Index = Index;
} }
base.RaisePropertyChanged("Index");
} }
} }
} }
} }
public void AddMixedMode() private void AddMixedMode()
{ {
Bitmap b = (Bitmap)ResourceService.GetImageResource("Icons.16x16.ClosedFolderBitmap"); Console.WriteLine("AddMixedMode");
System.Drawing.Icon ico = (Icon)System.Drawing.Icon.FromHandle(b.GetHicon()); if (!RuleState.Contains(mixedModeTuple)) {
var image = PresentationResourceService.GetBitmapSource("Icons.16x16.ClosedFolderBitmap");
mixedTuple = Tuple.Create<Icon,string>(ico, mixedModeTuple = Tuple.Create<ImageSource,string>(image,
StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}")); StringParser.Parse("${res:ICSharpCode.CodeAnalysis.ProjectOptions.WarningErrorMixed}"));
RuleState.Add(mixedTuple); RuleState.Add(mixedModeTuple);
Index = RuleState.Count -1; Index = RuleState.Count -1;
base.RaisePropertyChanged("Index");
CheckMode();
}
} }
private void RemoveMixedMode()
{
Console.WriteLine("RemoveMixedMode(");
if (mixedModeTuple != null) {
if (RuleState.Contains(mixedModeTuple)) {
RuleState.Remove(mixedModeTuple);
mixedModeTuple = null;
base.RaisePropertyChanged("Index");
CheckMode();
}
}
}
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);
// categoryNode.Index = ;
}
}
}
public Nullable<bool> NewErrorState { public Nullable<bool> NewErrorState {
get { get {
bool allWarn = true; bool allWarn = true;
@ -160,13 +221,7 @@ namespace ICSharpCode.CodeAnalysis
internal bool isError { internal bool isError {
get { return error; } get { return error; }
set { set {
if (error != value) { error = value;
error = value;
if (error) {
base.Index = 1;
}
}
} }
} }
@ -197,12 +252,8 @@ namespace ICSharpCode.CodeAnalysis
if (base.Index != value) { if (base.Index != value) {
isError = value == 1; isError = value == 1;
base.Index = value; base.Index = value;
var p = Parent as CategoryTreeNode;
// if (base.Index == 1) { p.CheckMode();
// error = true;
// } else {
// error = false;
// }
Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError); Console.WriteLine ("RuleNode {0} - index {1} - error {2}",rule.DisplayName,Index, isError);
} }
} }

Loading…
Cancel
Save