Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

TreeDragAndDropFromTable.java 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package com.vaadin.tests.components.tree;
  2. import com.vaadin.data.Container;
  3. import com.vaadin.event.DataBoundTransferable;
  4. import com.vaadin.event.dd.DragAndDropEvent;
  5. import com.vaadin.event.dd.DropHandler;
  6. import com.vaadin.event.dd.acceptcriteria.AcceptCriterion;
  7. import com.vaadin.tests.components.TestBase;
  8. import com.vaadin.ui.AbstractSelect.AbstractSelectTargetDetails;
  9. import com.vaadin.ui.HorizontalLayout;
  10. import com.vaadin.ui.Table;
  11. import com.vaadin.ui.Table.TableDragMode;
  12. import com.vaadin.ui.Tree;
  13. import com.vaadin.ui.Tree.TargetItemAllowsChildren;
  14. public class TreeDragAndDropFromTable extends TestBase {
  15. @Override
  16. protected void setup() {
  17. HorizontalLayout h = new HorizontalLayout();
  18. addComponent(h);
  19. Table table = new Table();
  20. table.addContainerProperty("Column 1", String.class, "Row");
  21. table.setDragMode(TableDragMode.ROW);
  22. table.addItem("Row 1");
  23. table.addItem("Row 2");
  24. table.addItem("Row 3");
  25. table.addItem("Row 4");
  26. table.addItem("Row 5");
  27. table.addItem("Row 6");
  28. table.addItem("Row 7");
  29. h.addComponent(table);
  30. final Tree tree = new Tree();
  31. tree.setDropHandler(new DropHandler() {
  32. @Override
  33. public AcceptCriterion getAcceptCriterion() {
  34. return TargetItemAllowsChildren.get();
  35. }
  36. @Override
  37. public void drop(DragAndDropEvent dropEvent) {
  38. // criteria verify that this is safe
  39. DataBoundTransferable t = (DataBoundTransferable) dropEvent
  40. .getTransferable();
  41. Container sourceContainer = t.getSourceContainer();
  42. Object sourceItemId = t.getItemId();
  43. System.out.println(sourceItemId);
  44. AbstractSelectTargetDetails dropData = ((AbstractSelectTargetDetails) dropEvent
  45. .getTargetDetails());
  46. Object targetItemId = dropData.getItemIdOver();
  47. // move item from table to category'
  48. tree.addItem(sourceItemId);
  49. tree.setParent(sourceItemId, targetItemId);
  50. tree.setChildrenAllowed(sourceItemId, false);
  51. sourceContainer.removeItem(sourceItemId);
  52. }
  53. });
  54. tree.addItem("Item 1");
  55. tree.addItem("Item 11");
  56. tree.setChildrenAllowed("Item 11", false);
  57. tree.setParent("Item 11", "Item 1");
  58. tree.addItem("Item 12");
  59. tree.setChildrenAllowed("Item 12", false);
  60. tree.setParent("Item 12", "Item 1");
  61. tree.addItem("Item 13");
  62. tree.setChildrenAllowed("Item 13", false);
  63. tree.setParent("Item 13", "Item 1");
  64. tree.addItem("Item 2");
  65. tree.addItem("Item 21");
  66. tree.setChildrenAllowed("Item 21", false);
  67. tree.setParent("Item 21", "Item 2");
  68. tree.addItem("Item 22");
  69. tree.setChildrenAllowed("Item 22", false);
  70. tree.setParent("Item 22", "Item 2");
  71. tree.addItem("Item 23");
  72. tree.setChildrenAllowed("Item 23", false);
  73. tree.setParent("Item 23", "Item 2");
  74. tree.addItem("Item 3");
  75. tree.addItem("Item 31");
  76. tree.setChildrenAllowed("Item 31", false);
  77. tree.setParent("Item 31", "Item 3");
  78. tree.addItem("Item 32");
  79. tree.setChildrenAllowed("Item 32", false);
  80. tree.setParent("Item 32", "Item 3");
  81. tree.addItem("Item 33");
  82. tree.setChildrenAllowed("Item 33", false);
  83. tree.setParent("Item 33", "Item 3");
  84. tree.expandItemsRecursively("Item 1");
  85. tree.expandItemsRecursively("Item 2");
  86. tree.expandItemsRecursively("Item 3");
  87. h.addComponent(tree);
  88. }
  89. @Override
  90. protected String getDescription() {
  91. return "Test that childred can be dragged "
  92. + "from the Table to the tree and that TargetItemAllowsChildren limits "
  93. + "the drops to nodes which allows children";
  94. }
  95. @Override
  96. protected Integer getTicketNumber() {
  97. return 7687;
  98. }
  99. }