Slide 1

Slide 1 text

G W T O R J A V A S C R I P T ? A V A A D I N E X P E R T ’ S O P I N I O N H A I J I A N W A N G

Slide 2

Slide 2 text

Is GWT Dying? Scary Questions First Should I use JavaScript Instead?

Slide 3

Slide 3 text

Scary Questions First Too Scary to answer

Slide 4

Slide 4 text

Let’s limit the scope to Vaadin application Too Scary to answer

Slide 5

Slide 5 text

What is Vaadin? A Java web framework for building Web applications.

Slide 6

Slide 6 text

A What is Vaadin? Server Side Java web framework for building Web applications.

Slide 7

Slide 7 text

How does Vaadin application look like?

Slide 8

Slide 8 text

Vaadin Application Architecture

Slide 9

Slide 9 text

GWT or JavaScript? Custom Widget: two approaches

Slide 10

Slide 10 text

•Language Preference •Community Support •Development Speed •Requirement Considerations

Slide 11

Slide 11 text

Language Preference JavaScript sucks?https://www.youtube.com/watch?v=xE8tL8NdHaY Or not.

Slide 12

Slide 12 text

Community Support

Slide 13

Slide 13 text

Development Speed •Widgetset Compilation •Debugging

Slide 14

Slide 14 text

Requirement Case studies •Workflow canvas in SVG •Disable backspace navigation

Slide 15

Slide 15 text

Workflow Canvas in SVG

Slide 16

Slide 16 text

Workflow Canvas in SVG raphael4gwt ->Snap.svg -> Raphaël?

Slide 17

Slide 17 text

Disable backspace navigation Event.addNativePreviewHandler(new NativePreviewHandler() { @Override public void onPreviewNativeEvent(NativePreviewEvent event) { if(event.getNativeEvent().getKeyCode() == KeyCodes.KEY_BACKSPACE) { if(!WidgetUtil.isFocusedElementEditable()) { event.getNativeEvent().stopPropagation(); event.getNativeEvent().preventDefault(); } } } });

Slide 18

Slide 18 text

Disable backspace navigation It’s now disabled by default since Chrome 52.

Slide 19

Slide 19 text

Conclusion •GWT is NOT dead. •It’s fun to learn some JavaScript. •Choose whichever fits you best.

Slide 20

Slide 20 text

Q U E S T I O N S ?

Slide 21

Slide 21 text

G R A Z I E