You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

WindowAndUIShortcuts.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package com.vaadin.tests.components.ui;
  2. import com.vaadin.event.ShortcutAction;
  3. import com.vaadin.server.VaadinRequest;
  4. import com.vaadin.ui.Button;
  5. import com.vaadin.ui.Label;
  6. import com.vaadin.ui.Notification;
  7. import com.vaadin.ui.TextField;
  8. import com.vaadin.ui.UI;
  9. import com.vaadin.ui.VerticalLayout;
  10. import com.vaadin.ui.Window;
  11. public class WindowAndUIShortcuts extends UI {
  12. @Override
  13. protected void init(VaadinRequest request) {
  14. VerticalLayout layout = new VerticalLayout();
  15. layout.setSizeFull();
  16. layout.setMargin(true);
  17. final VerticalLayout mainLayout = new VerticalLayout();
  18. mainLayout.addComponent(new Button("Show page", event -> {
  19. final VerticalLayout pageLayout = new VerticalLayout();
  20. pageLayout.setSpacing(true);
  21. pageLayout.addComponent(new Label("Page"));
  22. pageLayout.addComponent(
  23. new Button("Open dialog window", clickEvent -> {
  24. Window dialog = new Window();
  25. dialog.setModal(true);
  26. dialog.setCaption("Press ESC shortcut");
  27. dialog.setWidth("300px");
  28. dialog.setHeight("100px");
  29. dialog.setContent(new Button("Button in window"));
  30. addWindow(dialog);
  31. }));
  32. Button closeButton = new Button("Close page", clickEvent -> {
  33. mainLayout.removeComponent(pageLayout);
  34. Notification.show("OMG! Page is also closed!");
  35. });
  36. closeButton.setClickShortcut(ShortcutAction.KeyCode.ESCAPE);
  37. pageLayout.addComponent(closeButton);
  38. mainLayout.addComponent(pageLayout);
  39. mainLayout.setExpandRatio(pageLayout, 1);
  40. }));
  41. layout.addComponent(mainLayout);
  42. layout.setExpandRatio(mainLayout, 1);
  43. setContent(layout);
  44. }
  45. }