Building Application - MVC?

Does Vaadin help developer to somehow organize the way all the widgets are communicating with each other?
(some kind of predefined MVC or MVP pattern)

I would like to write advanced application with many tabs, grids, buttons - generally: many views. How should I divide the code to make my application maintainable, readable without loosing the ability for widgets to communicate with each other.

Take a look at the
Application Foundation
framework, especially the
View module
. The view module’s purpose is to simplify the communication between views and general handling of views in an application. Another add-on you might be interested in is the
Blackboard
.