if (connection.canConnectFigures(sourceSocketFigure, targetSocketFigure, 0) && sourceSocketFigure.getNodeSocket().getNode() != targetSocketFigure.getNodeSocket().getNode())
{
// We have two connection points.
modeler.startUndo("Auto-connect sockets");
connection.connectStart(sourceSocketFigure.connectorAt(0, 0));
connection.connectEnd(targetSocketFigure.connectorAt(0, 0));
modeler.getDrawing().add(connection);
connection.layoutAndAdjustConnection();
modeler.endUndo();