Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * The contents of this file are subject to the terms of the Common Development
  * and Distribution License (the License). You may not use this file except in
  * compliance with the License.
  *
  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
  * or http://www.netbeans.org/cddl.txt.
  *
  * When distributing Covered Code, include this CDDL Header Notice in each file
 * and include the License file at http://www.netbeans.org/cddl.txt.
 * If applicable, add the following below the CDDL Header, with the fields
 * enclosed by brackets [] replaced by your own identifying information:
 * "Portions Copyrighted [year] [name of copyright owner]"
 *
 * The Original Software is NetBeans. The Initial Developer of the Original
 * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
 * Microsystems, Inc. All Rights Reserved.
 */
package org.netbeans.modules.vmd.api.flow.visual;
import java.awt.*;

Author(s):
David Kaspar
    private static final int SPACING_EDGE = 8;
    private static final int SPACING_NODE = 16;
    
    private LayerWidget[] layers;
    public OrthogonalCollisionsCollector (LayerWidget... layers) {
        this. = layers;
    }
    public void collectCollisions (ConnectionWidget connectionWidgetjava.util.List<RectangleverticalCollisionsjava.util.List<RectanglehorizontalCollisions) {
        for (Widget widget : getWidgets ()) {
            if (! widget.isValidated ())
                continue;
            if (widget instanceof ConnectionWidget) {
                ConnectionWidget conn = (ConnectionWidgetwidget;
                if (! conn.isRouted ())
                    continue;
                java.util.List<PointcontrolPoints = conn.getControlPoints ();
                int last = controlPoints.size () - 1;
                for (int i = 0; i < lasti ++) {
                    if (i == 0  &&  (connectionWidget.getSourceAnchor () == conn.getSourceAnchor ()  ||  connectionWidget.getTargetAnchor () == conn.getSourceAnchor ()))
                        continue;
                    if (i == last - 1  &&  (connectionWidget.getSourceAnchor () == conn.getTargetAnchor ()  ||  connectionWidget.getTargetAnchor () == conn.getTargetAnchor ()))
                        continue;
                    Point point1 = controlPoints.get (i);
                    Point point2 = controlPoints.get (i + 1);
                    if (point1.x == point2.x) {
                        Rectangle rectangle = new Rectangle (point1.x, Math.min (point1.ypoint2.y), 0, Math.abs (point2.y - point1.y));
                        rectangle.grow ();
                        verticalCollisions.add (rectangle);
                    } else if (point1.y == point2.y) {
                        Rectangle rectangle = new Rectangle (Math.min (point1.xpoint2.x), point1.y, Math.abs (point2.x - point1.x), 0);
                        rectangle.grow ();
                        horizontalCollisions.add (rectangle);
                    }
                }
            } else {
                Rectangle bounds = widget.getBounds ();
                Rectangle rectangle = widget.convertLocalToScene (bounds);
                rectangle.grow ();
                verticalCollisions.add (rectangle);
                horizontalCollisions.add (rectangle);
            }
        }
    }
    protected Collection<WidgetgetWidgets () {
        ArrayList<Widgetlist = new ArrayList<Widget> ();
        for (LayerWidget layer : )
            list.addAll (layer.getChildren ());
        return list;
    }
New to GrepCode? Check out our FAQ X