protected void placeLabels(Object[] v, Object[] e)
	{
		mxIGraphModel model = graph.getModel();

		// Moves the vertices to build a circle. Makes sure the
		// radius is large enough for the vertices to not
		// overlap
		model.beginUpdate();
		try
		{
			for (int i = 0; i < e.length; i++)
			{
				mxCellState edge = (mxCellState) e[i];

				if (edge != null && edge.getLabelBounds() != null)
				{
					for (int j = 0; j < v.length; j++)
					{
						mxCellState vertex = (mxCellState) v[j];

						if (vertex != null)
						{
							avoid(edge, vertex);
						}
					}
				}
			}
		}
		finally
		{
			model.endUpdate();
		}
	}