protected Point currentLocation(DragEvent e) { int xx = this.sourceX + e.deltaX(); int yy = this.sourceY + e.deltaY(); int gHeight = 0; CSSStyle parentStyle = e.sourceElement.parentNode.style; if (parentStyle.height.length() > 0) { gHeight = Integer.parseInt(parentStyle.height); } int gWidth = 0; if (parentStyle.width.length() > 0) { gWidth = Integer.parseInt(parentStyle.width); } /* * On mozilla, the mousemove event can contain mousemove * outside the browser window, so make bound for the dragging. */ CSSStyle style = e.sourceElement.style; int dWidth = style.width.length() > 0 ? Integer.parseInt(style.width) : 0; int dHeight = style.height.length() > 0 ? Integer.parseInt(style.height) : 0; if (xx < 0) { xx = 0; } else if (xx > gWidth - dWidth - 2) { xx = gWidth - dWidth - 2; } if (yy < 0) { yy = 0; } else if (yy > gHeight - dHeight - 2) { yy = gHeight - dHeight - 2; } return new Point(xx, yy); }
@FXML void dragDone(DragEvent event) { /* the drag-and-drop gesture ended */ /* if the data was successfully moved, clear it */ if (event.getTransferMode() == TransferMode.MOVE) {} event.consume(); }
@FXML void dragOver(DragEvent event) { /* data is dragged over the target */ /* accept it only if it is not dragged from the same node * and if it has a string data */ if (event.getGestureSource() != imageView && event.getDragboard().hasString()) { /* allow for both copying and moving, whatever user chooses */ event.acceptTransferModes(TransferMode.COPY_OR_MOVE); } event.consume(); }
@FXML void dragEntered(DragEvent event) { /* the drag-and-drop gesture entered the target */ /* show to the user that it is an actual gesture target */ if (event.getGestureSource() != imageView && event.getDragboard().hasString()) { ColorAdjust colorAdjust = new ColorAdjust(); colorAdjust.setBrightness(0.5); imageView.setEffect(colorAdjust); } event.consume(); }
public boolean dragBegan(DragEvent e) { thumb = document.createElement("DIV"); String cssName = e.sourceElement.className; thumb.className = cssName; if (cssName != null && cssName.indexOf("sash-mouse-down") == -1) { thumb.className += " sash-mouse-down"; } if (cssName.indexOf("horizontal") != -1) { isHorizontal = true; } else { isHorizontal = false; } thumb.style.left = e.sourceElement.style.left; thumb.style.top = e.sourceElement.style.top; thumb.style.width = e.sourceElement.style.width; thumb.style.height = e.sourceElement.style.height; if (hSelectStart == null) { hSelectStart = DNDUtils.onselectstart; Clazz.addEvent(thumb, "selectstart", hSelectStart); } if (e.sourceElement.nextSibling != null) { e.sourceElement.parentNode.insertBefore(thumb, e.sourceElement.nextSibling); } else { e.sourceElement.parentNode.appendChild(thumb); } CSSStyle style = e.sourceElement.style; this.sourceX = style.left.length() > 0 ? Integer.parseInt(style.left) : 0; this.sourceY = style.top.length() > 0 ? Integer.parseInt(style.top) : 0; /* first time, set start location to current location */ e.startX = e.currentX; e.startY = e.currentY; Element[] frames = document.getElementsByTagName("IFRAME"); boolean needOverIFrameLayer = false; for (int i = 0; i < frames.length; i++) { if (frames[i].style.display != "none") { needOverIFrameLayer = true; break; } } if (needOverIFrameLayer) { overFrameHandle = document.createElement("DIV"); overFrameHandle.className = "over-iframe-layer"; overFrameHandle.style.zIndex = window.currentTopZIndex; document.body.appendChild(overFrameHandle); } return true; }
@FXML void dragExited(DragEvent event) { /* mouse moved away, remove the graphical cues */ imageView.setEffect(null); event.consume(); }
@FXML void dragDropped(DragEvent event) { /* data dropped */ /* if there is a string data on dragboard, read it and use it */ Dragboard db = event.getDragboard(); boolean success = false; if (db.hasUrl()) { imageView.setImage(new LocatedImage(db.getUrl())); success = true; } /* let the source know whether the string was successfully * transferred and used */ event.setDropCompleted(success); event.consume(); }
@FXML public void webViewDragDropped(DragEvent event) { Dragboard db = event.getDragboard(); boolean dropCompleted = false; if (db.hasFiles()) { File draggedFile = db.getFiles().get(0); if (draggedFile.getName().toLowerCase().endsWith(".html")) { try { URL url = new URL("file", "", draggedFile.getAbsolutePath()); loadContent(url); dropCompleted = true; } catch (MalformedURLException ex) { } } } event.setDropCompleted(dropCompleted); }
@FXML public void webViewDragOver(DragEvent event) { event.acceptTransferModes(TransferMode.COPY_OR_MOVE); }
@Override public HandlerRegistration addDragHandler(DragHandler handler) { return handlers.addHandler(DragEvent.getType(), handler); }