src/main/java/com/mxgraph/analysis/mxGraphStructure.java
public static void makeConnected(mxAnalysisGraph aGraph)
	{
		// an early check, to avoid running getGraphComponents() needlessly, which is CPU intensive
		if (mxGraphStructure.isConnected(aGraph))
		{
			return;
		}

		Object[][] components = getGraphComponents(aGraph);
		int componentNum = components.length;

		if (componentNum < 2)
		{
			return;
		}

		mxGraph graph = aGraph.getGraph();
		Object parent = graph.getDefaultParent();

		// find a random vertex in each group and connect them.
		for (int i = 1; i < componentNum; i++)
		{
			Object sourceVertex = components[i - 1][(int) Math.round(Math.random() * (components[i - 1].length - 1))];
			Object targetVertex = components[i][(int) Math.round(Math.random() * (components[i].length - 1))];
			graph.insertEdge(parent, null, aGraph.getGenerator().getNewEdgeValue(aGraph), sourceVertex, targetVertex);
		}
	}
/**
	 * Makes the graph connected
	 * @param aGraph
	 */
Makes the graph connected
@param aGraph
Makes the graph connected @param aGraph
public static void makeConnected(mxAnalysisGraph aGraph)
	{
		if (mxGraphStructure.isConnected(aGraph))
		{
			return;
		}
		Object[][] components = getGraphComponents(aGraph);
		int componentNum = components.length;
		if (componentNum < 2)
		{
			return;
		}
		mxGraph graph = aGraph.getGraph();
		Object parent = graph.getDefaultParent();
		for (int i = 1; i < componentNum; i++)
		{
			Object sourceVertex = components[i - 1][(int) Math.round(Math.random() * (components[i - 1].length - 1))];
			Object targetVertex = components[i][(int) Math.round(Math.random() * (components[i].length - 1))];
			graph.insertEdge(parent, null, aGraph.getGenerator().getNewEdgeValue(aGraph), sourceVertex, targetVertex);
		}
	}
public static void makeConnected ( mxAnalysisGraph aGraph ) { if ( mxGraphStructure . isConnected ( aGraph ) ) { return ; } Object [ ] [ ] components = getGraphComponents ( aGraph ) ; int componentNum = components . length ; if ( componentNum < 2 ) { return ; } mxGraph graph = aGraph . getGraph ( ) ; Object parent = graph . getDefaultParent ( ) ; for ( int i = 1 ; i < componentNum ; i ++ ) { Object sourceVertex = components [ i - 1 ] [ ( int ) Math . round ( Math . random ( ) * ( components [ i - 1 ] . length - 1 ) ) ] ; Object targetVertex = components [ i ] [ ( int ) Math . round ( Math . random ( ) * ( components [ i ] . length - 1 ) ) ] ; graph . insertEdge ( parent , null , aGraph . getGenerator ( ) . getNewEdgeValue ( aGraph ) , sourceVertex , targetVertex ) ; } }
Makes the graph connected
 @param aGraph
Makes the graph connected @param aGraph
// an early check, to avoid running getGraphComponents() needlessly, which is CPU intensive // find a random vertex in each group and connect them.