@Override
	public void mouseReleased(MouseEvent event) {
		Rectangle bounds = getBounds();
		bounds.x = 0;
		bounds.y = 0;
		Point where = event.getPoint();
		boolean inside = bounds.contains(where);
		mViewArea.convertPoint(this, where);
		if (mDragColumnDivider != -1) {
			mDragColumnDivider = -1;
			if (inside) {
				setColumnDividerHighlight(where.x);
			} else {
				clearColumnDividerHighlight();
			}
		}
		if (mRowToSelectOnMouseUp != null) {
			select(mRowToSelectOnMouseUp, false);
			mRowToSelectOnMouseUp = null;
		}
		if (mSortColumn != null) {
			if (mUserSortable && mSortColumn == overColumn(where.x)) {
				mSorter.setSort(mSortColumn, !event.isShiftDown());
				mSorter.sort(mRoot);
				repaint();
			}
			mSortColumn = null;
		}
	}