<!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-6)s(google-web-toolkit-doc-1-6)t(ReleaseNotes_1_6)">What's new in GWT 1.6?</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-6&s=google-web-toolkit-doc-1-6&t=FAQ">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-6&s=google-web-toolkit-doc-1-6&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-6&s=google-web-toolkit-doc-1-6&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-6&s=google-web-toolkit-doc-1-6&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/war/Hello.html">Hello World</a>
            <div>
               The simplest application you can write with GWT.
            </div>
         </li>
         <li>
            <a href="samples/Showcase/war/Showcase.html">Showcase</a>
            <div>
               Complex UI illustrating Widgets in action.
            </div>
         </li>
         <li>
            <a href="samples/DynaTable/war/DynaTable.html">Dynamic Table</a>
            <div>
               How to take advantage of polymorphic RPC.
            </div>
         </li>
         <li>
            <a href="samples/Mail/war/Mail.html">Mail</a>
            <div>
               Look and feel similar to a traditional desktop application.
            </div>
         </li>
         <li>
            <a href="samples/JSON/war/JSON.html">JSON</a>
            <div>
               Interoperation with a JSON service.
            </div>
         </li>
         <li>
            <a href="samples/I18N/war/I18N.html">I18N</a>
            <div>
               A glimpse at GWT's internationalization facilities.
            </div>
         </li>
      </ul>

   </body></html>
