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.

TreeGridDragAndDrop.java 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package com.vaadin.tests.components.treegrid;
  2. import com.vaadin.annotations.Theme;
  3. import com.vaadin.annotations.Widgetset;
  4. import com.vaadin.server.VaadinRequest;
  5. import com.vaadin.shared.ui.grid.DropMode;
  6. import com.vaadin.tests.components.AbstractTestUIWithLog;
  7. import com.vaadin.tests.data.bean.HierarchicalTestBean;
  8. import com.vaadin.ui.TreeGrid;
  9. import com.vaadin.ui.components.grid.TreeGridDragSource;
  10. import com.vaadin.ui.components.grid.TreeGridDropTarget;
  11. @Theme("valo")
  12. @Widgetset("com.vaadin.DefaultWidgetSet")
  13. public class TreeGridDragAndDrop extends AbstractTestUIWithLog {
  14. @Override
  15. protected void setup(VaadinRequest request) {
  16. getUI().setMobileHtml5DndEnabled(true);
  17. TreeGrid<HierarchicalTestBean> grid;
  18. grid = new TreeGrid<>();
  19. grid.setSizeFull();
  20. grid.addColumn(HierarchicalTestBean::toString).setCaption("String")
  21. .setId("string");
  22. grid.addColumn(HierarchicalTestBean::getDepth).setCaption("Depth")
  23. .setId("depth").setDescriptionGenerator(
  24. t -> "Hierarchy depth: " + t.getDepth());
  25. grid.addColumn(HierarchicalTestBean::getIndex)
  26. .setCaption("Index on this depth").setId("index");
  27. grid.setHierarchyColumn("string");
  28. grid.setDataProvider(new LazyHierarchicalDataProvider(3, 2));
  29. grid.setId("testComponent");
  30. TreeGridDragSource<HierarchicalTestBean> dragSource = new TreeGridDragSource<>(
  31. grid);
  32. TreeGridDropTarget<HierarchicalTestBean> dropTarget = new TreeGridDropTarget<>(
  33. grid, DropMode.ON_TOP_OR_BETWEEN);
  34. dropTarget.addTreeGridDropListener(event -> log("depth="
  35. + event.getDropTargetRowDepth().orElse(null) + ", collapsed="
  36. + event.isDropTargetRowCollapsed().orElse(null)));
  37. addComponent(grid);
  38. }
  39. }