2013 human talks - vaadin teaser in 10 minutes
TRANSCRIPT
Thinking of U and I
30 seconds ego trip
Nicolas Fränkel
Software developer / architect, author & trainer
+12 years experience
Focused on Quality Code, Build and… GUI
http://blog.frankel.ch & http://morevaadin.com
@nicolas_frankel & @learnvaadin
Java Web Development
JavaServlet API
JSPTaglib
HTML
CSS
JavaScript DOMAJAX
HTTP
Vaadin Development
Java
JavaEE 1.3+ compatible
Just a servlet
@WebServlet(value = "/*", asyncSupported = true)
@VaadinServletConfiguration(productionMode = false,ui = HelloWorldUI.class)
public static class Servlet extends VaadinServlet {}
Hello world code
import com.vaadin.server.VaadinRequest;import com.vaadin.ui.Label;import com.vaadin.ui.UI;
public class HelloWorldUI extends UI {
@Override protected void init(VaadinRequest request) {
setContent(new Label("Hello World!")); }}
Component oriented
import com.vaadin.server.VaadinRequest;import com.vaadin.ui.Button;import com.vaadin.ui.UI;
public class HelloWorldUI extends UI {
@Override protected void init(VaadinRequest request) {
setContent(new Button("Click me")); }}
Event driven
public class HelloWorldUI extends UI {
@Override protected void init(VaadinRequest request) {
Button button = new Button("Click me"); setContent(button);
button.addClickListener(new ClickListener() {
@Override public void buttonClick(Button.ClickEvent e) {
... } }); }}
Title
import com.vaadin.annotations.Titleimport com.vaadin.server.VaadinRequest;import com.vaadin.ui.Label;import com.vaadin.ui.UI;
@Title("Hello world")public class TitledUI extends UI {
@Override protected void init(VaadinRequest request) {
setContent(new Label("Hello World!")); }}
Theming
import com.vaadin.annotations.Themeimport com.vaadin.server.VaadinRequest;import com.vaadin.ui.Label;import com.vaadin.ui.UI;
@Theme("runo")public class ThemedUI extends UI {
@Override protected void init(VaadinRequest request) {
setContent(new Label("Hello World!")); }}
Server Push
@Pushpublic class PushUI extends UI {
private VerticalLayout layout = new VerticalLayout();
@Override protected void init(VaadinRequest request) { setContent(layout); }
public void hook() {
access(new Runnable() {
@Override public void run() {
layout.addComponent(new Label(”Clicked”); } }); }}
JVM-based
Resources
Tutorial: https://vaadin.com/tutorial
Book of Vaadin: https://vaadin.com/book
Sampler: http://demo.vaadin.com/sampler/
Workshop: https://github.com/nfrankel/vaadin7-workshop/
http://morevaadin.com
My Book http://www.packtpub.com/learning-vaadin-7-second-edition/book
Summary
Component-based
Event-driven
JVM-based
Low entry level
Best fit for "business applications"