dom - GWT Drag and Drop File Upload not working -
so have implemented simple drag , drop file upload widget. widget vertical panel couple of labels , button inside. user can either drag file vertical panel or click button , browse file.
my problem when drag file vertical panel fires dragleaveevent every time drag item on space labels or button occupies. want know item in vertical panel when on top of label or button. im sure missing simple. provide drag functionality adding these dom handlers vertical panel:
adddomhandler(new dragenterhandler() { @override public void ondragenter(dragenterevent event) { system.out.println("drag enter"); highlight(true); } }, dragenterevent.gettype()); adddomhandler(new dragleavehandler() { @override public void ondragleave(dragleaveevent event) { system.out.println("drag leave"); highlight(false); } }, dragleaveevent.gettype()); adddomhandler(new dragoverhandler() { @override public void ondragover(dragoverevent event) { } }, dragoverevent.gettype()); adddomhandler(new drophandler() { @override public void ondrop(dropevent event) { system.out.println("drop"); // stop default behaviour event.preventdefault(); event.stoppropagation(); // starts fetching, reading , callbacks if (fileuploadhandler != null) { handlefiles(event.getdatatransfer(), fileuploadhandler); } highlight(false); } }, dropevent.gettype());
check event target child (or grand child) of panel, or in case maybe rather whether event target panel's element:
if (verticalpanel.getelement().isorhaschild(node.as(event.getnativeevent().geteventtarget()))) { // within panel (possibly on child) } if (verticalpanel.getelement() == node.as(event.getnativeevent().geteventtarget())) { // targetting panel (e.g. leaving panel, not 1 of children) }
Comments
Post a Comment