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.

VDragAndDropWrapperIE.java 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*
  2. @VaadinApache2LicenseForJavaFiles@
  3. */
  4. package com.vaadin.terminal.gwt.client.ui;
  5. import com.google.gwt.dom.client.AnchorElement;
  6. import com.google.gwt.dom.client.Document;
  7. import com.google.gwt.user.client.Element;
  8. import com.vaadin.terminal.gwt.client.VConsole;
  9. public class VDragAndDropWrapperIE extends VDragAndDropWrapper {
  10. private AnchorElement anchor = null;
  11. @Override
  12. protected Element getDragStartElement() {
  13. VConsole.log("IE get drag start element...");
  14. Element div = getElement();
  15. if (dragStartMode == HTML5) {
  16. if (anchor == null) {
  17. anchor = Document.get().createAnchorElement();
  18. anchor.setHref("#");
  19. anchor.setClassName("drag-start");
  20. div.appendChild(anchor);
  21. }
  22. VConsole.log("IE get drag start element...");
  23. return (Element) anchor.cast();
  24. } else {
  25. if (anchor != null) {
  26. div.removeChild(anchor);
  27. anchor = null;
  28. }
  29. return div;
  30. }
  31. }
  32. @Override
  33. protected native void hookHtml5DragStart(Element el)
  34. /*-{
  35. var me = this;
  36. el.attachEvent("ondragstart", function(ev) {
  37. return me.@com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper::html5DragStart(Lcom/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent;)(ev);
  38. });
  39. }-*/;
  40. @Override
  41. protected native void hookHtml5Events(Element el)
  42. /*-{
  43. var me = this;
  44. el.attachEvent("ondragenter", function(ev) {
  45. return me.@com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper::html5DragEnter(Lcom/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent;)(ev);
  46. });
  47. el.attachEvent("ondragleave", function(ev) {
  48. return me.@com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper::html5DragLeave(Lcom/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent;)(ev);
  49. });
  50. el.attachEvent("ondragover", function(ev) {
  51. return me.@com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper::html5DragOver(Lcom/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent;)(ev);
  52. });
  53. el.attachEvent("ondrop", function(ev) {
  54. return me.@com.vaadin.terminal.gwt.client.ui.VDragAndDropWrapper::html5DragDrop(Lcom/vaadin/terminal/gwt/client/ui/dd/VHtml5DragEvent;)(ev);
  55. });
  56. }-*/;
  57. }