package com.vaadin.tests.components.ui; import com.vaadin.event.ShortcutAction; import com.vaadin.server.VaadinRequest; import com.vaadin.ui.Button; import com.vaadin.ui.Label; import com.vaadin.ui.Notification; import com.vaadin.ui.TextField; import com.vaadin.ui.UI; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; public class WindowAndUIShortcuts extends UI { @Override protected void init(VaadinRequest request) { VerticalLayout layout = new VerticalLayout(); layout.setSizeFull(); layout.setMargin(true); final VerticalLayout mainLayout = new VerticalLayout(); mainLayout.addComponent( new Button("Show page", new Button.ClickListener() { @Override public void buttonClick(Button.ClickEvent clickEvent) { final VerticalLayout pageLayout = new VerticalLayout(); pageLayout.setSpacing(true); pageLayout.addComponent(new Label("Page")); pageLayout.addComponent(new Button("Open dialog window", new Button.ClickListener() { @Override public void buttonClick( Button.ClickEvent clickEvent) { Window dialog = new Window(); dialog.setModal(true); dialog.setCaption("Press ESC shortcut"); dialog.setWidth("300px"); dialog.setHeight("100px"); dialog.setContent(new TextField( "TextField in window")); addWindow(dialog); } })); Button closeButton = new Button("Close page", new Button.ClickListener() { @Override public void buttonClick( Button.ClickEvent clickEvent) { mainLayout.removeComponent(pageLayout); Notification.show( "OMG! Page is also closed!"); } }); closeButton.setClickShortcut( ShortcutAction.KeyCode.ESCAPE); pageLayout.addComponent(closeButton); mainLayout.addComponent(pageLayout); mainLayout.setExpandRatio(pageLayout, 1); } })); layout.addComponent(mainLayout); layout.setExpandRatio(mainLayout, 1); setContent(layout); } }