2013 Human Talks - Vaadin Teaser in 10 minutes

14
Thinking of U and I

Transcript of 2013 Human Talks - Vaadin Teaser in 10 minutes

Page 1: 2013 Human Talks - Vaadin Teaser in 10 minutes

Thinking of U and I

Page 2: 2013 Human Talks - Vaadin Teaser in 10 minutes

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

Page 3: 2013 Human Talks - Vaadin Teaser in 10 minutes

Java Web Development

JavaServlet API

JSPTaglib

HTML

CSS

JavaScript DOMAJAX

HTTP

Page 4: 2013 Human Talks - Vaadin Teaser in 10 minutes

Vaadin Development

Java

Page 5: 2013 Human Talks - Vaadin Teaser in 10 minutes

JavaEE 1.3+ compatible

Just a servlet

@WebServlet(value = "/*", asyncSupported = true)

@VaadinServletConfiguration(productionMode = false,ui = HelloWorldUI.class)

 public static class Servlet extends VaadinServlet {}

Page 6: 2013 Human Talks - Vaadin Teaser in 10 minutes

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!")); }}

Page 7: 2013 Human Talks - Vaadin Teaser in 10 minutes

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")); }}

Page 8: 2013 Human Talks - Vaadin Teaser in 10 minutes

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) {

... } }); }}

Page 9: 2013 Human Talks - Vaadin Teaser in 10 minutes

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!")); }}

Page 10: 2013 Human Talks - Vaadin Teaser in 10 minutes

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!")); }}

Page 11: 2013 Human Talks - Vaadin Teaser in 10 minutes

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”); } }); }}

Page 12: 2013 Human Talks - Vaadin Teaser in 10 minutes

JVM-based

Page 14: 2013 Human Talks - Vaadin Teaser in 10 minutes

Summary

Component-based

Event-driven

JVM-based

Low entry level

Best fit for "business applications"