adding <script> within generated .html [FIXED]

GWT Designer allows you to quickly create the modules, composites, panels, remote services and other elements that comprise Google Web Tookit applications.

Moderators: Konstantin.Scheglov, gnebling, Alexander.Mitin, jwren, Eric Clayberg

adding <script> within generated .html [FIXED]

Postby peterblazejewicz » Wed Nov 07, 2007 2:38 pm

hi,

adding <script> tag (even empty one) within head or body of source .html page generates NullPointerException in Design view,

steps to recreate:

#1
create default project using new GWT project wizard with default module generated

#2
generated source files:

.html
Code: Select all
<html>
   <head>
   
      <!--                                           -->
      <!-- Any title is fine                         -->
      <!--                                           -->
      <title>Wrapper HTML for TestScriptTag</title>

      <!--                                           -->
      <!-- The module reference below is the link    -->
      <!-- between html and your Web Toolkit module  -->      
      <!--                                           -->
      <meta name='gwt:module' content='com.mycompany.project.TestScriptTag'/>

      <!--                                           -->
      <!-- Link CSS file                             -->
      <!--                                           -->
      <link type="text/css" rel='stylesheet' href='TestScriptTag.css'/>   
   </head>

   <!--                                           -->
   <!-- The body can have arbitrary html, or      -->
   <!-- we leave the body empty because we want   -->
   <!-- to create a completely dynamic ui         -->
   <!--                                           -->
   <body>

      <!--                                            -->
      <!-- This script is required bootstrap stuff.   -->
      <!-- You can put it in the HEAD, but startup    -->
      <!-- is slightly faster if you include it here. -->
      <!--                                            -->
      <script language="javascript" src="com.mycompany.project.TestScriptTag.nocache.js"></script>

      <!-- OPTIONAL: include this if you want history support -->
      <iframe id="__gwt_historyFrame" style="width:0;height:0;border:0"></iframe>

   </body>
</html>


generated entry point:
Code: Select all
package com.mycompany.project.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Widget;

/**
* Entry point classes define <code>onModuleLoad()</code>.
*/
public class TestScriptTag implements EntryPoint {
   private Button clickMeButton;
   public void onModuleLoad() {
      RootPanel rootPanel = RootPanel.get();

      clickMeButton = new Button();
      rootPanel.add(clickMeButton);
      clickMeButton.setText("Click me!");
      clickMeButton.addClickListener(new ClickListener() {
         public void onClick(Widget sender) {
            Window.alert("Hello, GWT World!");
         }
      });
   }
}


#3
now try to add "script" tag within head or body:
Code: Select all
   <head>
   
      <!--                                           -->
      <!-- Any title is fine                         -->
      <!--                                           -->
      <title>Wrapper HTML for TestScriptTag</title>

      <!--                                           -->
      <!-- The module reference below is the link    -->
      <!-- between html and your Web Toolkit module  -->      
      <!--                                           -->
      <meta name='gwt:module' content='com.mycompany.project.TestScriptTag'/>

      <!--                                           -->
      <!-- Link CSS file                             -->
      <!--                                           -->
      <link type="text/css" rel='stylesheet' href='TestScriptTag.css'/>
      <!-- custom script -->
      <script type="text/javascript"></script>      
   </head>


#4
switch to design view and click refresh

#5
stack trace:
Code: Select all
Stack trace:
java.lang.NullPointerException
   at com.swtdesigner.gwt.model.widgets.support.GWTState.getCSSDeclarations(GWTState.java:286)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:104)
   at com.swtdesigner.gwt.support.browser.ie.GWTStateIE6.<init>(GWTStateIE6.java:28)
   at com.swtdesigner.gwt.support.browser.ie.BrowserSupportFactory.createState(BrowserSupportFactory.java:12)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.createState(GWTState.java:1470)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:181)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:63)
   at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:50)
   at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:35)
   at com.swtdesigner.gwt.model.widgets.panel.PanelInfo.<init>(PanelInfo.java:25)
   at com.swtdesigner.gwt.model.widgets.panel.ComplexPanelInfo.<init>(ComplexPanelInfo.java:23)
   at com.swtdesigner.gwt.model.widgets.panel.AbsolutePanelInfo.<init>(AbsolutePanelInfo.java:36)
   at com.swtdesigner.gwt.model.widgets.panel.RootPanelInfo.<init>(RootPanelInfo.java:23)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:152)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:112)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:95)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:88)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3766)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.endVisit(JavaInfoParser.java:1885)
   at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:246)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
   at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:224)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.VariableDeclarationStatement.accept0(VariableDeclarationStatement.java:272)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.Block.accept0(Block.java:135)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
   at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:501)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:3003)
   at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at com.swtdesigner.model.parser.JavaInfoParser.parse(JavaInfoParser.java:320)
   at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1136)
   at com.swtdesigner.gef.DesignerEditor.refreshDesignView(DesignerEditor.java:1222)
   at com.swtdesigner.gef.DesignerEditor$14.widgetSelected(DesignerEditor.java:954)
   at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
   at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
   at org.eclipse.equinox.launcher.Main.run(Main.java:1173)

Full stack trace (to see full context):
org.apache.commons.lang.exception.NestableError: org.apache.commons.lang.exception.NestableError: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3777)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.endVisit(JavaInfoParser.java:1885)
   at org.eclipse.jdt.core.dom.MethodInvocation.accept0(MethodInvocation.java:246)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
   at org.eclipse.jdt.core.dom.VariableDeclarationFragment.accept0(VariableDeclarationFragment.java:224)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.VariableDeclarationStatement.accept0(VariableDeclarationStatement.java:272)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.Block.accept0(Block.java:135)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChild(ASTNode.java:2523)
   at org.eclipse.jdt.core.dom.MethodDeclaration.accept0(MethodDeclaration.java:501)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:3003)
   at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:466)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:2546)
   at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:213)
   at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:2476)
   at com.swtdesigner.model.parser.JavaInfoParser.parse(JavaInfoParser.java:320)
   at com.swtdesigner.gef.DesignerEditor.parseCompilationUnit(DesignerEditor.java:1136)
   at com.swtdesigner.gef.DesignerEditor.refreshDesignView(DesignerEditor.java:1222)
   at com.swtdesigner.gef.DesignerEditor$14.widgetSelected(DesignerEditor.java:954)
   at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:227)
   at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
   at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3682)
   at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3293)
   at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389)
   at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
   at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219)
   at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
   at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289)
   at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461)
   at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
   at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106)
   at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106)
   at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363)
   at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508)
   at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447)
   at org.eclipse.equinox.launcher.Main.run(Main.java:1173)
Caused by: org.apache.commons.lang.exception.NestableError: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:118)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:95)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:88)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.isComponentCreation(JavaInfoParser.java:3766)
   ... 50 more
Caused by: com.swtdesigner.properties.PropertyException: java.lang.reflect.InvocationTargetException
   at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:160)
   at com.swtdesigner.model.parser.factory.JavaInfoFactory.create(JavaInfoFactory.java:112)
   ... 53 more
Caused by: java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:152)
   ... 54 more
Caused by: org.apache.commons.lang.exception.NestableError: java.lang.NullPointerException
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:396)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:181)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:63)
   at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:50)
   at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:35)
   at com.swtdesigner.gwt.model.widgets.panel.PanelInfo.<init>(PanelInfo.java:25)
   at com.swtdesigner.gwt.model.widgets.panel.ComplexPanelInfo.<init>(ComplexPanelInfo.java:23)
   at com.swtdesigner.gwt.model.widgets.panel.AbsolutePanelInfo.<init>(AbsolutePanelInfo.java:36)
   at com.swtdesigner.gwt.model.widgets.panel.RootPanelInfo.<init>(RootPanelInfo.java:23)
   ... 59 more
Caused by: java.lang.NullPointerException
   at com.swtdesigner.gwt.model.widgets.support.GWTState.getCSSDeclarations(GWTState.java:286)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:104)
   at com.swtdesigner.gwt.support.browser.ie.GWTStateIE6.<init>(GWTStateIE6.java:28)
   at com.swtdesigner.gwt.support.browser.ie.BrowserSupportFactory.createState(BrowserSupportFactory.java:12)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.createState(GWTState.java:1470)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
   ... 67 more




System: Windows XP
GWT: 1.4.60
GWT Designer:
Code: Select all
Product: GWT Designer Subscription
Version: 3.0.0 [20071028031434]
Expected: Eclipse 3.3
Actual: Eclipse 3.3.100.v20070530
Actual Eclipse Build Name:
Actual Eclipse Build ID: M20070921-1145
IDE Actual Name: Eclipse SDK
IDE Actual Version: 3.3.1.r331_v20070904



sadly above stops me from testing javascript bindings :(

regards,
Peter
Last edited by peterblazejewicz on Tue Nov 13, 2007 7:21 pm, edited 1 time in total.
Peter Blazejewicz
GWT groups profile
peterblazejewicz
 
Posts: 153
Joined: Fri Jul 27, 2007 7:09 pm
Location: Europe/Poland/Warsaw

Postby peterblazejewicz » Wed Nov 07, 2007 2:46 pm

hi guys,

workaround: put everything into external .js (javascript) file and use "src" attribute,

Code: Select all
<script type="javascript" src="config.js"></script>


however I want to use inlined script without using external source,
it is required for simulating server side code injection into hosting page,

regards,
Peter
Peter Blazejewicz
GWT groups profile
peterblazejewicz
 
Posts: 153
Joined: Fri Jul 27, 2007 7:09 pm
Location: Europe/Poland/Warsaw

Postby Eric Clayberg » Mon Nov 12, 2007 8:09 pm

Give this another try with the latest build.

We now add the content between <script> and </script> as-is, so we should now support both external and inline scripts.
Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA

Postby peterblazejewicz » Tue Nov 13, 2007 11:24 am

thanks Eric,
will test and report,
regards,
Peter
Peter Blazejewicz
GWT groups profile
peterblazejewicz
 
Posts: 153
Joined: Fri Jul 27, 2007 7:09 pm
Location: Europe/Poland/Warsaw

adding <script> within generated .html [FIXED]

Postby peterblazejewicz » Tue Nov 13, 2007 7:21 pm

hi Eric,
this is fixed,

build used:
Product: GWT Designer Subscription
Version: 3.0.0 [20071113070733]
Expected: Eclipse 3.3
Actual: Eclipse 3.3.100.v20070530


regards,
Peter
Peter Blazejewicz
GWT groups profile
peterblazejewicz
 
Posts: 153
Joined: Fri Jul 27, 2007 7:09 pm
Location: Europe/Poland/Warsaw

Re: adding <script> within generated .html [FIXED]

Postby Eric Clayberg » Thu Nov 15, 2007 8:51 pm

Very good.
Eric Clayberg
Software Engineering Manager
Google
http://code.google.com/webtoolkit/download.html

Author: "Eclipse Plug-ins"
http://www.qualityeclipse.com
Eric Clayberg
Moderator
 
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA


Return to GWT Designer

Who is online

Users browsing this forum: No registered users and 3 guests