protected void swimlaneAdded(Object swimlane)
	{
		mxIGraphModel model = getGraph().getModel();
		Object parent = model.getParent(swimlane);
		int childCount = model.getChildCount(parent);
		mxGeometry geo = null;

		// Finds the first valid sibling swimlane as reference
		for (int i = 0; i < childCount; i++)
		{
			Object child = model.getChildAt(parent, i);

			if (child != swimlane && !this.isSwimlaneIgnored(child))
			{
				geo = model.getGeometry(child);

				if (geo != null)
				{
					break;
				}
			}
		}

		// Applies the size of the refernece to the newly added swimlane
		if (geo != null)
		{
			boolean parentHorizontal = (parent != null) ? isCellHorizontal(parent) : horizontal;
			resizeSwimlane(swimlane, geo.getWidth(), geo.getHeight(), parentHorizontal);
		}
	}