Joonas Lehtinen
Founder & CEO
@joonaslehtinen
Beyond 7
Questions &
answers
Roadmap
Quick recap of
Vaadin 7
7.1
Feature by
feature
Agenda
Vaadin
7
v3
2002
v0.1
2001
Open
Source
v4
2006
Ajax
v5
2007
7
Feb
v6
2009
Complete
stack
Renewed
from Inside
Sass
JS
HTML5
+=
GWT
RPC
State
UI
Field
vaadin.com/7
Vaadin
7.1
@VaadinServlet
Configuration
https://vaadin.com/wiki/-/wiki/Main/Creating+a+servlet+3.0+application
@Theme("foo")
public class FooUI extends UI {
	 @WebServlet(value = "/*", asyncSupported = true)
	 @VaadinServletConfiguration(productionMode = false, ui = FooUI.class)
	 public static class Servlet extends VaadinServlet {
	 }
	 @Override
	 protected void init(VaadinRequest request) {
	 	 ...
	 }
}
@Theme("foo")
public class FooUI extends UI {
	 @WebServlet(value = "/*", asyncSupported = true)
	 @VaadinServletConfiguration(productionMode = false, ui = FooUI.class)
	 public static class Servlet extends VaadinServlet {
	 }
	 @Override
	 protected void init(VaadinRequest request) {
	 	 ...
	 }
}
Server initiated
events / Push
https://vaadin.com/wiki/-/wiki/Main/Using+server+initiated+events
server
client
Component
Widget
Connector
RPC
State
Sample
http://demo.vaadin.com/sampler/#foundation/push
@Push MyUI
<async-supported/> or
asyncSupported = true
vaadin-push
dependency
UI.getCurrent().access(new Runnable() {
public void run() {
layout.addComponent(new Label("foo”));
}
});
Debug
window
?debug
Optimizing widgetset...
278k 130k
Compiling
themes
Add-on
theme
packaging
https://vaadin.com/wiki/-/wiki/Main/Packaging+SCSS+or+CSS+in+an+add-on
Inject CSS
dynamically
https://vaadin.com/wiki/-/wiki/Main/Dynamically+injecting+CSS
getPage().getStyles().add(
".reindeer.v-app { background: #"
+ Math.round(Math.random() * 899 + 100) +
";}"
);
Sample
http://demo.vaadin.com/sampler/#foundation/cssinject
Calendar
https://vaadin.com/wiki/-/wiki/Main/Migrating+from+Vaadin+7.0+to+Vaadin+7.1
Accessibility
with WAI-ARIA
https://vaadin.com/blog/-/blogs/first-step-in-accessibility
Button
TextField
PasswordField
TextArea
DateField
WAI-ARIA enabled
components
CheckBox
ComboBox
ButtonGroup
Tree
Tooltip
Roadmap
Roadmap
Vaadin 7.2
GWT compatibility
Application archetype
Vaadin CDI 1.0 beta
Vaadin TouchKit 4.0
Vaadin TestBench 4.0
Netbeans plug-in
Spreadsheet
Grid
• Client-side data model
• Client-side APIs
• Replaces Table and TreeTable
New theme that leverages SASS
Responsive extension built-in
http://vaadin.com/addon/vaadin-responsive
Vaadin 7.2
<Beat design example>
// Vaadin UI
protected void init(VaadinRequest request) {
new Responsive(this);
}
// CSS
.v-ui[width-range~="0-800px"] {
/* Styles that apply when the UI's width is
between 0 and 800 pixels */
}
.v-ui[width-range~="801px-"] {
/* Styles that apply when the UI's width is
over 800 pixels */
}
http://demo.vaadin.com/responsive/
Full stack example
Suitable for working on all layers
• Server-side Java
• Client-side Java
• JavaScript
Modularization and full tools support
Application Archetype
Finalize what is already available as
alpha in directory
http://vaadin.com/addon/vaadin-cdi
Features
• Registering UI with @CDIUI and Views
• Decoupling by injecting components
• Injecting EJBs, events, ...
• UI Scope
• Supports JAAS
Vaadin CDI 1.0 beta
New cross-platform theme
http://demo.vaadin.com/parking/
Windows Phone 8 support
Vaadin TouchKit 4.0
Vaadin Driver :
New way of building selectors
Replacing recorder with debug window
Vaadin TestBench 4.0
Spreadsheet
Netbeans plugin
http://gwtcreate.com/
San Francisco - Dec 12-13
Frankfurt - Dec 17-18

Beoynd Vaadin 7