Browse Source

applied patch "added support for events into Extract Interface" by Maciej Grabowsky - slightly changed FormatMemberForDisplay: replaced StringBuilder by IAmbience

pull/1/head
Siegfried Pammer 15 years ago
parent
commit
be48f3c67c
  1. 40
      src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs
  2. 6
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs

40
src/Main/Base/Project/Src/Gui/Dialogs/ExtractInterfaceDialog.cs

@ -91,33 +91,29 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -91,33 +91,29 @@ namespace ICSharpCode.SharpDevelop.Gui
this.selectMembersListBox.Items.Add(FormatMemberForDisplay(p), CheckState.Checked);
}
}
}
// TODO: i think these really belong in the model (ExtractInterfaceOptions)
// rather than the view's code-behind...
string FormatMemberForDisplay(IMethod m)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} {1} ( ", m.ReturnType.Name, m.Name);
foreach (IParameter p in m.Parameters) {
if (p != m.Parameters[0]) {
sb.Append(" , ");
foreach (IEvent classEvent in c.Events) {
if (classEvent.IsPublic && !classEvent.IsStatic) {
this.possibleInterfaceMembers.Add(classEvent);
this.selectMembersListBox.Items.Add(FormatMemberForDisplay(classEvent), CheckState.Checked);
}
sb.AppendFormat("{0} {1}", p.ReturnType.Name, p.Name);
}
sb.Append(" );");
return sb.ToString();
}
string FormatMemberForDisplay(IProperty p)
// TODO: i think these really belong in the model (ExtractInterfaceOptions)
// rather than the view's code-behind...
string FormatMemberForDisplay(IMember m)
{
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0} {1} {{ ", p.ReturnType.Name, p.Name);
if (p.CanGet) sb.Append("get;");
if (p.CanSet && p.CanSet) sb.Append(" ");
if (p.CanSet) sb.Append("set;");
sb.Append(" }");
return sb.ToString();
IAmbience ambience = options.ClassEntity.ProjectContent.Language.GetAmbience();
if (m is IProperty)
ambience.ConversionFlags |= ConversionFlags.IncludeBody;
ambience.ConversionFlags &= ~(ConversionFlags.ShowAccessibility | ConversionFlags.ShowModifiers);
return ambience.Convert(m)
.Replace('\n', ' ')
.Replace('\t', ' ')
.Replace('\r', ' ')
.Replace(" ", " ");
}
#region Event Handlers

6
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Refactoring/NRefactoryRefactoringProvider.cs

@ -116,6 +116,12 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring @@ -116,6 +116,12 @@ namespace ICSharpCode.SharpDevelop.Dom.Refactoring
p.SetRegion.Block= BlockStatement.Null;
p.Modifier = Modifiers.None;
node = p;
} else {
if (an is EventDeclaration) {
EventDeclaration e = an as EventDeclaration;
e.Modifier = Modifiers.None;
node = e;
}
}
}

Loading…
Cancel
Save