Browse Source

component rename: add special case for root component (i.e. the form or control being designed)

pull/315/head
Siegfried Pammer 12 years ago
parent
commit
89d88c7885
  1. 9
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs
  2. 5
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpFormsDesignerLoaderContext.cs
  3. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/ICSharpDesignerLoaderContext.cs

9
src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpDesignerLoader.cs

@ -216,8 +216,13 @@ namespace CSharpBinding.FormsDesigner @@ -216,8 +216,13 @@ namespace CSharpBinding.FormsDesigner
// Find designer class
ITypeDefinition designerClass = FormsDesignerSecondaryDisplayBinding.GetDesignableClass(primaryParseInfo.UnresolvedFile, compilation, out primaryPart);
ISymbol controlSymbol = designerClass.GetFields(f => f.Name == oldName, GetMemberOptions.IgnoreInheritedMembers)
.SingleOrDefault();
ISymbol controlSymbol;
if (context.IsRootComponent(component))
controlSymbol = designerClass;
else
controlSymbol = designerClass.GetFields(f => f.Name == oldName, GetMemberOptions.IgnoreInheritedMembers)
.SingleOrDefault();
if (controlSymbol != null) {
FindReferenceService.RenameSymbol(controlSymbol, newName, new DummyProgressMonitor())
.ObserveOnUIThread()

5
src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/CSharpFormsDesignerLoaderContext.cs

@ -57,6 +57,11 @@ namespace CSharpBinding.FormsDesigner @@ -57,6 +57,11 @@ namespace CSharpBinding.FormsDesigner
{
viewContent.ShowSourceCode(lineNumber);
}
public bool IsRootComponent(object component)
{
return viewContent.Host != null && viewContent.Host.RootComponent == component;
}
}
}

1
src/AddIns/BackendBindings/CSharpBinding/Project/Src/FormsDesigner/ICSharpDesignerLoaderContext.cs

@ -16,6 +16,7 @@ namespace CSharpBinding.FormsDesigner @@ -16,6 +16,7 @@ namespace CSharpBinding.FormsDesigner
CSharpFullParseInformation GetPrimaryFileParseInformation();
ICompilation GetCompilation();
IDocument GetDocument(FileName fileName);
bool IsRootComponent(object component);
void ShowSourceCode(int lineNumber = 0);
}
}

Loading…
Cancel
Save