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.

SubWindowOrder.java 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. package com.vaadin.tests.components.window;
  2. import com.vaadin.tests.components.TestBase;
  3. import com.vaadin.ui.Alignment;
  4. import com.vaadin.ui.Button;
  5. import com.vaadin.ui.Button.ClickEvent;
  6. import com.vaadin.ui.Button.ClickListener;
  7. import com.vaadin.ui.CssLayout;
  8. import com.vaadin.ui.HorizontalLayout;
  9. import com.vaadin.ui.Label;
  10. import com.vaadin.ui.UI;
  11. import com.vaadin.ui.VerticalLayout;
  12. import com.vaadin.ui.Window;
  13. import com.vaadin.v7.data.util.BeanItemContainer;
  14. import com.vaadin.v7.ui.ComboBox;
  15. public class SubWindowOrder extends TestBase {
  16. private BeanItemContainer<Window> windowlist = new BeanItemContainer<>(
  17. Window.class);
  18. @Override
  19. protected void setup() {
  20. UI mainWindow = getMainWindow();
  21. HorizontalLayout controlpanels = new HorizontalLayout();
  22. for (int i = 1; i <= 5; i++) {
  23. VerticalLayout layout = new VerticalLayout();
  24. layout.setMargin(true);
  25. Window dialog = new Window("Dialog " + i, layout);
  26. layout.setSizeUndefined();
  27. windowlist.addBean(dialog);
  28. layout.addComponent(new Label("this is dialog number " + i));
  29. layout.addComponent(new ControlPanel());
  30. mainWindow.addWindow(dialog);
  31. }
  32. controlpanels.addComponent(new ControlPanel());
  33. getLayout().setSizeFull();
  34. getLayout().addComponent(controlpanels);
  35. getLayout().setComponentAlignment(controlpanels, Alignment.BOTTOM_LEFT);
  36. }
  37. @Override
  38. protected String getDescription() {
  39. return "Subwindows should be rendered in the same order as they are added.";
  40. }
  41. @Override
  42. protected Integer getTicketNumber() {
  43. return 3363;
  44. }
  45. class ControlPanel extends CssLayout implements ClickListener {
  46. private Button bf = new Button("Bring to front");
  47. private Button toggleModality = new Button("Toggle modality");
  48. private ComboBox winSel = new ComboBox();
  49. public ControlPanel() {
  50. winSel.setCaption("Controlled window:");
  51. winSel.setContainerDataSource(windowlist);
  52. winSel.setValue(windowlist.firstItemId());
  53. winSel.setItemCaptionPropertyId("caption");
  54. addComponent(winSel);
  55. addComponent(bf);
  56. addComponent(toggleModality);
  57. bf.addClickListener(this);
  58. toggleModality.addClickListener(this);
  59. }
  60. @Override
  61. public void buttonClick(ClickEvent event) {
  62. if (event.getButton() == bf) {
  63. getCurWindow().bringToFront();
  64. } else if (event.getButton() == toggleModality) {
  65. getCurWindow().setModal(!getCurWindow().isModal());
  66. }
  67. }
  68. private Window getCurWindow() {
  69. return (Window) winSel.getValue();
  70. }
  71. }
  72. }