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.

DragStartModes.java 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.vaadin.tests.components.draganddropwrapper;
  2. import com.vaadin.tests.components.TestBase;
  3. import com.vaadin.tests.util.TestUtils;
  4. import com.vaadin.ui.Component;
  5. import com.vaadin.ui.CssLayout;
  6. import com.vaadin.ui.DragAndDropWrapper;
  7. import com.vaadin.ui.DragAndDropWrapper.DragStartMode;
  8. import com.vaadin.ui.Label;
  9. import com.vaadin.ui.VerticalLayout;
  10. public class DragStartModes extends TestBase {
  11. @Override
  12. protected void setup() {
  13. TestUtils.injectCSS(getMainWindow(),
  14. ".v-ddwrapper { background: #ACF; } .extra{ background: #FFA500; }");
  15. addComponent(makeWrapper(DragStartMode.NONE));
  16. addComponent(makeWrapper(DragStartMode.COMPONENT));
  17. addComponent(makeWrapper(DragStartMode.WRAPPER));
  18. addComponent(makeWrapper(DragStartMode.HTML5));
  19. addComponent(makeOtherComponentWrapper(DragStartMode.COMPONENT_OTHER));
  20. addComponent(new Label("Drop here"));
  21. }
  22. private Component makeOtherComponentWrapper(DragStartMode componentOther) {
  23. VerticalLayout parent = new VerticalLayout();
  24. parent.setWidth("200px");
  25. parent.setSpacing(true);
  26. CssLayout header = new CssLayout();
  27. header.addComponent(new Label("Drag start mode : COMPONENT_OTHER"));
  28. header.setSizeUndefined();
  29. DragAndDropWrapper wrapper = new DragAndDropWrapper(header);
  30. wrapper.setDragStartMode(DragStartMode.COMPONENT_OTHER);
  31. wrapper.setDragImageComponent(parent);
  32. wrapper.setId("label" + "COMPONENT_OTHER");
  33. parent.addComponent(wrapper);
  34. Label extra = new Label(
  35. "Extra label that is not part of the wrapper. This should be dragged along with COMPONENT_OTHER.");
  36. extra.addStyleName("extra");
  37. parent.addComponent(extra);
  38. return parent;
  39. }
  40. private Component makeWrapper(DragStartMode mode) {
  41. Label label = new Label("Drag start mode: " + mode);
  42. label.setId("label" + mode);
  43. DragAndDropWrapper wrapper = new DragAndDropWrapper(label);
  44. wrapper.setHTML5DataFlavor("Text", "HTML5!");
  45. wrapper.setDragStartMode(mode);
  46. wrapper.setWidth("200px");
  47. return wrapper;
  48. }
  49. @Override
  50. protected String getDescription() {
  51. return "Different drag start modes should show correct drag images";
  52. }
  53. @Override
  54. protected Integer getTicketNumber() {
  55. return 8949;
  56. }
  57. }