More Related Content Similar to Google Web Toolkit: A Java-based framework for building complex browser-based applications and web sites without using JavaScript Similar to Google Web Toolkit: A Java-based framework for building complex browser-based applications and web sites without using JavaScript (20) Google Web Toolkit: A Java-based framework for building complex browser-based applications and web sites without using JavaScript7. Ajax
• JavaScript
• jQuery, Dojo, mootools, ...
•
• Firebug, IE Developer Toolbar, ...
9. GWT
• Java JavaScript
• java.lang.*, java.util.* Java API
• JavaScript
✓ Java
11. GWT
•
• CPU
•
• HTML5
• Canvas, WebSockets, Web Storage, ...
• JavaScript RIA
12. WebGL + GWT
Quake II GWT Port
http://code.google.com/p/quake2-gwt-port/
16. Button sendButton = new Button(“send”);
TextBox nameField = new TextBox();
Label errorLabel = new Label();
...
panel.add(nameField);
panel.add(sendButton);
...
18. UiBinder New in 2.0
• XML
<ui:UiBinder xmlns:ui='urn:ui:com.google.gwt.uibinder'
xmlns:g='urn:import:com.google.gwt.user.client.ui'>
<g:HTMLPanel>
Hello,
<g:ListBox ui:field='listBox' visibleItemCount='1'/>.
</g:HTMLPanel>
</ui:UiBinder>
19. UI
MenuBar
SuggestBox
DatePicker
RichTextArea
20. UI
Ext GWT
Ext JS
Look & Feel
http://www.extjs.com/products/gwt/
21. Google API UI
• Google Maps API for GWT
• Google Chart Tools for GWT
• etc
22. Ajax
• JavaScript Java
-
• Java GWT
23. GWT RPC
RemoteService RemoteServiceImpl
1 1
RemoteServiceAsync
24. public interface AddService extends RemoteService {
int add(int a, int b);
}
Google Plugin
public interface AddServiceAsync {
void add(int a, int b, AsyncCallback<Integer> callback);
}
25. RPC
service.add(a, b, new AsyncCallback<Integer>() {
public void onSuccess(Integer result) {
//
}
public void onFailure(Throwable caught) {
//
}
});
26. JSNI (JavaScript Native Interface)
• JavaScript
• native
public static native String encode(String s) /*-{
return encodeURIComponent(s);
}-*/;
27. public interface MyMessages extends Messages {
public String edit();
public String delete();
}
MyMessages_ja.properties MyMessages_en.properties
edit= ... edit=Edit...
delete= delete=Delete
28. New in 2.0
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
//
// JS
}
public void onFailure(Throwable caught) {
}
});
29. • Ajax
• GWT URL
http://example.com/foo/Foo.html#state1
•
34. • GWT HTML5
Web
• GWT RPC
•