vaadin7
DESCRIPTION
My Vaadin 7 presentation at ConfessTRANSCRIPT
![Page 1: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/1.jpg)
Vaadin 7Joonas LehtinenFounder / Vaadin@joonaslehtinen
![Page 2: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/2.jpg)
Intro toVaadin
new Label(“Hello world”)
![Page 3: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/3.jpg)
New in
7
![Page 4: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/4.jpg)
Gettingstarted
QA
![Page 5: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/5.jpg)
![Page 6: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/6.jpg)
User interface framework for rich
web applications
![Page 7: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/7.jpg)
htmljava
![Page 8: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/8.jpg)
Why on earth?
![Page 9: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/9.jpg)
![Page 10: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/10.jpg)
expectations
![Page 11: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/11.jpg)
reality
![Page 12: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/12.jpg)
businessconsumer
“million” users “500” users
>>100,000! / view 5,000! / view
10 views1!/user
50 views500!/user
![Page 13: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/13.jpg)
ChallengeHow to build consumer
grade UX with business system budget
![Page 14: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/14.jpg)
How?
![Page 15: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/15.jpg)
123Key Ideas
![Page 16: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/16.jpg)
1RichComponents
![Page 17: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/17.jpg)
User IntefaceData Source
Theme
![Page 22: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/22.jpg)
![Page 23: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/23.jpg)
![Page 24: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/24.jpg)
![Page 25: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/25.jpg)
![Page 26: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/26.jpg)
![Page 27: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/27.jpg)
![Page 28: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/28.jpg)
User IntefaceData Source
Theme
![Page 33: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/33.jpg)
User IntefaceData Source
Theme
![Page 34: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/34.jpg)
![Page 35: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/35.jpg)
InMemory, Bean, Method, Collection, JDBC, JPA, Hibernate, TextFile, FileSystem, Properties, EclipseLink, Lucene, Mockups, GAE, ...
![Page 36: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/36.jpg)
2Server + Client
![Page 37: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/37.jpg)
Web application layers
JavaScriptJava toJavaScript
Webserver
Backendserver
required optional optionalrequired
RPC
optional
Vaa
din
required optionalrequired
GW
T
requiredrequiredJS
requiredrequired
required required
![Page 38: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/38.jpg)
How does it work, really?
![Page 39: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/39.jpg)
![Page 40: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/40.jpg)
• Initial HTML• CSS (theme)• Images• JavaScript
1.2M total
307k
compress
135k
reducedwidgetset
![Page 41: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/41.jpg)
• name=”Joonas”• button clicked
261 bytes
![Page 42: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/42.jpg)
![Page 43: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/43.jpg)
• name=”Joonas”• button clicked
261 bytes
• Add notification
267 bytes
![Page 44: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/44.jpg)
Hello World!
![Page 45: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/45.jpg)
![Page 46: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/46.jpg)
https://github.com/vaadin/documentmanager
https://vaadin.com/learn
Source
HOWTO Screencast
![Page 47: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/47.jpg)
3EmbracingJava
![Page 48: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/48.jpg)
Any languageon JVM
![Page 49: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/49.jpg)
Internet ExplorerChromeFirefoxSafariOpera
iOSAndroid
![Page 50: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/50.jpg)
Nobrowserplugins
Nothing toinstall
![Page 51: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/51.jpg)
Servlet Portlet
(most) clouds
![Page 52: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/52.jpg)
EclipseIntelliJ IDEA
NetbeansMaven
Ant∙ ∙ ∙
![Page 53: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/53.jpg)
Vaadin7today
![Page 54: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/54.jpg)
v32002
v0.12001
OpenSource
![Page 55: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/55.jpg)
v42006
Ajax
v52007
![Page 56: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/56.jpg)
7Febv6
2009
![Page 57: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/57.jpg)
934 tickets closed during 16 months of development
3939 commits made by 23 authors
Oldest ticket created 3/2008Newest ticket 2/2013
3939 commits made by 23 authors93 % by 6 persons
> 1 000 000 lines of code touched
![Page 58: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/58.jpg)
Completestack
Renewedfrom Inside
Sass
JS
HTML5+=GWT
RPCState
UI
Field
![Page 59: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/59.jpg)
![Page 60: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/60.jpg)
![Page 61: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/61.jpg)
![Page 62: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/62.jpg)
![Page 63: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/63.jpg)
![Page 64: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/64.jpg)
![Page 65: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/65.jpg)
![Page 66: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/66.jpg)
![Page 67: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/67.jpg)
![Page 68: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/68.jpg)
![Page 70: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/70.jpg)
Favorite picks7
![Page 71: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/71.jpg)
Vaadin += GWT
![Page 72: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/72.jpg)
![Page 73: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/73.jpg)
![Page 74: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/74.jpg)
![Page 75: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/75.jpg)
GWTCompatible
![Page 76: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/76.jpg)
Server-
Client-
side
Optim
ized for
Productivity
Opt
imiz
ed fo
r
Cont
rol
![Page 77: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/77.jpg)
Architecture
![Page 78: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/78.jpg)
![Page 79: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/79.jpg)
New Windowing API
![Page 80: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/80.jpg)
![Page 81: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/81.jpg)
public class Vaadin6App extends Application {
public void init() { setMainWindow(createWindow()); }
public Window getWindow(String name) { Window window = super.getWindow(name); if (window == null) { window = createWindow(); window.setName(name); addWindow(window); } return window; }
private Window createWindow() { Window window = new Window("Vaadin 6 Application"); window.addComponent(new TextField("What is your name")); window.addComponent(new Button("Do not push me")); return window; }
}
![Page 82: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/82.jpg)
@Title("Vaadin 7 Application")public class HellowUI extends UI {
protected void init(VaadinRequest request) { setContent(new VerticalLayout( new TextField("What is your name"), new Button("Do not push me"))); }
}
![Page 83: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/83.jpg)
@PreserveOnRefresh@Title("Vaadin 7 Application")public class HellowUI extends UI {
protected void init(VaadinRequest request) { setContent(new VerticalLayout( new TextField("What is your name"), new Button("Do not push me"))); }
}
![Page 84: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/84.jpg)
Built-in high levelView management
Demo
![Page 85: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/85.jpg)
Sass
Demo
![Page 86: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/86.jpg)
RedesignedForms
![Page 87: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/87.jpg)
public class Employee { String firstName; String lastName; double salary; Date birthDate; // Getters, setters, …}
Form form = new Form();form.setItemDataSource( new BeanItem<Employee>(employee));
6
![Page 88: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/88.jpg)
![Page 89: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/89.jpg)
![Page 90: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/90.jpg)
form.setFormFieldFactory(new FormFieldFactory() {
public Field createField(Item item, Object propertyId, Component uiContext) {
if ("birthDate".equals(propertyId)) { DateField df = new DateField(); df.setResolution(DateField.RESOLUTION_DAY); return df; }
// ..
return DefaultFieldFactory.createFieldByPropertyType(item .getItemProperty(propertyId).getType()); } });
6
![Page 91: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/91.jpg)
GridLayout form = new GridLayout(2,2) {
TextField firstName = new TextField("First name"); TextField lastName = new TextField("Last name"); TextField salary = new TextField("Salary"); DateField birthDate = new DateField("Birth date");
{ birthDate.setResolution(Resolution.DAY); setSpacing(true); addComponent(firstName); addComponent(lastName); addComponent(birthDate); addComponent(salary); } };
BeanFieldGroup<Employee> fieldGroup = new BeanFieldGroup<Employee>(Employee.class); fieldGroup.bindMemberFields(form); fieldGroup.setItemDataSource(new BeanItem<Employee>(employee));
7
![Page 92: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/92.jpg)
public class Person {
@Size(min = 5, max = 50) private String name;
@Min(0) @Max(100) private int age;
// + constructor + setters + getters}
![Page 93: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/93.jpg)
model
presentation
“Joonas Lehtinen”
Component
firstName = “Joonas”lastName = “Lehtinen”
Demo
![Page 94: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/94.jpg)
RPCState
![Page 95: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/95.jpg)
Component
Widget
Paintable
server
clientVariable
Changes
UIDL
6
![Page 96: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/96.jpg)
server
client
Component
Widget
Connector
RPC
7State
Demo
![Page 97: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/97.jpg)
public interface ButtonRpc extends ServerRpc { public void click(MouseEventDetails details);}
private ButtonRpc rpc = RpcProxy.create(ButtonRpc.class, this);
public void onClick(ClickEvent event) { rpc.click( new MouseEventDetails(event));}
serverclient
private ButtonRpc rpc = new ButtonRpc() { public void click( MouseEventDetails details) { // do stuff }};
public Button() { registerRpc(rpc);}
Demo
![Page 98: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/98.jpg)
JavaScriptAdd-ons
![Page 99: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/99.jpg)
getPage().getJavaScript().addFunction("myCallback", new JavaScriptCallback() { public void call(JSONArray arguments) throws JSONException { // Do something with the arguments } });
Publish API from Java
window.myCallback('foo', 100);
Use from JavaScript
![Page 100: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/100.jpg)
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(); }
}
Server-side Java API for Widget
![Page 101: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/101.jpg)
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); } });}
Widget implementation in JavaScript
![Page 102: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/102.jpg)
Roadmap
![Page 103: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/103.jpg)
Vaadin Framework 7.1• Server push
• Based on Atmosphere Framework• Web sockets, long polling and polling
• Calendar (now under Apache 2.0 license)• Limited IE 10 support without touch• CSS string inject• Renewed debug console features◦Redesigned UI/UX for debug window◦Optimize widgetset
• Arithmetics for SASS• Packaging SCSS / CSS for add-ons
April
![Page 104: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/104.jpg)
![Page 105: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/105.jpg)
Vaadin Charts 1.1
• New charts: • Funnel• Box plot• Waterfall• Bubble• Error bars
• Different coloring of a graph above and below a threshold• Pinch zooming and panning for touch devices
May
![Page 106: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/106.jpg)
![Page 107: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/107.jpg)
![Page 108: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/108.jpg)
![Page 109: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/109.jpg)
![Page 110: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/110.jpg)
![Page 111: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/111.jpg)
![Page 112: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/112.jpg)
![Page 113: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/113.jpg)
Vaadin TouchKit 3.0
• Vaadin 7 support
• New components: • URLField• Datefield• Combobox
April
![Page 114: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/114.jpg)
Vaadin TestBench 3.1
• Headless mode with Phantom JS
May
![Page 115: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/115.jpg)
Vaadin CDI
• Registering UI with @CDIUI annotation (web.xml no more)• Registering Views (to CDIViewManager)• Decoupling UI:s by injecting UI components (handy for MVP)• Injecting all the normal Java EE stuff (ejbs, events, ...)• UI Scope to complement the session scope• Supports JAAS (set @RolesAllowed for a View, ...)
• 1.0 alpha to be released any day now (in staging repo today)• Apache 2.0 License
![Page 116: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/116.jpg)
Vaadin JPAContainer
• License changed to Apache 2.0• Vaadin 7 compatible version released in March
![Page 117: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/117.jpg)
gettingstarted
![Page 118: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/118.jpg)
![Page 119: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/119.jpg)
Eclipse
![Page 120: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/120.jpg)
mvn archetype:generate-DarchetypeGroupId=com.vaadin -DarchetypeArtifactId= vaadin-archetype-application-DarchetypeVersion=7.0.3
Maven
![Page 121: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/121.jpg)
Migration Guide:Vaadin 6 to 7
https://vaadin.com/wiki/-/wiki/Main/Migrating+from+Vaadin+6+to+Vaadin+7
![Page 122: Vaadin7](https://reader033.vdocument.in/reader033/viewer/2022060108/554f4995b4c905b9508b47a6/html5/thumbnails/122.jpg)
Download for Freevaadin.com/book
728 pages
9 789529 319701
ISBN 978-952-93-1970-1
PDF, ePub, HTML