今S Google Web Toolkit (GWT) Basics Sang shin Java Technology architect Evangelist Sun Microsystems, Inc. sangshin@sun.com Www.javapassiOn.com
Google Web Toolkit (GWT) Basics Sang Shin Java Technology Architect & Evangelist Sun Microsystems, Inc. sang.shin@sun.com www.javapassion.com
令Sn Disclaimer Acknowledgments Even though Sang Shin is a full-time employee of Sun microsystems the contents here are created as his own personal endeavor and thus does not necessarily reflect any official stance of Sun Microsystems on any particular technology Most of the slides in this presentations are created from the contents from Google Web Toolkit (GWT website >http://code.googlecom/webtoolkit/ Sourcehttp://code.googlecom/webtoolkit/ 2
Source: http://code.google.com/webtoolkit/ 2 Disclaimer & Acknowledgments • Even though Sang Shin is a full-time employee of Sun Microsystems, the contents here are created as his own personal endeavor and thus does not necessarily reflect any official stance of Sun Microsystems on any particular technology • Most of the slides in this presentations are created from the contents from Google Web Toolkit (GWT) website > http://code.google.com/webtoolkit/
令Sn Agenda What is& Why gwt? Building User interface GWT Widgets Event Handling Styling Remote Procedural Call (RPc) Steps for building GWT RPC application Serializable types Handling exceptions Ikit 3
Source: http://code.google.com/webtoolkit/ 3 Agenda • What is & Why GWT? • Building User interface > GWT Widgets > Event Handling > Styling • Remote Procedural Call (RPC) > Steps for building GWT RPC application > Serializable types > Handling exceptions
令Sn Agenda Javascript Native Interface SND) Motivation for jsni Accessing native JavaScript code from Java code Accessing Java methods and fields from native JavaScript code GWT Project GWT Module configuration Deployment kit 4
Source: http://code.google.com/webtoolkit/ 4 Agenda • JavaScript Native Interface (JSNI) > Motivation for JSNI > Accessing native JavaScript code from Java code > Accessing Java methods and fields from native JavaScript code • GWT Project > GWT Module configuration > Deployment
今S What is and Why GWT?
What is and Why GWT?
令Sn What is GWT? Java software development framework that makes writing ajAX applications easy et you develop and debug AjAX applications in the Java language using the java development tools of your choice NetBeans or Eclipse Provides Java-to-Java Script compiler and a speci web browser that helps you debug your GWT applications When you deploy your application to production, the compiler translates your Java application to browser-compliant JavaScript and HTML Sourcehttp://code.googlecom/webtoolkit/
Source: http://code.google.com/webtoolkit/ 6 What is GWT? • Java software development framework that makes writing AJAX applications easy • Let you develop and debug AJAX applications in the Java language using the Java development tools of your choice > NetBeans or Eclipse • Provides Java-to-JavaScript compiler and a special web browser that helps you debug your GWT applications > When you deploy your application to production, the compiler translates your Java application to browser-compliant JavaScript and HTML
令Sn Two Modes of Running GWT App Hosted mode Your application is run as java bytecode within the java Virtual Machine(JVM) You will typically spend most of your development time in hosted mode because running in the JVM means you can take advantage of Java's debugging facilities Web mode your application is run as pure javaScript and HtML compiled from your original Java source code with the GWT Java-to-Java Script compiler When you deploy your GWT applications to production, you deploy this java Script and html to your web servers, so end users will only see the web mode version of your application Sourcehttp://code.googlecom/webtoolkit/
Source: http://code.google.com/webtoolkit/ 7 Two Modes of Running GWT App • Hosted mode > Your application is run as Java bytecode within the Java Virtual Machine (JVM) > You will typically spend most of your development time in hosted mode because running in the JVM means you can take advantage of Java's debugging facilities • Web mode > Your application is run as pure JavaScript and HTML, compiled from your original Java source code with the GWT Java-to-JavaScript compiler > When you deploy your GWT applications to production, you deploy this JavaScript and HTML to your web servers, so end users will only see the web mode version of your application
令Sn Why Use Java Programming Language for AJAX Development? Static type checking in the Java language boosts productivity while reducing errors Common JavaScript errors typos, type mismatches) are easily caught at compile time rather than by users at runtime Code prompting/completion is widely available Automated Java refactoring is pretty snazzy these days Java-based oo designs are easier to communicate and understand, thus making your AjAX code base more comprehensible with less documentation Sourcehttp://code.googlecom/webtoolkit/
Source: http://code.google.com/webtoolkit/ 8 Why Use Java Programming Language for AJAX Development? • Static type checking in the Java language boosts productivity while reducing errors. • Common JavaScript errors (typos, type mismatches) are easily caught at compile time rather than by users at runtime. • Code prompting/completion is widely available • Automated Java refactoring is pretty snazzy these days. • Java-based OO designs are easier to communicate and understand, thus making your AJAX code base more comprehensible with less documentation
令Sn Why GWT? No need to learn/use JavaScript language Leverage Java programming knowledge you already have No need to handle browser incompatibilities and quirks GWT handles them for you No need to learn/use dom apis Use Java aPis No need to handle forward /backward buttons browser-history s gWt handles it for you No need to build commonly used Widgets > Most of them come with gwt Sourcehttp://code.googlecom/webtoolkit/ 9
Source: http://code.google.com/webtoolkit/ 9 Why GWT? • No need to learn/use JavaScript language > Leverage Java programming knowledge you already have • No need to handle browser incompatibilities and quirks > GWT handles them for you • No need to learn/use DOM APIs > Use Java APIs • No need to handle forward/backward buttons browser-history > GWT handles it for you • No need to build commonly used Widgets > Most of them come with GWT
令Sn Why GWT? Leverage various tools of Java programming language for writing/debugging/testing For example, NetBeans or Eclipse JUnit integration GWT's direct integration with JUnit lets you unit test both in a debugger and in a browser and you can even unit test asynchronous RPcs Internationalization GWT includes a flexible set of tools to help you internationalize your applications and libraries GWT internationalization support provides a variety of techniques to internationalize strings, typed values, and classes Sourcehttp://codegoogle.com/webtoolkit10
Source: http://code.google.com/webtoolkit/ 10 Why GWT? • Leverage various tools of Java programming language for writing/debugging/testing > For example, NetBeans or Eclipse • JUnit integration > GWT's direct integration with JUnit lets you unit test both in a debugger and in a browser and you can even unit test asynchronous RPCs • Internationalization > GWT includes a flexible set of tools to help you internationalize your applications and libraries > GWT internationalization support provides a variety of techniques to internationalize strings, typed values, and classes