Browse Source

added AddOtherMethod option to OverrideEqualsGetHashCodeMethods

pull/1/head
Siegfried Pammer 15 years ago
parent
commit
9708c57eb6
  1. 4
      src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml
  2. 7
      src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml.cs
  3. 5
      src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs

4
src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml

@ -18,6 +18,10 @@ @@ -18,6 +18,10 @@
Margin="3"
Visibility="Collapsed"
IsChecked="{sd:OptionBinding addin:Options.AddIEquatableInterface}" />
<CheckBox
x:Name="addOtherMethod"
Margin="3"
IsChecked="{sd:OptionBinding addin:Options.AddOtherMethod}" />
<CheckBox
Content="{sd:Localize AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddOperatorOverloads}"
Margin="3"

7
src/AddIns/Misc/SharpRefactoring/Project/Src/Gui/OverrideEqualsGetHashCodeMethodsDialog.xaml.cs

@ -43,6 +43,10 @@ namespace SharpRefactoring.Gui @@ -43,6 +43,10 @@ namespace SharpRefactoring.Gui
addIEquatable.Content = string.Format(StringParser.Parse("${res:AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddInterface}"),
"IEquatable<" + selectedClass.Name + ">");
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 @@ -156,9 +160,11 @@ namespace SharpRefactoring.Gui
codeForMethodBody = builder.ToString().Trim();
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,6 +174,7 @@ namespace SharpRefactoring.Gui @@ -168,6 +174,7 @@ namespace SharpRefactoring.Gui
codeForMethodBody = builder.ToString().Trim();
if (addOtherMethod.IsChecked == true)
code.Append(indent + "\n" + string.Join("\n", CreateEqualsOverrides(currentClass).Select(item => generator.GenerateCode(item, indent))));
}

5
src/AddIns/Misc/SharpRefactoring/Project/Src/Options.cs

@ -31,6 +31,11 @@ namespace SharpRefactoring @@ -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); }

Loading…
Cancel
Save