<!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="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="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>
