private void setRowHover(TableRowElement tr, Event event, boolean isHovering,
                             boolean isRowChange) {
        if (!skipRowHoverStyleUpdate) {
            setRowStyleName(tr, style.hoveredRow(), style.hoveredRowCell(), isHovering);
        }
        RowHoverEvent.fire(this, tr, event, !isHovering,
                isRowChange
                        ? RowHoverEvent.HoveringScope.ROW_HOVER
                        : RowHoverEvent.HoveringScope.CELL_HOVER);
    }
Set a row's hovering style and fire a {@link RowHoverEvent}

@param tr          the row element
@param event       the original event
@param isHovering  false if this is an unhover event
@param isRowChange true if the hover event is a full row change, false if it is a hover on a
                   cell. Row style update is called only on full row change.
stroom-core-client-widget/src/main/java/com/google/gwt/user/cellview/client/AbstractCellTable.java