Esempio n. 1
0
  private void setInteractions(Anchor anchor) {
    anchor.setOnMouseEntered(event -> anchor.setStroke(Color.RED));
    anchor.setOnMouseExited(event -> anchor.setStroke(Color.TRANSPARENT));
    anchor.setOnMouseDragEntered(event -> anchor.setStroke(Color.RED));
    anchor.setOnMouseDragExited(event -> anchor.setStroke(Color.TRANSPARENT));

    anchor.setOnDragDetected(
        event -> {
          WireController wireController = WireController.getInstance();
          if (!wireController.active()) {
            wireController.setActive();
            wireController.setStart(anchor);
            anchor.startFullDrag();
          }
        });

    anchor.setOnMouseDragged(Event::consume);

    anchor.setOnMouseDragReleased(
        (event) -> {
          WireController wireController = WireController.getInstance();
          if (wireController.active()
              && wireController.getStartAnchor().getParent() != anchor.getParent()
              && (anchor.getDirection() == Anchor.Direction.unset
                  || (wireController.getStartAnchor().getParentComponent() instanceof Voltmeter
                      || anchor.getParentComponent() instanceof Voltmeter))) {
            wireController.completeWire(anchor);
            wireController.setDormant();
          }
        });
  }