GWT Studio plugin

GWT Studio plugin for IntelliJ IDEA

WATCH DEMO

What is GWT Studio?

GWT Studio plugin for IntelliJ IDEA simplifies development of Web applications using Google Web Toolkit. The plugin is bundled with IDEA.

GWT Studio provides the following features:

  • actions to create different elements of GWT application
  • GWT specific inspections and quick fixes
  • integration with GWT compiler
  • specific run configuration for starting and debugging GWT applications in the hosted mode
  • "Rename" refactoring is aware of GWT
  • "Go To Declaration" action, "Find usage" action and completion for GWT specific references
  • GWT native methods support: advanced coding assistance including syntax highlighting, code completion, etc. for editing JavaScript embedded into native GWT methods (see description of IntelliJ IDEA JavaScript editor)
  • integration with GWT internationalization support
  • support for packaging files generated by GWT compiler into JavaEE application

Actions

Actions are used to generate GWT elements such as entry points, remote services, etc. Each action suggests to configure GWT support if necessary and adds GWT libraries into module classpath.

New GWT Module

Creates GWT application template including:

  • directories
    • client
    • server
    • public
  • .gwt.xml module file
  • EntryPoint class
  • .html page
  • .css file

New GWT Entry Point

Creates GWT entry point template and performs the following operations:

  • generates a class derived from EntryPoint
  • adds a necessary <entry-point> element to the .gwt.xml module file

New GWT RemoteService

Creates GWT remote service template and performs the following operations:

  • generates an interface derived from RemoteService
  • creates an asynchronous version of  the interface
  • creates RemoteServiceServlet implementing the interface
  • adds necessary <servlet> element to the .gwt.xml module file

New GWT Serializable Class

Creates new class derived from IsSerializable with no-argument constructor.

New GWT Test Case

Works under test sources roots. Creates new class derived from GWTTestCase.

New GWT Sample Application

Creates sample application which send a text message to the server and display the response. It can be used as simple starting point.

References

"Go to declaration", "Find Usages", "Rename" actions, completion and highlighting works for GWT specific references in the following places:

  • parameters of methods UIObject.setStyleName, addStyleName, removeStyleName
  • parameter of RootPanel#get method
  • @Key annotation
  • <inherits> tag in .gwt.xml file
  • the return statement in "getModuleName" method in classes derived from GWTTestCase
  • parameter of ServiceDefTarget#setServiceEntryPoint method
  • @RemoteServiceRelativePath annotation
  • <meta> and <script> tags in GWT html file

Inspections

GWT Studio have inspections to report the following problems:

  • RemoteService-derived interface is not synchronized with its asyncronous version
  • Asynchronous version of RemoteService-derived interface is not synchronized with the original interface
  • Type of parameter or return type of method in RemoteService-derived interface is not serializable
  • GWT Remote service is not registered as a servlet in web.xml
  • Classes not from JRE emulation library (and not from client code of inherited modules) are used in client code
  • Class marked as serializable contains non-serializable fields
  • Style name used as parameter of "addStyleName" or "setStyleName" is not presented in CSS file
  • References to Java classes or methods from GWT JavaScript native methods cannot be resolved
  • Localizable interface is not synchronized with the corresponding .properties file
  • Interfaces derived from Constants contains methods with parameters
  • Deprecated @gwt.key JavaDoc tag usages
  • Deprecated @gwt.typeArgs JavaDoc tag usages
  • AsyncCallback class is used without type parameters
  • ServiceDefTarget.setServiceEntryPoint is used instead of @RemoteServiceRelativePath annotation

Each inspection suggest a quick-fix to resolve the corresponding problem.

Integration with I18n support

  • navigation from method of interface to corresponding property (using icon on an editor gutter or "Go to implementation" action)
  • inspection to report inconsistencies between interfaces and property files (with quickfixes to create missing property or method)
  • "Rename" refactoring for properties, methods and interfaces renames corresponding methods, properties and properties-files
  • "Internationalize" action in IDEA is aware of GWT and automatically creates corresponding methods in interfaces

See also http://blogs.jetbrains.com/idea/2006/10/internationalizing-gwt-applications-at-ease/.

Settings

GWT-related settings are available via GWT Facet (Project Structure | "Modules" item | A module node in the tree | "GWT" node)

Packaging into JavaEE application

An output of GWT compiler can be automatically copied to an exploded directory or a war file of a Web Facet on make. Just select the desired Web Facet in GWT Facet settings. An individual relative output path for each GWT module can be specified in GWT Facet settings as well.

Run/Debug GWT application in the hosted mode

Use "GWT configuration" to run/debug a GWT application in the hosted mode. Also "Run" action is available in the popup menu for GWT entry point classes and html files allowing to run a GWT application the hosted mode immediately

More information

GWT Studio comes bundled with IntelliJ IDEA starting from IDEA 6.0.

To report bug or request feature, visit http://www.jetbrains.net/jira/browse/IDEA

Labels

 
(None)
  1. Aug 31, 2006

    Anonymous says:

    Hi, Thanks for this very useful plugin, at first. When the next version of the p...

    Hi,

    Thanks for this very useful plugin, at first.

    When the next version of the plugin is relased? or is this final version?

    thanks.....     

    muzaffercoruh@hotmail.com 

  2. Sep 06, 2006

    Anonymous says:

    Hi JetBrain Team.... &nbsp; This very nice and usefull documents... for GWT deve...

    Hi JetBrain Team....

      This very nice and usefull documents... for GWT developers..

    When will release the Update version or final version? 

    Thanks for your time..

    arjunmkuc@gmail.com 

    1. Sep 14, 2006

      Alex Tkachman says:

      With IntelliJ IDEA 6.0 in October. Or in our EAP

      With IntelliJ IDEA 6.0 in October. Or in our EAP

  3. Nov 08, 2006

    Anonymous says:

    Hello, Alex. Thanks for useful plugin. I hope new version will correctly suppor...

    Hello, Alex.

    Thanks for useful plugin. I hope new version will correctly support JSNI(accessing java fields from JavaScript, etc).

  4. Nov 08, 2006

    Anonymous says:

    Google has recently published a mac os x version of GWT but it is not working wi...

    Google has recently published a mac os x version of GWT but it is not working with this plugin. Please add os x support ASAP

    Cheers

    Behrang Javaherian

    http://www.behrang.info

    1. Nov 08, 2006

      Nikolay Chashnikov says:

      Support for GWT on Mac will be included in IDEA 6.0.2.

      Support for GWT on Mac will be included in IDEA 6.0.2.

      1. Jan 04, 2007

        Anonymous says:

        I'm using 6.0.2 on Mac OSX with GWT 1.3.1 and am having issues building a WAR / ...

        I'm using 6.0.2 on Mac OSX with GWT 1.3.1 and am having issues building a WAR / exploded directory. Specifically, including the HTML files etc from the www directory. Running in hosted mode works fine.

  5. Nov 11, 2006

    Anonymous says:

    I am completely frustrated by this plugin. i get "Error: unable to find 'mycla...

    I am completely frustrated by this plug-in.

    i get "Error: unable to find 'myclass.gwt.xml' in your classpath..."

    i have no idea what is producing this error, as there is now way to turn on verbose output

    the file is indeed in my class path

    1. Apr 18, 2007

      Nikolay Chashnikov says:

      Please try IDEA 6.0.5. The problem should be fixed in it.

      Please try IDEA 6.0.5. The problem should be fixed in it.

  6. Dec 20, 2006

    Anonymous says:

    What is happening with the development of this plugin.&nbsp; It has been months ...

    What is happening with the development of this plug-in.  It has been months since it's release, and there have been no updates.  GWT is a great framework and this is a good tool to allow GWT to work with Intellij, but there are lots of bugs and it could use improvement.

     Is this going to become open source?  I would really like access to fix some bugs.

    1. Dec 20, 2006

      Anonymous says:

      AFAIK the source of GWT is included in the Plugin Development Kit Package.

      AFAIK the source of GWT is included in the Plug-in Development Kit Package.

    2. Dec 21, 2006

      Nikolay Chashnikov says:

      GWT plugin comes bundled with IntelliJ IDEA starting from version 6.0. So its la...

      GWT plugin comes bundled with IntelliJ IDEA starting from version 6.0. So its last version (with several new features and fixed bugs) is included in IDEA 6.0.2 which have been released last month and the next version will come with IDEA 6.0.3.

  7. Jan 05, 2007

    Anonymous says:

    I too am still getting "Error: unable to find 'myclass.gwt.xml' in your classpat...

    I too am still getting "Error: unable to find 'myclass.gwt.xml' in your classpath..." for every module I create. It might be working noting that I started with creating the GWT "sample app" from the menu, and then altered it. Perhaps I need to start from scratch? I have one high-level module directory, which contains other sibling modules (xml files and java source). Could this be an issue for the plug-in?

    The plug-in also reports errors regarding the assignment of style classes to widgets. I know that the style definition is in the correct CSS file. As proof, when I deploy the application to Tomcat, I see the generated widgets styled correctly. However in the IDE, it's reported as an unknown CSS style.

    Thanks for the plug-in. Once some of these bugs are worked out, I see it being a great time-saver for me!

    Brian

    1. Jan 05, 2007

      Anonymous says:

      I should note that I'm using IntelliJ v6.02 on Mac OS X. Brian

      I should note that I'm using IntelliJ v6.02 on Mac OS X.
      Brian

      1. Apr 18, 2007

        Nikolay Chashnikov says:

        These problems should be fixed in IDEA 6.0.5.

        These problems should be fixed in IDEA 6.0.5.

  8. Jan 10, 2007

    Anonymous says:

    How could I submit patch? Compiled GWT files must be copied into <gwt.module.Nam...

    How could I submit patch? Compiled GWT files must be copied into <gwt.module.Name> subdir of webapp exploded dir:

    --- GwtWebBuildParticipant.java
    +++ GwtWebBuildParticipant.java.patched
    @@ -42,11 +42,8 @@
    
       public void registerBuildInstructions(BuildRecipe buildRecipe, CompileContext context) {
         if (GwtConfiguration.getInstance().isValidConfiguration()) {
    -      final GwtModule[] modules = GwtModulesManager.getInstance(myModule.getProject()).getGwtModules(myModule);
    -      for (GwtModule module : modules) {
    -        final File output = new File(GwtCompilerPaths.getOutputDirectory(myModule), module.getQualifiedName());
    +        final File output = GwtCompilerPaths.getOutputDirectory(myModule);
             buildRecipe.addFileCopyInstruction(output, true, myModule, "/", null);
    -      }
         }
       }

    Andriy.

    1. Jan 19, 2007

      Anonymous says:

      For whom it may concern, I copied GWTStudio to Google code and submitted my patc...

      For whom it may concern, I copied GWTStudio to Google code and submitted my patch there, see http://exogwt.googlecode.com/svn/xtras/.

      Note, I've added support for 'noserver' GWTShell option, also.

      Andriy. 

  9. Feb 05, 2007

    Anonymous says:

    Would it be difficult to fix the following issues : 1) Modules are always compil...

    Would it be difficult to fix the following issues :

    1) Modules are always compiled, regardless whether the source was modified;
    2) Editor displays errors about classes not being available in JRE emulation, however the source is present, it just lives in another module; (The GWT compiler does not complain);
    3) On make, the GWT modules are always compiled; (the plugin setting 'do not compile on Make' does not work);

     Kind regards, Barry Lagerweij

  10. Mar 23, 2007

    Mark Volkmann says:

    When I click the "" button in Run...Edit Configurations, nothing happens. I dec...

    When I click the "+" button in Run...Edit Configurations, nothing happens.

    I decided to uninstall and reinstall the GWT Studio plugin. I was able to uninstall it, but there doesn't seem to be an option to reinstall it. I'm running IDEA 6.04 on a Mac. How can I reinstall it?

    1. Apr 18, 2007

      Nikolay Chashnikov says:

      GWT Studio plugin is bundled with IDEA. So in order to reinstall it you should r...

      GWT Studio plugin is bundled with IDEA. So in order to reinstall it you should reinstall IDEA itself. Please make sure that you had removed old version of GWT plugin from <idea.config.dir>/plugins.

  11. Mar 26, 2007

    Anonymous says:

    It is impossinble to use \noserver option in Run/Debug configurations.

    It is impossinble to use -noserver option in Run/Debug configurations.

    1. Apr 18, 2007

      Nikolay Chashnikov says:

      This feature is planned for next IDEA version (see

      This feature is planned for next IDEA version (see http://www.jetbrains.net/jira/browse/IDEADEV-11276).

  12. May 11, 2007

    Anonymous says:

    Any idea if a GUI builder for GWT is coming anytime soon?

    Any idea if a GUI builder for GWT is coming anytime soon?

    1. May 11, 2007

      Nikolay Chashnikov says:

      GUI builder for GWT isn't planned for IDEA 7.

      GUI builder for GWT isn't planned for IDEA 7.

  13. Jun 11, 2007

    Anonymous says:

    It would be nice to extend the demo to show \ How to debug the application \ how...

    It would be nice to extend the demo to show

    - How to debug the application

    - how to write the junit test on this application.

     Regards,

    Raja Nagendra Kumar,

    www.tejasoft.com

  14. Jul 16, 2007

    Travis R says:

    Any plans to update this to work with GWT 1.4?

    Any plans to update this to work with GWT 1.4?

    1. Jul 17, 2007

      Nikolay Chashnikov says:

      http://www.jetbrains.net/jira/browse/IDEADEV17576 will be fixed soon. Do you hav...

      http://www.jetbrains.net/jira/browse/IDEADEV-17576 will be fixed soon. Do you have any issues besides the mentioned in IDEADEV-17576?

      1. Jul 21, 2007

        Travis R says:

        A couple things: 1. When compiling GWT through Idea's Make, it always gives an O...

        A couple things:

        1. When compiling GWT through Idea's Make, it always gives an OutOfMemory error and says to increase it. So have to do it through ant instead.

        2. Red underlines almost all GWT components saying something along the lines of:

        "... AsyncCallback is defined in module 'com.google.gwt....ClippedImage' which is not inherited in module 'xxx'

        1. Jul 23, 2007

          Nikolay Chashnikov says:

          1. Starting from Selena EAP build 7065 maximum heap size for GWT compiler may be...

          1. Starting from Selena EAP build 7065 maximum heap size for GWT compiler may be increased in GWT facet settings (http://www.jetbrains.net/jira/browse/IDEADEV-9296).

          2. Looks like you have several gwt-user.jar libraries in dependencies of your module.

          1. Sep 09, 2007

            Anonymous says:

            can we get the fix for (

            can we get the fix for (http://www.jetbrains.net/jira/browse/IDEADEV-9296) anywhere yet?  This is killing us.

            1. Sep 09, 2007

              Dmitry Jemerov says:

              ttp://www.jetbrains.net/confluence/display/ID ...
              1. Sep 09, 2007

                Anonymous says:

                This one has been fixed, but there are a lot of other issues with GWT plugin tha...

                This one has been fixed, but there are a lot of other issues with GWT plugin that need fixing (i've posted a couple in the forum) such as underlining non GWT library things on the server side code, not including the history frame in the default generated html, underling Serializableclasses (gwt 1.4 can use Serializable), shows @gwt.typeArgs javadoc tags as invalid, etc.

  15. Sep 26, 2007

    Anonymous says:

    It would seem that in 7.0 M2 the plugin doesn't merge the web.xml with stuff fro...

    It would seem that in 7.0 M2 the plugin doesn't merge the web.xml with stuff from the .gwt.xml. The servlets has to be moved manually. The maven plugin can do this, however.

    1. Sep 26, 2007

      Nikolay Chashnikov says:

      Are you sure that Web facet in specified in GWT facet settings?

      Are you sure that Web facet in specified in GWT facet settings?

  16. Oct 10, 2007

    Anonymous says:

    This doesn't work with Intellij 7.0 RC 2 on a mac It gives he following error: \...

    This doesn't work with Intellij 7.0 RC 2 on a mac

    It gives he following error:

    [ERROR] Failure to load module 'com.hydrodesk.fucker.MyApplication'
    java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.kind()I
        at com.google.gwt.dev.jdt.TypeOracleBuilder.isInterface(TypeOracleBuilder.java:481)
        at com.google.gwt.dev.jdt.TypeOracleBuilder.processType(TypeOracleBuilder.java:531)
        at com.google.gwt.dev.jdt.TypeOracleBuilder.access$000(TypeOracleBuilder.java:93)
        at com.google.gwt.dev.jdt.TypeOracleBuilder$2.visit(TypeOracleBuilder.java:410)
        at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1156)
        at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:481)
        at com.google.gwt.dev.jdt.TypeOracleBuilder.build(TypeOracleBuilder.java:395)
        at com.google.gwt.dev.cfg.ModuleDef.getTypeOracle(ModuleDef.java:294)
        at com.google.gwt.dev.cfg.ModuleDef.refresh(ModuleDef.java:359)
        at com.google.gwt.dev.cfg.ModuleDefLoader.loadFromClassPath(ModuleDefLoader.java:86)

    1. Oct 10, 2007

      Nikolay Chashnikov says:

      Fixed in IDEA 7.0 RC3.

      Fixed in IDEA 7.0 RC3.

  17. Oct 11, 2007

    Ilya Obshadko says:

    The plugin is great. I have some suggestions,...

    The plugin is great. I have some suggestions, though:

    • support for -noserver and other GWT shell command-line options would be more than useful
    • most of the time I use GWT shell to load application from server to debug JSON-RPC calls and other server-side-related stuff; so it would be very convenient to allow "Startup URL" instead of "Startup filename" (and automatically add this URL to whitelist of course)
    • JSNI constructs like @com.google.gwt.user.client.ClassName::doSomething(Ljava/lang/String(); still interpreted as errors; it doesn't affect compilation in any way, but just looks ugly
    1. Oct 11, 2007

      Nikolay Chashnikov says:

      Are you using the latest of GWT Studio? First and third items are already implem...

      Are you using the latest of GWT Studio? First and third items are already implemented.

      The latest version of GWT Studio is bundled with IDEA 7 RC (IDEA 7 EAP).

      1. Oct 11, 2007

        Ilya Obshadko says:

        No, I'm still using 6.06. I'll try IDEA 7, thanks.

        No, I'm still using 6.06. I'll try IDEA 7, thanks.

      2. Jan 30, 2008

        Shing Cheung says:

        I'm already using v7 (build 7361) but I'm also getting inspection errors for jav...

        I'm already using v7 (build 7361) but I'm also getting inspection errors for java.lang.String and java.lang.StringBuffer. Please help!

  18. Jan 29, 2008

    Anonymous says:

    The GWT Studio plugin doesn't seem to work with modules defined within test sour...

    The GWT Studio plugin doesn't seem to work with modules defined within test sources. It attempts to compile these modules, but then complains that they are not on the classpath. E.g., I have:

    java/Foo.gwt.xml (Source: this works)
    javatests/FooTest.gmt.xml (Test Source: this doesn't)

    Error: Unable to find 'FooTest.gwt.xml' on your classpath; could be a typo or perhaps you forgot to include a classpath entry for source?

    1. Jan 30, 2008

      Shing Cheung says:

      Same problem here...would be nice if JetBrains could post a flash demo on unit t...

      Same problem here...would be nice if JetBrains could post a flash demo on unit testing GWT project.

  19. Feb 26, 2008

    Anonymous says:

    \1 flash demo on unit testing GWT projects.

    +1 flash demo on unit testing GWT projects.

  20. Jun 03, 2008

    Steve Appling says:

    The plugin doesn't seem to work for me with&nbsp;GWT 1.5 RC1.&nbsp; It builds wi...

    The plugin doesn't seem to work for me with GWT 1.5 RC1.  It builds without errors, but doesn't seem to do anything.  I get no GWT compiled files, only my static content.  Anyone else have this working?

     Corrected - it seems to be working fine now.  I deleted the contents of my exploded web-app and making the project wouldn't run the GWT compile.  After touching a source file under the client package, it built correctly.

    1. Jun 03, 2008

      Anonymous says:

      Haven't tried RC1 yet, but I've pretty much stopped using this plugin since it m...

      Haven't tried RC1 yet, but I've pretty much stopped using this plugin since it makes GWT development way too slow with it recompiling the javascript every time. Instead I run the gwt shell as an Application in Intellij instead of running via the plugin.

  21. Jun 04, 2008

    Anonymous says:

    about css parameters
  22. Jun 19, 2008

    Anonymous says:

    Does the gwt plugin work for linux and gwt 1.5? The server piece of a sample app...

    Does the gwt plugin work for linux and gwt 1.5? The server piece of a sample app is never deployed.

  23. Aug 23, 2008

    Anonymous says:

    Excuse me in advance for my stupid question:&nbsp;I've downloaded idea 7 and the...

    Excuse me in advance for my stupid question: I've downloaded idea 7 and the last preview of the version 8. I've watched the GWT demo. In both versions I've downloaded, there's no GWT Studio icon in the IDE settings window but the GWT Studio plugin is displayed in the bundled plugins list as installed plugin. (in both cases, it is a fresh install).

    Did I missed something?

    1. Aug 24, 2008

      Anonymous says:

      I was just wondering the same thing myself. I can create GWT projects in eclipse...

      I was just wondering the same thing myself. I can create GWT projects in eclipse; the GWT utilities are symlinked into my PATH.
      System specs: IntelliJ 7.0.4, IntelliJ 8.0M1, OS X 10.5.4, JavaForMac10.5Update1

    2. Aug 25, 2008

      Anonymous says:

      same for me. The plugin is installed, but no GWT icon and no Google Web Toolkit ...

      same for me. The plugin is installed, but no GWT icon and no Google Web Toolkit item in the "New..." menu.

    3. Aug 28, 2008

      Anonymous says:

      I have downloaded the 7.0.4 version (was using 7.0.3) and do not see the GWT ico...

      I have downloaded the 7.0.4 version (was using 7.0.3) and do not see the GWT icon on my project settings page. Is there a way to add it or turn it on?

    4. Sep 01, 2008

      Nikolay Chashnikov says:

      The GWT demo is obsolete. We will update it soon. In order to add GWT support yo...

      The GWT demo is obsolete. We will update it soon.

      In order to add GWT support you should add GWT facet to the module (open "Project Settings", select module node, click '+' icon and select 'GWT').

  24. Sep 08, 2008

    Anonymous says:

    The GWT facet is not available in the drop down specified in your response, Niko...

    The GWT facet is not available in the drop down specified in your response, Nikolay.  My external ant scripts are building the GWT project, but IDEA 7.0.4 doesn't seem to have a clue about GWT; no where to tell it what libs to use, etc.  So for now, I've no longer got a "hosted" debug mode.  My ant build scripts are getting quite a workout, however.

  25. Oct 22, 2008

    Jason Vincent says:

    I'm using IntelliJ 7.0.4 and GWT 1.5.2.&nbsp; I need to get my JDBC DataSources ...

    I'm using IntelliJ 7.0.4 and GWT 1.5.2.  I need to get my JDBC DataSources registered in the JNDI context.  The GWT hosted mode plugin isn't loading my context.xml definitions.  Is there a way to do this within the plugin.  Searches for suggestions reveal "munching" a tomcat installation, but I don't have a "tomcat" directory in my project directory.  Any suggestions?

    Jason

    1. Dec 15, 2008

      Daniel Moldovan says:

      I'm facing the same issue as Jason. Is there a workaround for this. Thanks, Dani...

      I'm facing the same issue as Jason. Is there a workaround for this.

      Thanks,

      Daniel 

    2. Mar 24

      Nikolay Chashnikov says:

      This feature is not implemented yet. You can watch

      This feature is not implemented yet. You can watch http://jetbrains.net/jira/browse/IDEADEV-33232 for the progress.

  26. May 27

    Robert Light says:

    What version of GWT Studio do I need to work properly with GWT1.6?? I'm using In...

    What version of GWT Studio do I need to work properly with GWT1.6??

    I'm using IntelliJ 7.0.5

    1. May 27

      Nikolay Chashnikov says:

      GWT 1.6 support is included in the latest version of the plugin which is bundled...

      GWT 1.6 support is included in the latest version of the plugin which is bundled with IDEA 9 "Maia" EAP build (http://www.jetbrains.net/confluence/display/IDEADEV/Maia+EAP).