s
3
3.5 Browsers to support in 2012
yo
ur
ap
Desktop
3.5 Browsers to support in 2012
browsers
pp
p
su
lic
pp
at
r 9 io n
or
t?
8% U
I fo
ov of
er ap r
th take ps
e
nu n
ro
pe mb
er
.
36
.1%
6/7
IE 6/7
6/7
Opera
Safari
14%
IE 6/7
14%
Ta
bl
et
s
18%
9
10
36%
36%
18%
Safari
IE 9
79%
79%
9
98.1%
IE 10
80%
80%
10
2.
O
Opera
th
er
Chrome
s
1%
94%
iP
ad
94%
An
3
W dr6
in o.1
do id%
“S
w What kind of devices does yourh app support?
in ince
ex t e gw
s
po plai ent t is
8
ph pul n w erp us
e
r
a
h
IE 9
IE 10
Browsers developers expect to support in 2013
Browsers developers expect to support in 2013
on r
is
d
es tha y ta e, t ex
”
n ble his ten
su ts
m si
Chrome
in
8
54%
54%
IE 8
Firefox
Ph
on
es
94% iPh
A
94%nd one
2
Firefox
inc
e
ex the gw
po plain ente
ph pula wh rp
on r t y t
es ha ab
n
”
su
pp
8
IE 8
“S
W 5 ro
P .7 id
8%
Da
ni
el
Web application layers
JS
GWT Vaadin
Backend
server
Web
server
Communication
Java to
JavaScript
JavaScript
required
required
optional
optional
optional
required
required
required
required
optional
required
required
required
required
Web application layers
JS
GWT Vaadin
Backend
server
Web
server
Communication
Java to
JavaScript
JavaScript
required
required
optional
optional
optional
required
required
1 layer
required
vs
required
3 layers
-50% codelines
-50% development
required
required
-50% maintenance
easier to learn
required
required
optional
Server-side
Client-side GWT-RPC
Client-side Vaadin-RPC
First name
Last name
Phone number
Table cell
Table cell
Server-side
Email address
Table cell
Offline
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Table cell
Far far away, behind the
far from the countries Vok
Consonantia, there live th
Separated they live in Bo
right at the coast of the S
large language ocean.
Table cell
Edit
First name
Phone number
Delete
New
Last name
Email address
Save
Cancel
A small river named Dude
place and supplies it with
regelialia. It is a paradise
which roasted parts of se
your mouth.
Even the all-powerful Poi
control about the blind tex
almost unorthographic life
however a small line of b
name of Lorem Ipsum de
for the far World of Gram
Oxmox advised her not to
because there were thou
Commas.
Publish API from Java
getPage().getJavaScript().addFunction("myCallback",
new JavaScriptCallback() {
public void call(JSONArray arguments) throws JSONException {
// Do something with the arguments
}
});
Use from JavaScript
window.myCallback('foo', 100);
Server-side Java API for Widget
!
public class MyWidget extends AbstractJavaScriptComponent {
public MyWidget() {
addFunction("plotClick", new JavaScriptFunction() {
public void call(JSONArray arguments) throws JSONException {
// Do something with the event
}
});
}
!
public static class MyWidgetState extends JavaScriptComponentState {
public List<List<List<Double>>> plotSeriesData =
new ArrayList<List<List<Double>>>();
}
public MyWidgetState getState() { return (MyWidgetState) super.getState(); }
!
!
}
Widget implementation in JavaScript
window.com_example_MyWidget = function() {
var element = $(this.getWidgetElement());
// Draw a plot for any server-side (plot data) state change
this.onStateChange = function() {
$.plot(element, this.getState().series, {grid: {clickable: true}});
}
!
// Communicate local events back to server-side component
element.bind('plotclick', function(event, point, item) {
if (item) {
var onPlotClick = this.getCallback("plotClick");
onPlotClick(item.seriesIndex, item.dataIndex);
}
});
}