private void unobserve(Node n) { n.layoutXProperty().removeListener(this); n.layoutYProperty().removeListener(this); }
private void observe(Node n) { n.layoutXProperty().addListener(this); n.layoutYProperty().addListener(this); }
toggleNode.widthProperty(), toggleNode.layoutXProperty())); newVal.layoutYProperty() .bind(Bindings.createDoubleBinding(() -> toggleNode.getLayoutY() + toggleNode.getHeight() / 2, toggleNode.heightProperty(), if (getClip() != null) { getClip().layoutXProperty().unbind(); getClip().layoutYProperty().unbind(); getClip().layoutXProperty() .bind(Bindings.createDoubleBinding(() -> newVal.getLayoutX() + newVal.getWidth() / 2, newVal.widthProperty(), newVal.layoutXProperty())); getClip().layoutYProperty() .bind(Bindings.createDoubleBinding(() -> newVal.getLayoutY() + newVal.getHeight() / 2, newVal.heightProperty(),
@Override public DoubleProperty layoutYProperty(Node node) { return node.layoutYProperty(); }
@Override protected double computeValue() { return getReceiverShape().getNode().layoutYProperty().get() + getReceiverShape().getNode().getTranslateY() + getReceiverShape().getRadius(); } };
/** * Makes a node draggable via mouse gesture. * * <p> * <b>Note:</b> Existing handlers will be replaced!</p> * * @param n the node that shall be made draggable * @param dragHandler additional drag handler * @param pressHandler additional press handler */ public static void makeDraggable(final Node n, EventHandler<MouseEvent> dragHandler, EventHandler<MouseEvent> pressHandler, boolean centerNode) { EventHandlerGroup<MouseEvent> dragHandlerGroup = new EventHandlerGroup<>(); EventHandlerGroup<MouseEvent> pressHandlerGroup = new EventHandlerGroup<>(); if (dragHandler != null) { dragHandlerGroup.addHandler(dragHandler); } if (pressHandler != null) { pressHandlerGroup.addHandler(pressHandler); } n.setOnMouseDragged(dragHandlerGroup); n.setOnMousePressed(pressHandlerGroup); n.layoutXProperty().unbind(); n.layoutYProperty().unbind(); _makeDraggable(n, dragHandlerGroup, pressHandlerGroup, centerNode); }
connectedShape.layoutYProperty().bind(receiverUI.layoutYProperty()); } else { connectedShape.layoutXProperty().bind(receiverUI.layoutXProperty().add(receiverUI.getBoundsInLocal().getWidth() * 0.5)); connectedShape.layoutYProperty().bind(receiverUI.layoutYProperty().add(receiverUI.getBoundsInLocal().getHeight() * 0.5));
connectedShape.layoutYProperty().bind(receiverUI.layoutYProperty()); } else { connectedShape.layoutXProperty().bind(receiverUI.layoutXProperty().add(receiverUI.getBoundsInLocal().getWidth() * 0.5)); connectedShape.layoutYProperty().bind(receiverUI.layoutYProperty().add(receiverUI.getBoundsInLocal().getHeight() * 0.5));
toggleNode.widthProperty(), toggleNode.layoutXProperty())); newVal.layoutYProperty() .bind(Bindings.createDoubleBinding(() -> toggleNode.getLayoutY() + toggleNode.getHeight() / 2, toggleNode.heightProperty(), if (getClip() != null) { getClip().layoutXProperty().unbind(); getClip().layoutYProperty().unbind(); getClip().layoutXProperty() .bind(Bindings.createDoubleBinding(() -> newVal.getLayoutX() + newVal.getWidth() / 2, newVal.widthProperty(), newVal.layoutXProperty())); getClip().layoutYProperty() .bind(Bindings.createDoubleBinding(() -> newVal.getLayoutY() + newVal.getHeight() / 2, newVal.heightProperty(),
super.bind(senderNode.layoutYProperty(), senderNode.translateYProperty(), senderShape.radiusProperty());
super.bind(getReceiverShape().getNode().layoutYProperty(), getReceiverShape().getNode().translateYProperty(), getReceiverShape().radiusProperty());