Sharable Widget Library

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

Sharable Widget Library

Postby markfaine » Tue Apr 15, 2008 7:48 am

I followed the directions for creating a sharable widget library :
http://download.instantiations.com/DesignerDoc/integration/latest/docs/html/gwt/gwt_project_creation.html

Now I'd like to create some composites that I could later user in other projects. However, I'm not sure how to begin. I thought that all I need to do is start with New->Designer->GWT->Composite but this doesn't work (at least not in Design mode). Apparently I need to create a module and an associated EntryPoint but doesn't that defeat the purpose of a sharable widget library, at that point it would really become an application itself?

I guess I"m asking what the minimum requirements to start developing composite widgets for use in full projects?

Thanks,
-Mark
markfaine
 
Posts: 4
Joined: Tue Apr 15, 2008 7:40 am

Re: Sharable Widget Library

Postby peterblazejewicz » Tue Apr 15, 2008 11:12 am

hi Mark,

you don't need to create entry point in such GWTD project,

You can do following (that will be re-write of steps I usually do in GWTD):
#1
create new project:
#2
uncheck "Create Entry point and public resoruces".
#3
[#########]
now look into GWT tookit sources to see how they separate modules and what are namespace names used, I usually follow GWT rules: module in parent package, "ui" in client/ui, "bindings", "impl" packages, etc
[#########]
enter package name of your module
#3
notice that wizard will generate usual "gwt.xml","public", "client", "server" packages for you
#4
hit "finish"

Lets take real example based on open sourced project:
#1
say I want to create widgets (ui elements) for sharing
#2
module will be named YUIButton and will be fictional implementation of YUI library button
#3
give package name:
Code: Select all
com.yahoo.developer.yui

module name:
Code: Select all
YUIButton

hit finish
#4
switch to code with, open generated YUIButton.gwt.xml module,
add line:
Code: Select all
<source path="ui"/>

close .gwt.xml module
#5
delete generated "server" and "client" packages
#6
click on source packages and create "ui" package under main package:
Code: Select all
com.yahoo.developer.yui.ui

now GWTD will look for files into that directory when previewing and compiling
#7
click on "ui" package and choose New>Composite. it should work in code and design view using resources from "public" folder


Now I can resuse that libary easily without exporting .jar:
#1
create new project
#2
add "YUIButton" project in source path
#3
in design view of that project you should be able to get widgets from YUIButton without actually writing a line of import or inherit statements:
- from UI inspector choose "select widget"
- type a name of your widget, e.g.; YUIPushButton, hit quick fix to import package
When GWTD place your widget in design view it should render without issue, However when you switch to code mode you should get warnings about imports. Hit "Quick Fix", GWTDesigner is smart enough to offer you an option to "Include YUIButton module inheritance " in your current project .gwt.xml module by adding "inherit" tag. Then hit "QuickFix" again now to actually add imports to code itelf,

Such generate module can be exported then into .jar or can become part of larger structure consisting of many separate projects gathered by one super "YUILibrary" project which inherits every required submodule (again, see GWT Toolkit .gwt.xml namespaces and declaration on how they do that),

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

Re: Sharable Widget Library

Postby markfaine » Wed Apr 16, 2008 6:47 am

I'm not sure I understand.

My goal is not to develop a third-party library but to have a group of shared composites that I can package in a jar file. Then whenever I create a new project I can include my jar file in my new project and use these standard composite widgets in the new project. This will allow me a great amount of code reuse considering most of the applications I will develop will have a similar structure, composed of similar widgets.

I have done the following:

1. Created a new GWT Project called "SharedGWT"
2. Create a new GWT Module called "shared" with package name <my package name>
3. I unchecked Create EntryPoint and public resources option
4. I customized my file shared.gwt.xml to read as follows:

<module>
<inherits name="com.google.gwt.user.User"/>
<stylesheet src="shared.css" />
<source path="shared" />
</module>

5. Created pacakge <my package name>.shared

6. Deleted the "client", "server" packages

7. Created shared.css and added it to the "public" folder


According to the instructions this should be enough but when I do:

1. New->Composite, select Next
2. Configure "Create composite" details, select Next

My Composite is created and opened in Source view

Now if I switch to design view I get the following error message:

Code: Select all

NO GUI roots detected

Designer was unable to find any GUI elements in your source.
Check that the open compilation unit is a GUI class.



Edit: I have reinstalled into a new Eclispe install (3.3 Europa) with a new workspace and still the problem persists. GWT is: gwt-windows-1.4.61

LOG FILE
Code: Select all
!SESSION 2008-04-16 10:43:30.937 -----------------------------------------------
eclipse.buildId=M20080221-1800
java.version=1.5.0_15
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY com.swtdesigner 4 4 2008-04-16 10:44:00.406
!MESSAGE Unable to load initialization page.
!STACK 1
org.eclipse.core.internal.resources.ResourceException: Resource '/SharedGWT/src/gov/nasa/msfc/repository/gwt/public/shared.html' does not exist.
   at org.eclipse.core.internal.resources.Resource.checkExists(Resource.java:310)
   at org.eclipse.core.internal.resources.Resource.checkAccessible(Resource.java:193)
   at org.eclipse.core.internal.resources.File.getContents(File.java:285)
   at org.eclipse.core.internal.resources.File.getContents(File.java:276)
   at com.swtdesigner.gwt.util.Utils.getDoctypeTagForUnit(Utils.java:660)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:98)
   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:1665)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:185)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:67)
   at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:52)
   at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:37)
   at com.swtdesigner.gwt.model.widgets.panel.ThisCompositeInfo.<init>(ThisCompositeInfo.java:45)
   at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:222)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:2733)
   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:1149)
   at com.swtdesigner.gef.DesignerEditor$17.execute(DesignerEditor.java:1077)
   at com.swtdesigner.model.swing.properties.custom.DesignTimeHelper.execute(DesignTimeHelper.java:54)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:1071)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:1062)
   at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:391)
   at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:178)
   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.Widget.sendEvent(Widget.java:962)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947)
   at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:706)
   at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3227)
   at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2005)
   at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:316)
   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)
!SUBENTRY 1 org.eclipse.core.resources 4 368 2008-04-16 10:44:00.406
!MESSAGE Resource '/SharedGWT/src/gov/nasa/msfc/repository/gwt/public/shared.html' does not exist.

!ENTRY com.swtdesigner 4 4 2008-04-16 10:44:01.656
!MESSAGE Designer [6.6.0.200804141648]: org.apache.commons.lang.exception.NestableError: org.apache.commons.lang.exception.NestableError: com.swtdesigner.gwt.support.host.HostedModeException: invokeNativeHandle(@com.google.gwt.user.client.impl.DOMImpl::createElement(Ljava.lang.String;)): Undefined value, expected com.google.gwt.user.client.Element

Product: GWT Designer Evaluation
Version: 4.0.0.200804141828
Expected: Eclipse 3.3
Actual: Eclipse 3.3.100.v20070530
Actual Eclipse Build Name:
Actual Eclipse Build ID: M20080221-1800
IDE Actual Name: Eclipse
IDE Actual Version: 3.3.3.r33x_r20080129
IDE Actual NL: en_US
Activation Key: GWTDesignerEval-XD0SF-HM153-NYTYD
Physical Address: 00-0C-29-C0-7A-DC
Code Gen: Flat Mode, Use Existing, First Assignment, Make Final
Events: Anonymous Class
GWT Home: D:/Applications/Development/libraries/gwt-windows-1.4.61
Platform Product: Eclipse
Platform Version: 3.3.3.r33x_r20080129
OS Name: Windows XP
OS Architecture: x86
OS Version: 5.1

!STACK 0
org.apache.commons.lang.exception.NestableError: org.apache.commons.lang.exception.NestableError: org.apache.commons.lang.exception.NestableError: com.swtdesigner.gwt.support.host.HostedModeException: invokeNativeHandle(@com.google.gwt.user.client.impl.DOMImpl::createElement(Ljava.lang.String;)): Undefined value, expected com.google.gwt.user.client.Element
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:187)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.<init>(UIObjectInfo.java:67)
   at com.swtdesigner.gwt.model.widgets.WidgetInfo.<init>(WidgetInfo.java:52)
   at com.swtdesigner.gwt.model.widgets.panel.AbstractContainerInfo.<init>(AbstractContainerInfo.java:37)
   at com.swtdesigner.gwt.model.widgets.panel.ThisCompositeInfo.<init>(ThisCompositeInfo.java:45)
   at com.swtdesigner.gwt.model.GWTJavaInfoFactory.create(GWTJavaInfoFactory.java:222)
   at com.swtdesigner.model.parser.JavaInfoParser$ParserVisitor.visit(JavaInfoParser.java:2733)
   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:1149)
   at com.swtdesigner.gef.DesignerEditor$17.execute(DesignerEditor.java:1077)
   at com.swtdesigner.model.swing.properties.custom.DesignTimeHelper.execute(DesignTimeHelper.java:54)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:1071)
   at com.swtdesigner.gef.DesignerEditor.handleActivate(DesignerEditor.java:1062)
   at com.swtdesigner.editors.MultiPageEditor.showDesignEditor(MultiPageEditor.java:391)
   at com.swtdesigner.editors.MultiPageEditor$2.widgetSelected(MultiPageEditor.java:178)
   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.Widget.sendEvent(Widget.java:962)
   at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947)
   at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:706)
   at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:3227)
   at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:2005)
   at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:316)
   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: org.apache.commons.lang.exception.NestableError: com.swtdesigner.gwt.support.host.HostedModeException: invokeNativeHandle(@com.google.gwt.user.client.impl.DOMImpl::createElement(Ljava.lang.String;)): Undefined value, expected com.google.gwt.user.client.Element
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:401)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.classByName(UIObjectInfo.java:185)
   ... 52 more
Caused by: org.apache.commons.lang.exception.NestableError: com.swtdesigner.gwt.support.host.HostedModeException: invokeNativeHandle(@com.google.gwt.user.client.impl.DOMImpl::createElement(Ljava.lang.String;)): Undefined value, expected com.google.gwt.user.client.Element
   at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:142)
   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:1665)
   at com.swtdesigner.gwt.model.widgets.UIObjectInfo.getState(UIObjectInfo.java:394)
   ... 53 more
Caused by: com.swtdesigner.gwt.support.host.HostedModeException: invokeNativeHandle(@com.google.gwt.user.client.impl.DOMImpl::createElement(Ljava.lang.String;)): Undefined value, expected com.google.gwt.user.client.Element
   at com.swtdesigner.gwt.support.host.JsValueGlue.get(JsValueGlue.java:79)
   at com.swtdesigner.gwt.support.host.ModuleSpace.invokeNativeHandle(ModuleSpace.java:85)
   at com.swtdesigner.gwt.support.host.JavaScriptHost.invokeNativeHandle(JavaScriptHost.java:61)
   at com.google.gwt.user.client.impl.DOMImpl.createElement(DOMImpl.java)
   at com.google.gwt.user.client.DOM.createButton(DOM.java:98)
   at com.google.gwt.user.client.ui.Button.<init>(Button.java:57)
   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 java.lang.Class.newInstance0(Unknown Source)
   at java.lang.Class.newInstance(Unknown Source)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.initClassesAndMethods(GWTState.java:451)
   at com.swtdesigner.gwt.model.widgets.support.GWTState.<init>(GWTState.java:136)
   ... 57 more




Thanks,
-Mark
markfaine
 
Posts: 4
Joined: Tue Apr 15, 2008 7:40 am

Re: Sharable Widget Library

Postby Eric Clayberg » Wed Apr 16, 2008 10:52 am

See Instructions for creating a common shareable widget library project in the product docs (and thank you to Peter for his insight on the subject).

Your log indicates that you are missing the HTML file that GWT Designer needs in order to find the associated JavaScript and CSS files.

You should also review the GWT Designer FAQ for solving common problems with GWT Designer.

If you still have a problem, send us a test case (e.g., the project you are having a problem with).
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

Re: Sharable Widget Library

Postby markfaine » Wed Apr 16, 2008 11:27 am

Eric Clayberg wrote:See Instructions for creating a common shareable widget library project in the product docs (and thank you to Peter for his insight on the subject).


Yeah I referenced this same document above in the original post.

Your log indicates that you are missing the HTML file that GWT Designer needs in order to find the associated JavaScript and CSS files.


Yes, I saw that but don't know what happened to it. I have since replaced it but it has not corrected the problem.

You should also review the GWT Designer FAQ for solving common problems with GWT Designer.


I have reviewed this already, one should never be forced to reinstall with a clean workspace in order to get your product to work properly. It should just work properly OOTB (so to speak). Still, I have installed a clean version of Eclipse with a new workspace, as I have already specified in a previous post.

If you still have a problem, send us a test case (e.g., the project you are having a problem with).
I will keep trying but so far I have spent far too much time trying to get the product to work and not nearly enough time using it.

-Mark
markfaine
 
Posts: 4
Joined: Tue Apr 15, 2008 7:40 am

Re: Sharable Widget Library

Postby Eric Clayberg » Wed Apr 16, 2008 1:46 pm

markfaine wrote:I have reviewed this already, one should never be forced to reinstall with a clean workspace in order to get your product to work properly.

That is a last ditch option that is only needed if your Eclipse installation / workspace is seriously messed up.

markfaine wrote:I will keep trying but so far I have spent far too much time trying to get the product to work and not nearly enough time using it.

If you really to make it possible for us to help you, you really do need to provide a test case.

So far, I have no idea what you have or haven't done, so I can't even begin to guess what needs to be adjusted.
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

Re: Sharable Widget Library

Postby Eric Clayberg » Thu Apr 17, 2008 6:57 pm

In the latest GWT Designer build, we have added a new "GWT Library" wizard that will set up an empty GWT project so that it can be used as a shared library.

To use it:

1. Create an empty GWT project without a module/entry point.

2. Create a "GWT library". This is basically a GWT module without an entry point. All needed files and packages will be created.
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

Re: Sharable Widget Library

Postby markfaine » Thu Apr 17, 2008 7:20 pm

In the latest GWT Designer build, we have added a new "GWT Library" wizard that will set up an empty GWT project so that it can be used as a shared library.


Now that sounds very useful. I am looking forward to trying this out tomorrow when I get to work :)

-Mark
markfaine
 
Posts: 4
Joined: Tue Apr 15, 2008 7:40 am

Re: Sharable Widget Library

Postby Eric Clayberg » Sun Apr 20, 2008 12:03 pm

Good. I hope it does the trick.
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