kit/src/main/java/com/oracle/javafx/scenebuilder/kit/editor/panel/content/ContentPanelController.java
public FXOMObject pick(
      FXOMObject startObject, double sceneX, double sceneY, Set<FXOMObject> excludes) {

    final FXOMObject result;

    assert isContentDisplayable();
    assert startObject != null;
    assert startObject.getSceneGraphObject() instanceof Node;
    assert excludes != null;
    assert excludes.contains(startObject) == false;

    picker.getExcludes().clear();
    for (FXOMObject exclude : excludes) {
      if (exclude.getSceneGraphObject() instanceof Node) {
        picker.getExcludes().add((Node) exclude.getSceneGraphObject());
      }
    }

    final Node startNode = (Node) startObject.getSceneGraphObject();
    final List<Node> hitNodes = picker.pick(startNode, sceneX, sceneY);
    if (hitNodes == null) {
      result = null;
    } else {
      assert hitNodes.isEmpty() == false;

      FXOMObject hitObject = null;
      final Iterator<Node> it = hitNodes.iterator();
      while ((hitObject == null) && it.hasNext()) {
        final Node hitNode = it.next();
        hitObject = searchWithNode(hitNode, sceneX, sceneY);
        if (excludes.contains(hitObject)) {
          hitObject = null;
        }
      }
      result = hitObject;
    }

    return result;
  }
/**
   * Returns the topmost FXOMObject at (sceneX, sceneY) but ignoring objects from the exclude set
   * and starting the search from startObject.
   *
   * @param startObject starting point of the search
   * @param sceneX x coordinate of a scene point
   * @param sceneY y coordinate of a scene point
   * @param excludes null or a set of FXOMObject to be excluded from the pick.
   * @return null or the topmost FXOMObject located at (sceneX, sceneY)
   */
Returns the topmost FXOMObject at (sceneX, sceneY) but ignoring objects from the exclude set
and starting the search from startObject.

@param startObject starting point of the search
@param sceneX x coordinate of a scene point
@param sceneY y coordinate of a scene point
@param excludes null or a set of FXOMObject to be excluded from the pick.
@return null or the topmost FXOMObject located at (sceneX, sceneY)
Returns the topmost FXOMObject at ( sceneX sceneY ) but ignoring objects from the exclude set and starting the search from startObject . @param startObject starting point of the search @param sceneX x coordinate of a scene point @param sceneY y coordinate of a scene point @param excludes null or a set of FXOMObject to be excluded from the pick . @return null or the topmost FXOMObject located at ( sceneX sceneY )
public FXOMObject pick(
      FXOMObject startObject, double sceneX, double sceneY, Set<FXOMObject> excludes) {
    final FXOMObject result;
    assert isContentDisplayable();
    assert startObject != null;
    assert startObject.getSceneGraphObject() instanceof Node;
    assert excludes != null;
    assert excludes.contains(startObject) == false;
    picker.getExcludes().clear();
    for (FXOMObject exclude : excludes) {
      if (exclude.getSceneGraphObject() instanceof Node) {
        picker.getExcludes().add((Node) exclude.getSceneGraphObject());
      }
    }
    final Node startNode = (Node) startObject.getSceneGraphObject();
    final List<Node> hitNodes = picker.pick(startNode, sceneX, sceneY);
    if (hitNodes == null) {
      result = null;
    } else {
      assert hitNodes.isEmpty() == false;
      FXOMObject hitObject = null;
      final Iterator<Node> it = hitNodes.iterator();
      while ((hitObject == null) && it.hasNext()) {
        final Node hitNode = it.next();
        hitObject = searchWithNode(hitNode, sceneX, sceneY);
        if (excludes.contains(hitObject)) {
          hitObject = null;
        }
      }
      result = hitObject;
    }
    return result;
  }
public FXOMObject pick ( FXOMObject startObject , double sceneX , double sceneY , Set < FXOMObject > excludes ) { final FXOMObject result ; assert isContentDisplayable ( ) ; assert startObject != null ; assert startObject . getSceneGraphObject ( ) instanceof Node ; assert excludes != null ; assert excludes . contains ( startObject ) == false ; picker . getExcludes ( ) . clear ( ) ; for ( FXOMObject exclude : excludes ) { if ( exclude . getSceneGraphObject ( ) instanceof Node ) { picker . getExcludes ( ) . add ( ( Node ) exclude . getSceneGraphObject ( ) ) ; } } final Node startNode = ( Node ) startObject . getSceneGraphObject ( ) ; final List < Node > hitNodes = picker . pick ( startNode , sceneX , sceneY ) ; if ( hitNodes == null ) { result = null ; } else { assert hitNodes . isEmpty ( ) == false ; FXOMObject hitObject = null ; final Iterator < Node > it = hitNodes . iterator ( ) ; while ( ( hitObject == null ) && it . hasNext ( ) ) { final Node hitNode = it . next ( ) ; hitObject = searchWithNode ( hitNode , sceneX , sceneY ) ; if ( excludes . contains ( hitObject ) ) { hitObject = null ; } } result = hitObject ; } return result ; }
Returns the topmost FXOMObject at (sceneX, sceneY) but ignoring objects from the exclude set
 and starting the search from startObject.
Returns the topmost FXOMObject at ( sceneX sceneY ) but ignoring objects from the exclude set and starting the search from startObject .