Vaadin filtering table example

19
Vaadin Framework – Filtering Table Make Restaurant License info from Gov.HK web editable By Leonard Siu – Twitter: @lsiu

description

Vaadin Framework Presentation - Filtering Table @ Jan 9th 2013 Codeaholics. A server-side filterable, sortable and editable table as a demo.

Transcript of Vaadin filtering table example

Page 1: Vaadin filtering table example

Vaadin Framework – Filtering Table

Make Restaurant License info from Gov.HK web editable

By Leonard Siu – Twitter: @lsiu

Page 2: Vaadin filtering table example

What are we building here?

H2Database

Server-Side Filterable, Sortable, Editable

Table

Hong Kong Restaurant License Data courtesy of HK SAR Government

Dataset has 12453 Rows

Page 3: Vaadin filtering table example

This is CodeAholics

• Let’s go straight to coding!

• Pre-requisites:– JDK 1.6+– Maven 3+

Page 4: Vaadin filtering table example

Generate project from archetypemvn archetype:generate \

-DarchetypeGroupId=com.vaadin \-DarchetypeArtifactId=vaadin-archetype-clean \-DarchetypeVersion=LATEST \-DgroupId=com.github.lsiu \-DartifactId=vaadin-filtering-table-example \-Dversion=1.0 \-Dpackaging=war

Page 5: Vaadin filtering table example

Things to download

• Get the restaurant license info from HK gov website:– http://www.gov.hk/en/theme/psi/datasets/restau

rantlicences.htm• Place the file “LP_Restaurants_EN.XML” at the

root of the project

Page 6: Vaadin filtering table example

Follow the project on Github

• http://github.com/lsiu/vaadin-filtering-table-example

• Go upto:– “Fix POM gwt:compile output compatible with

eclipse servers”• Run in Command Prompt on project root:

– mvn vaadin:update-widgetset gwt:compile

Page 7: Vaadin filtering table example

Code Walk Throughhttp://github.com/lsiu/vaadin-filtering-table-example

Page 8: Vaadin filtering table example

Compile Widgetset

• Vaadin is dependent of GWT• Whenever new add-on used with client-side

code, widgetset needs to be recompiled• Compile widgetset takes a few minutes (about

5 to 10 minutes on my old i3 Laptop)

Page 9: Vaadin filtering table example

Prepare Project for Vaadin WidgetSet Addon/Development

• Reference: – https://vaadin.com/book/-/page/addons.maven.ht

ml#addons.maven.widgetset1. Configuring the POM– Add plugins

2. Creating a Widget Set Definition File– Create xxx.gwt.xml file

3. Enabling the Widget Set in the Application– Reference xxx.gwt.xml file in Vaadin Servlet in

web.xml

Page 10: Vaadin filtering table example

WidgetSet strategy for large project

• Create separate maven module for Vaadin widgetset

• Only need to compile when client widgets are added

• Add it to internal maven repository for large DEV teams

Page 11: Vaadin filtering table example

Now let’s look at FilteringTable

Code Walk Throughhttp://github.com/lsiu/vaadin-filtering-table-example

Page 12: Vaadin filtering table example

Vaadin Architecture

Source: https://vaadin.com/book/-/page/architecture.html

I will add business logic here too

Page 13: Vaadin filtering table example

Great Framework for quick business apps

• RAPID development! – No client-server boilerplate code– Write validation code only once!

• Look Nice out-of the box– Skinnable through CSS

• Lot’s of nice widget out-of the box– Checkout Vaadin Sampler:– http://demo.vaadin.com/sampler

Page 14: Vaadin filtering table example

Nice Visual Editor

• A little slow though…

Page 15: Vaadin filtering table example

Easy Form and Write Validation online Once

• Default validation on Apply

• Make validation immediate

tf.setImmediate(true)

Source: http://demo.vaadin.com/sampler#FormBasic

Page 16: Vaadin filtering table example

Very nice alert/message box

Source: http://demo.vaadin.com/sampler#NotificationHumanized

Page 17: Vaadin filtering table example

Check Out Vaadin Sampler

Page 18: Vaadin filtering table example

Lots of Add-ons

• Check out: https://vaadin.com/directory• E.g Invient Charts

Page 19: Vaadin filtering table example

Thank You!

Slides will be on http://www.slideshare.net/leonardsiu

Code on http://github.com/lsiu/vaadin-filtering-table-example

Follow Me on Twitter: @lsiuhttp://about.me/leonardsiu