Browse Source

Fixed forum-18481: Problem with Boo Forms Designer when using TableLayoutPanel

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2661 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
8675624e3c
  1. 6
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs
  2. 9
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs
  3. 11
      src/Libraries/NRefactory/Project/Src/Visitors/CodeDOMVerboseOutputGenerator.cs

6
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/BooDesignerLoader.cs

@ -30,7 +30,6 @@ namespace Grunwald.BooBinding.Designer
IDesignerLoaderHost designerLoaderHost = null; IDesignerLoaderHost designerLoaderHost = null;
IDesignerGenerator generator; IDesignerGenerator generator;
ITypeResolutionService typeResolutionService = null; ITypeResolutionService typeResolutionService = null;
CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
TextEditorControl textEditorControl; TextEditorControl textEditorControl;
@ -54,7 +53,7 @@ namespace Grunwald.BooBinding.Designer
protected override CodeDomProvider CodeDomProvider { protected override CodeDomProvider CodeDomProvider {
get { get {
return provider; return generator.CodeDomProvider;
} }
} }
@ -182,7 +181,8 @@ namespace Grunwald.BooBinding.Designer
// output generated CodeDOM to the console : // output generated CodeDOM to the console :
ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator outputGenerator = new ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator(); ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator outputGenerator = new ICSharpCode.NRefactory.Visitors.CodeDomVerboseOutputGenerator();
outputGenerator.GenerateCodeFromMember(visitor.OutputCompileUnit.Namespaces[0].Types[0], Console.Out, null); outputGenerator.GenerateCodeFromMember(visitor.OutputCompileUnit.Namespaces[0].Types[0], Console.Out, null);
provider.GenerateCodeFromCompileUnit(visitor.OutputCompileUnit, Console.Out, null); CodeDomProvider cSharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
cSharpProvider.GenerateCodeFromCompileUnit(visitor.OutputCompileUnit, Console.Out, null);
#endif #endif
return visitor.OutputCompileUnit; return visitor.OutputCompileUnit;

9
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs

@ -333,7 +333,10 @@ namespace Grunwald.BooBinding.Designer
public override void OnIntegerLiteralExpression(IntegerLiteralExpression node) public override void OnIntegerLiteralExpression(IntegerLiteralExpression node)
{ {
_expression = new CodePrimitiveExpression(node.Value); if (node.IsLong || node.Value < int.MinValue || node.Value > int.MaxValue)
_expression = new CodePrimitiveExpression(node.Value);
else
_expression = new CodePrimitiveExpression((int)node.Value);
} }
public override void OnDoubleLiteralExpression(DoubleLiteralExpression node) public override void OnDoubleLiteralExpression(DoubleLiteralExpression node)
@ -443,7 +446,7 @@ namespace Grunwald.BooBinding.Designer
if (me.IsStatic == isStatic && me.Name == name) { if (me.IsStatic == isStatic && me.Name == name) {
_fieldReferenceType = me.ReturnType; _fieldReferenceType = me.ReturnType;
CodeMethodReferenceExpression cmre = new CodeMethodReferenceExpression(target, name); CodeMethodReferenceExpression cmre = new CodeMethodReferenceExpression(target, name);
cmre.UserData["method"] = me; cmre.UserData["methodUserData"] = me;
return cmre; return cmre;
} }
} }
@ -500,7 +503,7 @@ namespace Grunwald.BooBinding.Designer
/// </summary> /// </summary>
void FixArrayArguments(CodeMethodInvokeExpression cmie) void FixArrayArguments(CodeMethodInvokeExpression cmie)
{ {
IMethod m = cmie.Method.UserData["method"] as IMethod; IMethod m = cmie.Method.UserData["methodUserData"] as IMethod;
if (m != null) { if (m != null) {
int count = Math.Min(m.Parameters.Count, cmie.Parameters.Count); int count = Math.Min(m.Parameters.Count, cmie.Parameters.Count);
for (int i = 0; i < count; i++) { for (int i = 0; i < count; i++) {

11
src/Libraries/NRefactory/Project/Src/Visitors/CodeDOMVerboseOutputGenerator.cs

@ -314,6 +314,17 @@ namespace ICSharpCode.NRefactory.Visitors
Output.WriteLine("[CodeAttributeDeclarationCollection: {0}]", attributes.ToString()); Output.WriteLine("[CodeAttributeDeclarationCollection: {0}]", attributes.ToString());
} }
protected override void GeneratePrimitiveExpression(CodePrimitiveExpression e)
{
if (e.Value == null) {
Output.WriteLine("[CodePrimitiveExpression: null]");
} else {
Output.Write("[CodePrimitiveExpression: ");
base.GeneratePrimitiveExpression(e);
Output.WriteLine(" (" + e.Value.GetType().Name + ")]");
}
}
protected override bool Supports(GeneratorSupport support) protected override bool Supports(GeneratorSupport support)
{ {
return true; return true;

Loading…
Cancel
Save