Example #1
0
  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();
  }
Example #5
0
  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);
 }
Example #10
0
 @Override
 public HandlerRegistration addDragHandler(DragHandler handler) {
   return handlers.addHandler(DragEvent.getType(), handler);
 }