GWT         HTML5
                                   @tan_go238




Friday, September 17, 2010
Agenda




Friday, September 17, 2010
Agenda




Friday, September 17, 2010
GWT?




                                    Compile
                             Java             JavaScript


Friday, September 17, 2010
Agenda




Friday, September 17, 2010
ex) ImageResource, Inliner




Friday, September 17, 2010
Friday, September 17, 2010
Agenda




Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
“Deferred Binding is Google Web Toolkit's answer to
        Java reflection.”

                             http://code.google.com/webtoolkit/doc/1.6/FAQ_Client.html#What_is_Deferred_Binding?




Friday, September 17, 2010
http://www.youtube.com/watch?v=nvti32k4xyU



                    Your Code         Download exactly what you           Your Code
                                      need in a single, optimized,
                                        can’t-go-wrong chunk
                  FireFox 1.0.x                                                IE6

                         en_US                                              en_UK
                                             Single Java
                1D04ADDA.cache.html          Code Base                  15F361B8.cache.html



                    Your Code                                             Your Code
                                      Then cache it on the client
                    Safari 2.0.x        until the sun explodes              Opera 9

                             fr_FR                                           fr_CA

               7EFE4D24.cache.html                                      D415D917.cache.html


Friday, September 17, 2010
private static final PopupImpl impl = GWT.create(PopupImpl.class);

    <module>
      <!-- Fall through to this rule is the browser isn't IE or Mozilla -->
      <replace-with class="com.google.gwt.user.client.ui.impl.PopupImpl">
        <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl"/>
      </replace-with>

        <!-- Mozilla needs a different implementation due to issue #410 -->
        <replace-with class="com.google.gwt.user.client.ui.impl.PopupImplMozilla">
          <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl" />
          <any>
            <when-property-is name="user.agent" value="gecko"/>
            <when-property-is name="user.agent" value="gecko1_8" />
          </any>
        </replace-with>

      <!-- IE has a completely different popup implementation -->
      <replace-with class="com.google.gwt.user.client.ui.impl.PopupImplIE6">
        <when-type-is class="com.google.gwt.user.client.ui.impl.PopupImpl"/>
        <when-property-is name="user.agent" value="ie6" />
      </replace-with>
    </module>

Friday, September 17, 2010
Friday, September 17, 2010
           Button b = new Button("Click me", new ClickHandler() {
                               public void onClick(ClickEvent event) {
                                 GWT.runAsync(new RunAsyncCallback() {
                                   public void onFailure(Throwable caught) {
                                     Window.alert("Code download failed");
                                   }
                                   public void onSuccess() {
                                     Window.alert("Hello, AJAX");
                                   }
                                 });
                               }
                             });




Friday, September 17, 2010
Host Page (Module.html)


                                           Selection Script
                                        (module.nocache.html)


                                           Permutation Script
                       Browser        (Strongly-named.cache.html)   Server

                             onload
             Module starts running
                                          runAsync Fragments



Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Agenda




Friday, September 17, 2010
http://code.google.com/webtoolkit/usingeclipse.html




Friday, September 17, 2010
1. File→New→Web Application Project
  2. Project name            gwtdemo
  3. Use Google Web Toolkit
       Use Google App Engine
                               Finish

  ※Google App Engine




Friday, September 17, 2010
1.
    Run As → Web Application

   2.                        URL   http://127.0.0.1:8888/Gwtdemo.html?gwt.codesvr=127.0.0.1:9997




      ※




Friday, September 17, 2010
1.

           2.                Entry Point   Compile




Friday, September 17, 2010
Agenda




Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
http://code.google.com/events/io/2010/sessions/gwt-html5.html




Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
http://code.google.com/events/io/2010/sessions/gwt-html5.html

Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Friday, September 17, 2010
Google Web Toolkit

                  http://code.google.com/webtoolkit/overview.html


             Google I/O 2010 Sessions

                  http://code.google.com/events/io/2010/sessions.html#GWT




Friday, September 17, 2010
Friday, September 17, 2010

GWT♥HTML5