private static boolean detectEdgeIntersections(Rectangle rect1,
JGraph graph, boolean intersectsline, Object port) {
Iterator edges = graph.getModel().edges(port);
while (edges.hasNext()){
Object edge=edges.next();
Object targetport = graph.getModel().getTarget(edge);
Object sourceport = graph.getModel().getSource(edge);
AttributeMap attargetport = graph.getModel().getAttributes(graph.getModel().getParent(targetport));
AttributeMap atsourceport = graph.getModel().getAttributes(graph.getModel().getParent(sourceport));
Rectangle b1 = GraphConstants.getBounds(attargetport).getBounds();
Rectangle b2 = GraphConstants.getBounds(atsourceport).getBounds();
Float line = new Line2D.Float(new Point((int)b1.getCenterX(),(int)b1.getCenterY()),new Point((int)b2.getCenterX(),(int)b2.getCenterY()));
intersectsline=intersectsline||line.intersects(rect1);
if (!(graph.getModel().getParent(targetport) instanceof NAryEdge) &&
!ListenerContainer.isContainer((DefaultGraphCell) graph.getModel().getParent(targetport),
graph)){
intersectsline=intersectsline || b1.intersects(rect1);
} else
if (!(graph.getModel().getParent(sourceport) instanceof NAryEdge) &&
!ListenerContainer.isContainer((DefaultGraphCell) graph.getModel().getParent(sourceport),
graph)){
intersectsline=intersectsline || b2.intersects(rect1);
}
}
return intersectsline;
}