@Override
	public Dimension getPreferredContentSize() {
		int width = 0;
		int height = 0;
		int dividerHeight = getRowDividerHeight();
		for (TreeRow row : new TreeRowViewIterator(this, mRoot.getChildren())) {
			height += getRowHeight(row) + dividerHeight;
		}
		for (TreeColumn column : mColumns) {
			width += column.getWidth();
		}
		int size = mColumns.size() - 1;
		if (size > 0) {
			width += size * getColumnDividerWidth();
		}
		return new Dimension(width, height);
	}