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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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...", item -> log("Open triggered"));
  35. BrowserWindowOpener bwo = new BrowserWindowOpener(openResource);
  36. bwo.extend(openNoLog);
  37. BrowserWindowOpener bwo2 = new BrowserWindowOpener(openResource);
  38. bwo2.extend(openLog);
  39. addComponent(menuBar);
  40. addComponent(new Button("Remove downloaders and openers", event -> {
  41. fd.remove();
  42. fd2.remove();
  43. bwo.remove();
  44. bwo2.remove();
  45. }));
  46. setupTestExtension(menuBar);
  47. }
  48. private void setupTestExtension(MenuBar menuBar) {
  49. EventTriggerExtension triggerable1 = new EventTriggerExtension();
  50. EventTriggerExtension triggerable2 = new EventTriggerExtension();
  51. MenuItem testExtension = menuBar.addItem("TestExtension");
  52. MenuItem runMe = testExtension.addItem("RunMe");
  53. triggerable1.extend(runMe);
  54. testExtension.addItem("AddTrigger", c -> triggerable2.extend(runMe));
  55. testExtension.addItem("RemoveTrigger", c -> triggerable2.remove());
  56. }
  57. }