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.

DDTest6.java 4.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.vaadin.tests.dd;
  2. import com.vaadin.data.util.BeanItemContainer;
  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.AcceptAll;
  7. import com.vaadin.event.dd.acceptCriteria.AcceptCriterion;
  8. import com.vaadin.terminal.Resource;
  9. import com.vaadin.terminal.ThemeResource;
  10. import com.vaadin.tests.components.TestBase;
  11. import com.vaadin.tests.util.TestUtils;
  12. import com.vaadin.ui.CssLayout;
  13. import com.vaadin.ui.SplitPanel;
  14. import com.vaadin.ui.Tree;
  15. import com.vaadin.ui.Tree.TreeDragMode;
  16. import com.vaadin.ui.Tree.TreeDropTargetDetails;
  17. public class DDTest6 extends TestBase {
  18. java.util.Random r = new java.util.Random(1);
  19. File[] files = new File[] { new Folder("Docs"), new Folder("Music"),
  20. new Folder("Images"), new File("document.doc"),
  21. new File("song.mp3"), new File("photo.jpg") };
  22. private DropHandler dh;
  23. private static int count;
  24. @Override
  25. protected void setup() {
  26. SplitPanel sp = new SplitPanel(SplitPanel.ORIENTATION_HORIZONTAL);
  27. CssLayout l = new CssLayout();
  28. sp.setFirstComponent(l);
  29. CssLayout l2 = new CssLayout();
  30. sp.setSecondComponent(l2);
  31. final Tree tree1 = new Tree("Volume 1");
  32. BeanItemContainer<File> fs1 = new BeanItemContainer<File>(File.class);
  33. tree1.setContainerDataSource(fs1);
  34. for (int i = 0; i < files.length; i++) {
  35. fs1.addBean(files[i]);
  36. if (files[i] instanceof Folder) {
  37. tree1.setChildrenAllowed(files[i], true);
  38. } else {
  39. tree1.setChildrenAllowed(files[i], false);
  40. }
  41. if (i >= files.length / 2) {
  42. tree1.setParent(files[i], files[i - files.length / 2]);
  43. }
  44. }
  45. tree1.setItemCaptionPropertyId("name");
  46. tree1.setItemIconPropertyId("icon");
  47. tree1.setDragMode(TreeDragMode.NODE);
  48. DropHandler dropHandler = new DropHandler() {
  49. public AcceptCriterion getAcceptCriterion() {
  50. return AcceptAll.get();
  51. }
  52. public void drop(DragAndDropEvent dropEvent) {
  53. DataBoundTransferable transferable = (DataBoundTransferable) dropEvent
  54. .getTransferable();
  55. TreeDropTargetDetails dropTargetData = (TreeDropTargetDetails) dropEvent
  56. .getDropTargetDetails();
  57. tree1.setParent(transferable.getItemId(), dropTargetData
  58. .getItemIdInto());
  59. }
  60. };
  61. tree1.setDropHandler(dropHandler);
  62. l.addComponent(tree1);
  63. getLayout().setSizeFull();
  64. getLayout().addComponent(sp);
  65. TestUtils
  66. .injectCSS(
  67. getLayout().getWindow(),
  68. ""
  69. + ".v-tree-node-caption-drag-top {/*border-top: none;*/} "
  70. + ".v-tree-node-caption-drag-bottom {border-bottom: none ;} "
  71. + ".v-tree-node-caption-drag-center {background-color: transparent;}"
  72. + ".v-tree-node-caption-dragfolder { background-color: cyan;} ");
  73. }
  74. private final static ThemeResource FOLDER = new ThemeResource(
  75. "../runo/icons/16/folder.png");
  76. private final static ThemeResource DOC = new ThemeResource(
  77. "../runo/icons/16/document.png");
  78. public static class File {
  79. private Resource icon = DOC;
  80. private String name;
  81. public File(String fileName) {
  82. name = fileName;
  83. }
  84. public void setIcon(Resource icon) {
  85. this.icon = icon;
  86. }
  87. public Resource getIcon() {
  88. return icon;
  89. }
  90. public void setName(String name) {
  91. this.name = name;
  92. }
  93. public String getName() {
  94. return name;
  95. }
  96. }
  97. public static class Folder extends File {
  98. public Folder(String fileName) {
  99. super(fileName);
  100. setIcon(FOLDER);
  101. }
  102. }
  103. @Override
  104. protected String getDescription() {
  105. return "dd: tree and web desktop tests. TODO add traditional icon area on right side with DragAndDropWrapper and absolutelayouts + more files, auto-opening folders";
  106. }
  107. @Override
  108. protected Integer getTicketNumber() {
  109. return 119;
  110. }
  111. }