/** * Tests if a point is contained in the connector. */ @Override public boolean contains(Point2D.Double p) { return getOwner().contains(p); }
@Override public Figure findFigureExcept(Point2D.Double p, Collection<? extends Figure> ignore) { for (Figure f : getFiguresFrontToBack()) { if (!ignore.contains(f) && f.isVisible() && f.contains(p)) { return f; } } return null; }
@Nullable public Figure findFigureExcept(Point2D.Double p, Collection ignore) { Collection<Figure> c = quadTree.findContains(p); switch (c.size()) { case 0 : { return null; } case 1: { Figure f = c.iterator().next(); return (! ignore.contains(f) || ! f.contains(p)) ? null : f; } default : { for (Figure f : getFiguresFrontToBack()) { if (! ignore.contains(f) && f.contains(p)) return f; } return null; } } } @Nullable public Figure findFigureBehind(Point2D.Double p, Figure figure) {
@Override public Figure findFigureBehind(Point2D.Double p, Collection<? extends Figure> children) { int inFrontOf = children.size(); for (Figure f : getFiguresFrontToBack()) { if (inFrontOf == 0) { if (f.isVisible() && f.contains(p)) { return f; } } else { if (children.contains(f)) { inFrontOf--; } } } return null; }
@Override public Figure findFigureExcept(Point2D.Double p, Figure ignore) { for (Figure f : getFiguresFrontToBack()) { if (f != ignore && f.isVisible() && f.contains(p)) { return f; } } return null; }
@Override public Figure findFigureBehind(Point2D.Double p, Collection<? extends Figure> children) { int inFrontOf = children.size(); for (Figure f : getFiguresFrontToBack()) { if (inFrontOf == 0) { if (f.isVisible() && f.contains(p)) { return f; } } else { if (children.contains(f)) { inFrontOf--; } } } return null; }
@Override public Figure findFigureBehind(Point2D.Double p, Figure figure) { boolean isBehind = false; for (Figure f : getFiguresFrontToBack()) { if (isBehind) { if (f.isVisible() && f.contains(p)) { return f; } } else { isBehind = figure == f; } } return null; }
@Override public Figure findFigure(Point2D.Double p) { for (Figure f : getFiguresFrontToBack()) { if (f.isVisible() && f.contains(p)) { return f; } } return null; }
@Override public final boolean contains(Point2D.Double p) { if (decorator != null) { updateDecoratorBounds(); if (decorator.contains(p)) { return true; } } return figureContains(p); } protected abstract boolean figureContains(Point2D.Double p);
@Override public Figure findFigureBehind(Point2D.Double p, Figure figure) { boolean isBehind = false; for (Figure f : getFiguresFrontToBack()) { if (isBehind) { if (f.isVisible() && f.contains(p)) { return f; } } else { isBehind = figure == f; } } return null; }
@Nullable public Figure findFigureBehind(Point2D.Double p, Collection<Figure> figures) { int inFrontOf = figures.size(); for (Figure f : getFiguresFrontToBack()) { if (inFrontOf == 0) { if (f.isVisible() && f.contains(p)) { return f; } } else { if (figures.contains(f)) { inFrontOf--; } } } return null; }
@Override public Figure findFigureInside(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)) { return f.findFigureInside(p); } } return null; }
@Override public Figure findFigureInside(Point2D.Double p) { Collection<Figure> c = quadTree.findContains(p); for (Figure f : getFiguresFrontToBack()) { if (c.contains(f) && f.contains(p)){ return f.findFigureInside(p); } } return null; }
@Override public boolean contains(Point2D.Double p) { boolean contains = super.contains(p); if (!contains && getPresentationFigure() != null) { contains = getPresentationFigure().contains(p); } return contains; }
@Nullable public Figure findFigureBehind(Point2D.Double p, Figure figure) { boolean isBehind = false; for (Figure f : getFiguresFrontToBack()) { if (isBehind) { if (f.isVisible() && f.contains(p)) { return f; } } else { isBehind = figure == f; } } return null; } @Nullable public Figure findFigureBehind(Point2D.Double p, Collection<Figure> figures) {
@Override public boolean contains(Point p) { return getOwner().contains(getView().viewToDrawing(p)); }
@Override public boolean contains(Point2D.Double p) { if (getDrawingArea().contains(p)) { for (Figure child : getChildrenFrontToBack()) { if (child.isVisible() && child.contains(p)) return true; } return super.contains(p); } return false; } // ATTRIBUTES
@Nullable public Figure findChild(Point2D.Double p) { if (getBounds().contains(p)) { Figure found = null; for (Figure child : getChildrenFrontToBack()) { if (child.isVisible() && child.contains(p)) { return child; } } } return null; }
@Nullable private Figure findConnectableFigure(Point2D.Double p, Drawing drawing) { for (Figure figure : drawing.getFiguresFrontToBack()) { if (!figure.includes(getConnection()) && figure.isConnectable() && figure.contains(p)) { return figure; } } return null; }
@Nullable private Figure findConnectableFigure(Point2D.Double p, Drawing drawing) { for (Figure f : drawing.getFiguresFrontToBack()) { if (!f.includes(getOwner()) && f.isConnectable() && f.contains(p)) { return f; } } return null; }