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.

MenuBarDownloadBrowserOpenerUI.java 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.vaadin.tests.components;
  2. import com.vaadin.annotations.Widgetset;
  3. import com.vaadin.server.BrowserWindowOpener;
  4. import com.vaadin.server.ClassResource;
  5. import com.vaadin.server.ConnectorResource;
  6. import com.vaadin.server.ExternalResource;
  7. import com.vaadin.server.FileDownloader;
  8. import com.vaadin.server.VaadinRequest;
  9. import com.vaadin.tests.components.embedded.EmbeddedPdf;
  10. import com.vaadin.tests.extensions.EventTriggerExtension;
  11. import com.vaadin.tests.widgetset.TestingWidgetSet;
  12. import com.vaadin.ui.Button;
  13. import com.vaadin.ui.MenuBar;
  14. import com.vaadin.ui.MenuBar.MenuItem;
  15. @Widgetset(TestingWidgetSet.NAME)
  16. public class MenuBarDownloadBrowserOpenerUI extends AbstractTestUIWithLog {
  17. @Override
  18. protected void setup(VaadinRequest request) {
  19. ConnectorResource downloadResource = new ClassResource(
  20. EmbeddedPdf.class, "test.pdf");
  21. ExternalResource openResource = new ExternalResource(
  22. "https://vaadin.com");
  23. MenuBar menuBar = new MenuBar();
  24. MenuItem download = menuBar.addItem("Download");
  25. MenuItem saveAsNoLog = download.addItem("Save as without logging...");
  26. MenuItem saveAsLog = download.addItem("Save as with logging...",
  27. item -> log("Download triggered"));
  28. FileDownloader fd = new FileDownloader(downloadResource);
  29. fd.extend(saveAsNoLog);
  30. FileDownloader fd2 = new FileDownloader(downloadResource);
  31. fd2.extend(saveAsLog);
  32. MenuItem open = menuBar.addItem("Open");
  33. MenuItem openNoLog = open.addItem("Open without logging...");
  34. MenuItem openLog = open.addItem("Open with logging...",
  35. item -> log("Open triggered"));
  36. BrowserWindowOpener bwo = new BrowserWindowOpener(openResource);
  37. bwo.extend(openNoLog);
  38. BrowserWindowOpener bwo2 = new BrowserWindowOpener(openResource);
  39. bwo2.extend(openLog);
  40. addComponent(menuBar);
  41. addComponent(new Button("Remove downloaders and openers", event -> {
  42. fd.remove();
  43. fd2.remove();
  44. bwo.remove();
  45. bwo2.remove();
  46. }));
  47. setupTestExtension(menuBar);
  48. }
  49. private void setupTestExtension(MenuBar menuBar) {
  50. EventTriggerExtension triggerable1 = new EventTriggerExtension();
  51. EventTriggerExtension triggerable2 = new EventTriggerExtension();
  52. MenuItem testExtension = menuBar.addItem("TestExtension");
  53. MenuItem runMe = testExtension.addItem("RunMe");
  54. triggerable1.extend(runMe);
  55. testExtension.addItem("AddTrigger", c -> triggerable2.extend(runMe));
  56. testExtension.addItem("RemoveTrigger", c -> triggerable2.remove());
  57. }
  58. }