Beruflich Dokumente
Kultur Dokumente
Topics Covered
Short Introduction to GWT Architectural Overview Simple Code Example MVC Code Example Server Communication using GWT RPC Open source Libraries
Introduction to GWT
Key Features
Reusable UI components Really Simple RPC
Features
Read more on GWT Overview Page
Key Features
Real Debugging Internationalization
Features
Read more on GWT Overview Page
JUnit Integration
Install GWT
E:\Work\GWT-Demo>set PATH=e:\worksoft\gwt-windows-1.4.60;%PATH% E:\Work\GWT-Demo>projectCreator -eclipse SimpleDemo Created directory E:\Work\GWT-Demo\src Created directory E:\Work\GWT-Demo\test Created file E:\Work\GWT-Demo\.project Created file E:\Work\GWT-Demo\.classpath E:\Work\GWT-Demo>applicationCreator -eclipse SimpleDemo com.gwt.demo.client.SimpleDemo Created directory E:\Work\GWT-Demo\src\com\gwt\demo Created directory E:\Work\GWT-Demo\src\com\gwt\demo\client Created directory E:\Work\GWT-Demo\src\com\gwt\demo\public Created file E:\Work\GWT-Demo\src\com\gwt\demo\SimpleDemo.gwt.xml Created file E:\Work\GWT-Demo\src\com\gwt\demo\public\SimpleDemo.html Created file E:\Work\GWT-Demo\src\com\gwt\demo\client\SimpleDemo.java Created file E:\Work\GWT-Demo\SimpleDemo.launch Created file E:\Work\GWT-Demo\SimpleDemo-shell.cmd Created file E:\Work\GWT-Demo\SimpleDemo-compile.cmd
SimpleDemo.java
This is the Entry Point Entry Point is like Main Method Widgets are added to RootPanel
SimpleDemo.html
1. 2. 3. This is the final deliverable HTML/JSP/ASP/PHP Includes JS file for SimpleDemo Includes PlaceHolder Elements
RootPanel
HorizontalPanel
VerticalPanel
new ClickListener(){ public void onClick(Widget sender) { int leftIndex=leftListBox.getSelectedIndex(); if(leftIndex==-1){ Window.alert("Select an Item from Left List Box"); } else{ String item=leftListBox.getItemText(leftIndex); leftListBox.removeItem(leftIndex); rightListBox.addItem(item); } } }
MVC Demo
MVC Demo
MVC Demo
Observer
update(Observable mode)
Observerable
# observers + addObserver() +removeObserver() + notifyObserver()
FahrView
CelsView
ThermoView
TempModel
# temperature + setTemp(int temp) +int getTemp()
MVC Demo
Observer
update(Observable mode)
Observerable
# observers + addObserver() +removeObserver() + notifyObserver()
FahrView
CelsView
ThermoView Renders
TempModel
# temperature + setTemp(int temp) +int getTemp()
MVC Demo
Observer
update(Observable mode)
Observerable
# observers + addObserver() +removeObserver() + notifyObserver()
FahrView
CelsView
ThermoView Register
TempModel
# temperature + setTemp(int temp) +int getTemp()
MVC Demo
Observer
update(Observable mode)
Observerable
# observers + addObserver() +removeObserver() + notifyObserver()
Changes
FahrView CelsView ThermoView TempModel
# temperature + setTemp(int temp) +int getTemp()
MVC Demo
Observer
update(Observable mode)
Observerable
# observers + addObserver() +removeObserver() + notifyObserver()
FahrView
CelsView
ThermoView Notifies
TempModel
# temperature + setTemp(int temp) +int getTemp()
RPC Demo
RPC Demo
RPC Demo
LocationServiceUtil Code
Use GWT Glue to link LocationService and LocationServiceAsync classes LocationServiceAsync serviceAsync = (LocationServiceAsync) GWT .create(LocationService.class); Set the Service s Entry point (aka url)
LocationServiceUtil Code
public class LocationServiceUtil { public static LocationServiceAsync createService() { LocationServiceAsync serviceAsync = (LocationServiceAsync) GWT .create(LocationService.class); ((ServiceDefTarget) serviceAsync).setServiceEntryPoint(GWT.getModuleBaseURL()+ "/LocationService"); return serviceAsync; } }
FocusWidget
ListBox
Extends FocusWidget which extends Widget ListBox does not receive a DoubleClick event as it never sinks it.
AdvListBox
# dblClickListenerCollection + AdvListBox() # onBrowserEvent(Event event)
DblClickListenerCollection
addDblClickListener() removeDblClickListener() fireDblClickEvent(Widget sender)
1 0..*
DblClickListener <<Interface>>
Void onDoubleClick(Widget sender)
MyGWT
GWT-DND