|
|
|
@ -28,7 +28,6 @@ using Microsoft.VisualBasic;
@@ -28,7 +28,6 @@ using Microsoft.VisualBasic;
|
|
|
|
|
using ICSharpCode.Core; |
|
|
|
|
using ICSharpCode.FormDesigner.Services; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace ICSharpCode.FormDesigner |
|
|
|
|
{ |
|
|
|
|
/// <summary>
|
|
|
|
@ -77,6 +76,7 @@ namespace ICSharpCode.FormDesigner
@@ -77,6 +76,7 @@ namespace ICSharpCode.FormDesigner
|
|
|
|
|
|
|
|
|
|
void GenerateComponentCode(IComponent component, TextWriter writer, DesignerSerializationManager serializationManager) |
|
|
|
|
{ |
|
|
|
|
LoggingService.Debug("Generate code for: " + component.Site.Name); |
|
|
|
|
Type componentType = component.GetType(); |
|
|
|
|
ExpressionContext exprContext = new ExpressionContext(new CodeThisReferenceExpression(), componentType, component, component); |
|
|
|
|
((IDesignerSerializationManager)serializationManager).Context.Append(exprContext); |
|
|
|
@ -96,13 +96,26 @@ namespace ICSharpCode.FormDesigner
@@ -96,13 +96,26 @@ namespace ICSharpCode.FormDesigner
|
|
|
|
|
foreach (CodeStatement statement in statements) { |
|
|
|
|
CodeVariableDeclarationStatement variableDecl = statement as CodeVariableDeclarationStatement; |
|
|
|
|
if (variableDecl != null) { |
|
|
|
|
LoggingService.Debug("variable declaration: " + variableDecl.Name); |
|
|
|
|
if (variableDecl.Name == "resources") { |
|
|
|
|
FixResourcesVariableDeclarationStatement(variableDecl); |
|
|
|
|
} else { |
|
|
|
|
// skip generating the variable declaration if the component is a main
|
|
|
|
|
// component that gets its own field
|
|
|
|
|
// TreeNode is an example that does NOT get its own root component!
|
|
|
|
|
bool foundComponent = false; |
|
|
|
|
foreach (IComponent c in host.Container.Components) { |
|
|
|
|
if (variableDecl.Name == c.Site.Name) { |
|
|
|
|
foundComponent = true; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (foundComponent) { |
|
|
|
|
addedVariables.Add(((CodeVariableDeclarationStatement)statement).Name); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// indentation isn't generated when calling GenerateCodeFromStatement
|
|
|
|
|
writer.Write(options.IndentString); |
|
|
|
@ -113,6 +126,7 @@ namespace ICSharpCode.FormDesigner
@@ -113,6 +126,7 @@ namespace ICSharpCode.FormDesigner
|
|
|
|
|
codeProvider.GenerateCodeFromStatement(new CodeCommentStatement("TODO: Error while generating statement : " + e.Message), |
|
|
|
|
writer, |
|
|
|
|
options); |
|
|
|
|
LoggingService.Error(e); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|