Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master

README.md

GWT Xtend TodoMVC

This implementation of the TodoMVC app uses GWT and Xtend. It has a backend running on the Google App Engine that is used to load and store your todos.

Try the app at http://1-dot-todomvc.appspot.com.

Why GWT?

GWT allows you to use Java and all your tools and infrastructure for the client and for the server side. Using its widget library you can also abstract a bit from the DOM and browsers differences.

Why Xtend?

For the client side you frequently have to specify callbacks. Those can be pretty verbose in Java. Xtend has a very noise-less syntax for the same thing to specify. Additionally, a lot of boiler plate code can be saved by using Xtends cool new 'Active Annotations'.

Code Samples

List processing

// filter out todos that are done
todos = todos.filter[!done].toList

// mark all todos as completed
todos.forEach[done = true]

UI Builder

  flowPanel [
    styleName = 'view'
    checkBox = checkBox [
        styleName = 'toggle'
        onClick [
            todo.done = !todo.done
            updateView
            updateTodo.apply(todo)
        ]
    ]
    label = label [
        onDoubleClick [
            editMode
        ]
    ]
    button [
        styleName = 'destroy'
        onClick [
            deleteTodo.apply(todo)
        ]
    ]
]
Something went wrong with that request. Please try again.