Professional Documents
Culture Documents
Ophir Radnitz
Consultant, AlphaCSP
2
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Mission Statement
browser.”
3
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Overview
• Introduction
• Demo Features
• Discussion
• Summary
4
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Overview
• Introduction
• Demo Features
• Discussion
• Summary
5
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Overview
6
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Features (1 of 2)
• JUnit integration
• Built-in benchmarking
• Easy I18N
• Debugging
• Your IDE
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
…Powered By GWT
9
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
History
10
Class Library
GWT Compiler
12
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Where does Speed Come From?
• Deferred binding
• Versioned cache
• Efficient RPC
14
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Hosted Mode
15
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Entry Point Anatomy
MyPage.html
<script language="javascript"
src="com.alphacsp.demo.My
Module.nocache.js“/>
com.alphacsp.demo.MyM
odule. <MD5>.cache.js“
16
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Compiled Javascript
17
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Project structure
Resource Description
18
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Configuration
A module file:
<module>
</module>
Contact.gwt.xml
19
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda
• Introduction
• Demo Features
• Discussion
• Summary
20
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Base HTML Template
Contact.html
html>
<head>
<!-- Properties can be specified to influence deferred binding -->
<meta name='gwt:property' content='locale=en_UK'>
<!-- Include a history iframe to enable full GWT history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" style="width:0;height:0;border:0“
Access and
<div id=“niceWidgetThingHere”/> manipulate
</body> however you like
/html>
21
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
View Technology (1 of 2)
LoginView.java
FormPanel loginPanel = new FormPanel();
loginPanel.setFrame(true);
loginPanel.setBorders(true);
loginPanel.setButtonAlign(HorizontalAlignment.CENTER);
loginPanel.setHeading(constants.login());
loginPanel.setFieldWidth(210);
loginPanel.setLabelWidth(100);
loginPanel.setWidth(400);
22
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
View Technology (2 of 2)
Client-side event
handling
Button loginButton = new Button(constants.loginButton());
oginButton.setType("submit");
oginButton.addSelectionListener(new SelectionListener<ButtonEvent>() {
@Override public void componentSelected(ButtonEvent be) {
login(usernameField.getValue(), passwordField.getValue());
}
});
oginPanel.addButton(loginButton);
LoginView.java
23
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Page Flow
What’s a page?
private void switchToView(View
view) {
viewport.removeAll();
viewport.add(view.getContent());
viewport.layout();
}
Controller.java
24
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Form Binding
25
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Pagination
/ table
TableColumnModel columnModel = new TableColumnModel(columns);
Table table = new Table(columnModel);
/ pagingLoader
PagingLoader<PagingLoadConfig> pagingLoader = new BasePagingLoader(proxy);
/ store
istStore<Employee> store = new ListStore<Employee>(pagingLoader);
/ binder
ew TableBinder<Employee>(table, store);
26
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Table Sorting
pagingLoader.setRemoteSort(false);
LookupView.java
27
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Validation
emailField.setAllowBlank(false);
LookupView.java
emailField.setRegex("[a-zA-Z0-9]@+");
emailField.getMessages().setRegexText(“Please use alphabet
only);
emailField.setValidator(new Validator() {
public String validate(Field field, String value) {
// …
}
});
28
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
AJAX (1 of 2)
LoginService.java
RemoteServiceRelativePath("lookup")
ublic interface LoginService extends RemoteService {
Registering the service
Employee login(String userName, String password) throws UnsuccessfulLoginExcep
under this name
31
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
I18N Support (2 of 2)
Locale resolution:
By metadata:
<head>
<meta name="gwt:property" content="locale=ja_JP">
<head>
myPage.html
By request parameter:
http://www.example.org/myapp.html?locale=fr_CA
32
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Error Handling
GWT.setUncaughtExceptionHandler(new
GWT.UncaughtExceptionHandler() {
33
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda
• Introduction
• Demo Features
• Discussion
• Summary
34
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Documentation
• GWT reference
• Decent Javadoc
• Active Forum
• Books
35
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Did You Know?
36
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Design
• Programmatic layouting
• Everything is CSS
37
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Roadmap
• Simplified RPC
• Animation/effects support
• IntelliJ IDEA
• Instantiations
• Maven
39
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Integrations
• HTML
40
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
3rd party
• Ext-GWT
• Gwittir
• GWT Rocket
• GWT Log
41
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Agenda
• Introduction
• Demo Features
• Discussion
• Summary
42
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Cons
• It runs as Javascript
– No real concurrency
• Easy to mix
• Conversational state
• http://code.google.com/webtoolkit/
• http:// www.onGWT.com
• http://del.icio.us/liqweed/GWT
45
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar
Thank
You !
46
Copyright AlphaCSP Israel 2008 – Web Framework Playoff Seminar