@Override
	public Dimension getPreferredHeaderSize() {
		int width = 0;
		int height = 0;
		if (mShowHeader) {
			for (TreeColumn column : mColumns) {
				Dimension headerSize = column.calculatePreferredHeaderSize(this);
				width += headerSize.width;
				height = Math.max(headerSize.height, height);
			}
			int columnDividerWidth = getColumnDividerWidth();
			int size = mColumns.size() - 1;
			if (size > 0) {
				width += size * columnDividerWidth;
			}
			height += columnDividerWidth;
		}
		return new Dimension(width, height);
	}