* @param geo Geometry for which the alternate bounds should be updated.
	 * @param willCollapse Boolean indicating if the cell is going to be collapsed.
	 */
	public void updateAlternateBounds(Object cell, mxGeometry geo,
			boolean willCollapse)
	{
		if (cell != null && geo != null)
		{
			if (geo.getAlternateBounds() == null)
			{
				mxRectangle bounds = null;

				if (isCollapseToPreferredSize())
				{
					bounds = getPreferredSizeForCell(cell);

					if (isSwimlane(cell))
					{
						mxRectangle size = getStartSize(cell);

						bounds.setHeight(Math.max(bounds.getHeight(),
								size.getHeight()));
						bounds.setWidth(Math.max(bounds.getWidth(),
								size.getWidth()));
					}
				}

				if (bounds == null)
				{
					bounds = geo;
				}

				geo.setAlternateBounds(new mxRectangle(geo.getX(), geo.getY(),
						bounds.getWidth(), bounds.getHeight()));
			}
			else
			{
				geo.getAlternateBounds().setX(geo.getX());
				geo.getAlternateBounds().setY(geo.getY());
			}
		}
	}