Extend VWindow equivalent in Vaadin 7

In Vaadin 6 we were extending the WIndow on client side to do some special work as following

<replace-with class="com.foo.bar.widgetset.client.ui.VCustomWindow">
	    <when-type-is class="com.vaadin.terminal.gwt.client.ui.VView"/>

And we could do that because Window object had client widget as following

public class Window extends Panel implements FocusNotifier, BlurNotifier {

Now I have the Root class which is declared as following

// @ClientWidget(VView.class) - Can't have annotation because of eager
// classloaders in application servers and hard coded logic in client side code
public abstract class Root extends AbstractComponentContainer implements Action.Container, Action.Notifier {

The code is commented out for VView.

So how do I extend the Root on the client side the same way I was doing with Window?


If you want to change the implementation of the top level window, you can use because the constructor of ApplicationConnection is hardcoded to use GWT.create(VView.class). For sub windows, you can use , which is what the server side Window class points to from its @ClientWidget annotation.

What has changed in alpha 1 is only that the server side mapping for Root is explicitly hardcoded to VView (which means that GWT.create(VView.class) will be used). In that sense, everything works the same as in Vaadin 6.x, where the @ClientWidget annotation for Window points to VWindow.class and there is custom hardcoded logic that instead uses VView for top level windows.