<!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="http://code.google.com/docreader/#p(google-web-toolkit-doc-1-5)s(google-web-toolkit-doc-1-5)t(Whatsnewin15)">What's new in GWT 1.5?</a> (online)
            <div>
              <a href="release_notes.html">Point releases notes</a> are also available locally.
            </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/docreader/#p(google-web-toolkit-doc-1-5)s(google-web-toolkit-doc-1-5)t(FAQ_Intro)">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="http://code.google.com/webtoolkit/gettingstarted.html">Getting Started Guide</a> (online)
            <div>
               A step-by-step tutorial on creating your first app from scratch.
            </div>
         </li>
         <li>
            <a href="http://code.google.com/docreader/#p(google-web-toolkit-doc-1-5)s(google-web-toolkit-doc-1-5)t(DevGuideDeveloperGuide)">Developer Guide</a> (online)
            <div>
               The Developer Guide explains the key concepts in GWT.
            </div>
         </li>
         <li>
            <a href="http://code.google.com/docreader/#p(google-web-toolkit-doc-1-5)s(google-web-toolkit-doc-1-5)t(DevGuideWidgetGallery)">
               Widget Gallery</a> (online)
            <div>
               Browse some of the built-in GWT widgets and panels.
            </div>
         </li>
         <li>
            <a href="http://code.google.com/docreader/#p(google-web-toolkit-doc-1-5)s(google-web-toolkit-doc-1-5)t(DevGuideCommandLineTools)">Command-line 
               Tools</a> (online)
            <div>
               Scripts to help you get started with GWT projects.
            </div>
         </li>
         <li>
            <a href="doc/javadoc/index.html">API Reference</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/Showcase/www/com.google.gwt.sample.showcase.Showcase/Showcase.html">Showcase</a>
            <div>
               Complex UI illustrating 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>
