From 9708c57eb6868548574282010774a4f6f83eaf22 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Mon, 6 Sep 2010 16:06:59 +0200 Subject: [PATCH] added AddOtherMethod option to OverrideEqualsGetHashCodeMethods --- .../OverrideEqualsGetHashCodeMethodsDialog.xaml | 4 ++++ ...OverrideEqualsGetHashCodeMethodsDialog.xaml.cs | 15 +++++++++++---- .../Misc/SharpRefactoring/Project/Src/Options.cs | 5 +++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml index 276597641a..4f5f25ff9f 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml @@ -18,6 +18,10 @@ Margin="3" Visibility="Collapsed" IsChecked="{sd:OptionBinding addin:Options.AddIEquatableInterface}" /> + "); + string otherMethod = selectedMethod.Name == "Equals" ? "GetHashCode" : "Equals"; + + addOtherMethod.Content = StringParser.Parse("${res:AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddOtherMethod}", new StringTagPair("otherMethod", otherMethod)); + addIEquatable.IsEnabled = !selectedClass.BaseTypes.Any( type => { if (!type.IsGenericReturnType) @@ -156,9 +160,11 @@ namespace SharpRefactoring.Gui codeForMethodBody = builder.ToString().Trim(); - if (equalsOverrides.Any()) - code.Append(indent + "\n" + string.Join("\n", equalsOverrides.Select(item => generator.GenerateCode(item, indent)))); - code.Append(indent + "\n" + generator.GenerateCode(CreateGetHashCodeOverride(currentClass), indent)); + if (addOtherMethod.IsChecked == true) { + if (equalsOverrides.Any()) + code.Append(indent + "\n" + string.Join("\n", equalsOverrides.Select(item => generator.GenerateCode(item, indent)))); + code.Append(indent + "\n" + generator.GenerateCode(CreateGetHashCodeOverride(currentClass), indent)); + } } else { StringBuilder builder = new StringBuilder(); @@ -168,7 +174,8 @@ namespace SharpRefactoring.Gui codeForMethodBody = builder.ToString().Trim(); - code.Append(indent + "\n" + string.Join("\n", CreateEqualsOverrides(currentClass).Select(item => generator.GenerateCode(item, indent)))); + if (addOtherMethod.IsChecked == true) + code.Append(indent + "\n" + string.Join("\n", CreateEqualsOverrides(currentClass).Select(item => generator.GenerateCode(item, indent)))); } if (Options.AddOperatorOverloads) { diff --git a/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs b/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs index 36d93606cd..de8bfb0479 100644 --- a/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs +++ b/src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs @@ -31,6 +31,11 @@ namespace SharpRefactoring set { properties.Set("AddIEquatableInterface", value); } } + public static bool AddOtherMethod { + get { return properties.Get("AddOtherMethod", true); } + set { properties.Set("AddOtherMethod", value); } + } + public static bool SurroundWithRegion { get { return properties.Get("SurroundWithRegion", true); } set { properties.Set("SurroundWithRegion", value); }