<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <title>Google Web Toolkit @GWT_VERSION@</title>
      
      <style>
         body {
            background-color: white;
            color: black;
            font-family: Arial, sans-serif;
            font-size: small;
            margin: 20px;
         }

         li {
            margin-bottom: 0.5em;
         }

         li div {
            margin-top: 0.2em;
         }

         code {
            font-size: medium;
         }
      </style></head>

   <body>
      <h1>Google Web Toolkit @GWT_VERSION@</h1>
      Thanks for using Google Web Toolkit. 
      We hope you'll have as much fun using it as we have working on it. 
      <p>
         See you online!
      </p>
      <p>
         <i>-- The Google Web Toolkit Team</i>
      </p>

      <h2>Resources</h2>
      <p>AJAX is hard.  But you're not alone!</p>
      <ul>
         <li>
            <a href="release_notes.html" target="_blank">Release Notes</a>
            <div>
               Details about this release and previous releases.
            </div>
         </li>
         <li>
            <a href="http://code.google.com/webtoolkit/">Google Web Toolkit Home</a> (online)
            <div>
               The big picture.
            </div>
         </li>
         <li>
            <a href="http://groups.google.com/group/Google-Web-Toolkit">Developer Forum</a> (online)
            <div>
               The Developer Forum is the best place to go to discuss GWT, ask or
               answer questions, report bugs, and sync up with other developers. The
               Google Web Toolkit team and other Googlers are active participants in
               the group.
            </div>
         </li>
         <li>
            <a href="http://googlewebtoolkit.blogspot.com/">Google Web Toolkit Blog</a> (online)
            <div>
               Stay up-to-date on the latest goings on.  As new stuff is available, we'll let you know here.
            </div>
         </li>
         <li>
            <a href="http://code.google.com/webtoolkit/faq.html">Frequently Asked Questions</a> (online)
            <div>
               Answers to the initial questions developers have about using GWT, including licensing, upgrades, and so on.
            </div>
         </li>
      </ul>
      <h2>Starting Points</h2>
      <ul>
         <li>
            <a href="doc/html/gettingstarted.html">Getting Started Guide</a>
            <div>
               A step-by-step tutorial on creating your first app from scratch.
            </div>
         </li>
         <li>
            <a href="doc/html/com.google.gwt.doc.DeveloperGuide.html">Developer Guide</a>
            <div>
               The Developer Guide explains the key concepts in GWT.
            </div>
         </li>
         <li>
            <a href="doc/html/com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html">
               Widget Gallery</a>
            <div>
               Browse the built-in GWT widgets.
            </div>
         </li>
         <li>
            <a href="doc/html/com.google.gwt.doc.DeveloperGuide.Fundamentals.CommandLineTools.html">Command-line 
               Tools</a>
            <div>
               Scripts to help you get started with GWT projects.
            </div>
         </li>
         <li>
            <a href="doc/html/gwt.html">API Documentation</a>
            <div>
               Reference documentation for the stuff in <code>gwt-user.jar</code>.
            </div>
         </li>
         <li>
            <a href="doc/javadoc/index.html">Javadoc</a>
            <div>
               The API documentation in standard Javadoc form.
            </div>
         </li>
      </ul>
      <h2>Samples</h2>
      The samples aren't really intended to wow you with mind-blowing flashiness.  
      Their purpose is to demonstrate the mechanics of different techniques you can use when building applications with GWT.
      <ul>
         <li>
            <a href="samples/Hello/www/com.google.gwt.sample.hello.Hello/Hello.html">Hello World</a>
            <div>
               The simplest application you can write with GWT.
            </div>
         </li>
         <li>
            <a href="samples/KitchenSink/www/com.google.gwt.sample.kitchensink.KitchenSink/KitchenSink.html">Kitchen Sink</a>
            <div>
               Widgets in action.
            </div>
         </li>
         <li>
            <a href="samples/DynaTable/www/com.google.gwt.sample.dynatable.DynaTable/DynaTable.html">Dynamic Table</a>
            <div>
               How to take advantage of polymorphic RPC.
            </div>
         </li>
         <li>
            <a href="samples/Mail/www/com.google.gwt.sample.mail.Mail/Mail.html">Mail</a>
            <div>
               Look and feel similar to a traditional desktop application.
            </div>
         </li>
         <li>
            <a href="samples/JSON/www/com.google.gwt.sample.json.JSON/JSON.html">JSON</a>
            <div>
               Interoperation with a JSON service.
            </div>
         </li>
         <li>
            <a href="samples/I18N/www/com.google.gwt.sample.i18n.I18N/I18N.html">I18N</a>
            <div>
               A glimpse at GWT's internationalization facilities.
            </div>
         </li>
         <li>
           <a href="samples/SimpleXML/www/com.google.gwt.sample.simplexml.SimpleXML/SimpleXML.html">SimpleXML</a>
           <div>
              Using GWT's XML parsing classes.
           </div>
         </li>
      </ul>

   </body></html>
