SubwindowPositionedExample.java
package com.itmill.toolkit.demo.sampler.features.windows;

import com.itmill.toolkit.ui.Button;
import com.itmill.toolkit.ui.Label;
import com.itmill.toolkit.ui.VerticalLayout;
import com.itmill.toolkit.ui.Window;
import com.itmill.toolkit.ui.Button.ClickEvent;

public class SubwindowPositionedExample extends VerticalLayout {

    Window subwindow;

    public SubwindowPositionedExample() {
        setSpacing(true);

        // Create the window
        subwindow = new Window("A positioned subwindow");
        // let's give it a size (optional)
        subwindow.setWidth("300px");
        subwindow.setHeight("200px");

        // Configure the windws layout; by default a VerticalLayout
        VerticalLayout layout = (VerticalLayoutsubwindow.getLayout();
        layout.setMargin(true);
        layout.setSpacing(true);
        // make it fill the whole window
        layout.setSizeFull();

        // Add some content; a label and a close-button
        Label message = new Label("This is a positioned window");
        subwindow.addComponent(message);

        Button close = new Button("Close"new Button.ClickListener() {
            // inline click-listener
            public void buttonClick(ClickEvent event) {
                // close the window by removing it from the main window
                getApplication().getMainWindow().removeWindow(subwindow);
            }
        });
        // The components added to the window are actually added to the window's
        // layout; you can use either. Alignments are set using the layout
        layout.addComponent(close);
        layout.setComponentAlignment(close, "right bottom");

        // Add buttons for opening the subwindow
        Button fifty = new Button("Open window at position 50x50",
                new Button.ClickListener() {
                    // inline click-listener
                    public void buttonClick(ClickEvent event) {
                        if (subwindow.getParent() == null) {
                            // Open the subwindow by adding it to the main
                            // window
                            getApplication().getMainWindow().addWindow(
                                    subwindow);
                        }

                        // Set window position
                        subwindow.setPositionX(50);
                        subwindow.setPositionY(50);
                    }
                });
        addComponent(fifty);
        Button onefifty = new Button("Open window at position 150x200",
                new Button.ClickListener() {
                    // inline click-listener
                    public void buttonClick(ClickEvent event) {
                        if (subwindow.getParent() == null) {
                            // Open the subwindow by adding it to the main
                            // window
                            getApplication().getMainWindow().addWindow(
                                    subwindow);
                        }

                        // Set window position
                        subwindow.setPositionX(150);
                        subwindow.setPositionY(200);
                    }
                });
        addComponent(onefifty);
        Button center = new Button("Open centered window",
                new Button.ClickListener() {
                    // inline click-listener
                    public void buttonClick(ClickEvent event) {
                        if (subwindow.getParent() == null) {
                            // Open the subwindow by adding it to the main
                            // window
                            getApplication().getMainWindow().addWindow(
                                    subwindow);
                        }

                        // Center the window
                        subwindow.center();
                    }
                });
        addComponent(center);

    }

}