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. 15
      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 @@
Margin="3" Margin="3"
Visibility="Collapsed" Visibility="Collapsed"
IsChecked="{sd:OptionBinding addin:Options.AddIEquatableInterface}" /> IsChecked="{sd:OptionBinding addin:Options.AddIEquatableInterface}" />
<CheckBox
x:Name="addOtherMethod"
Margin="3"
IsChecked="{sd:OptionBinding addin:Options.AddOtherMethod}" />
<CheckBox <CheckBox
Content="{sd:Localize AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddOperatorOverloads}" Content="{sd:Localize AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddOperatorOverloads}"
Margin="3" Margin="3"

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

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

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

@ -31,6 +31,11 @@ namespace SharpRefactoring
set { properties.Set("AddIEquatableInterface", value); } set { properties.Set("AddIEquatableInterface", value); }
} }
public static bool AddOtherMethod {
get { return properties.Get("AddOtherMethod", true); }
set { properties.Set("AddOtherMethod", value); }
}
public static bool SurroundWithRegion { public static bool SurroundWithRegion {
get { return properties.Get("SurroundWithRegion", true); } get { return properties.Get("SurroundWithRegion", true); }
set { properties.Set("SurroundWithRegion", value); } set { properties.Set("SurroundWithRegion", value); }

Loading…
Cancel
Save