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
this.selectMembersListBox.Items.Add(FormatMemberForDisplay(p), CheckState.Checked); this.selectMembersListBox.Items.Add(FormatMemberForDisplay(p), CheckState.Checked);
} }
} }
} foreach (IEvent classEvent in c.Events) {
if (classEvent.IsPublic && !classEvent.IsStatic) {
// TODO: i think these really belong in the model (ExtractInterfaceOptions) this.possibleInterfaceMembers.Add(classEvent);
// rather than the view's code-behind... this.selectMembersListBox.Items.Add(FormatMemberForDisplay(classEvent), CheckState.Checked);
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(" , ");
} }
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(); IAmbience ambience = options.ClassEntity.ProjectContent.Language.GetAmbience();
sb.AppendFormat("{0} {1} {{ ", p.ReturnType.Name, p.Name);
if (p.CanGet) sb.Append("get;"); if (m is IProperty)
if (p.CanSet && p.CanSet) sb.Append(" "); ambience.ConversionFlags |= ConversionFlags.IncludeBody;
if (p.CanSet) sb.Append("set;"); ambience.ConversionFlags &= ~(ConversionFlags.ShowAccessibility | ConversionFlags.ShowModifiers);
sb.Append(" }");
return sb.ToString(); return ambience.Convert(m)
.Replace('\n', ' ')
.Replace('\t', ' ')
.Replace('\r', ' ')
.Replace(" ", " ");
} }
#region Event Handlers #region Event Handlers

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

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

Loading…
Cancel
Save