@Override
	public void mouseMoved(MouseEvent event) {
		if (isEnabled()) {
			Row rollRow = null;
			try {
				boolean local = event.getSource() == this;
				int x = event.getX();
				int y = event.getY();
				Row rowHit;
				Column column;

				Cursor cursor = Cursor.getDefaultCursor();

				if (overColumnDivider(x) != null) {
					if (allowColumnResize()) {
						cursor = Cursor.getPredefinedCursor(Cursor.W_RESIZE_CURSOR);
					}
				} else if (local) {
					column = overColumn(x);
					if (column != null) {
						rowHit = overRow(y);
						if (rowHit != null) {
							if (overDisclosureControl(x, y, column, rowHit)) {
								rollRow = rowHit;
							} else {
								Cell cell = column.getRowCell(rowHit);
								cursor = cell.getCursor(event, getCellBounds(rowHit, column), rowHit, column);
							}
						}
					}
				}
				setCursor(cursor);
			} finally {
				repaintChangedRollRow(rollRow);
			}
		}
	}