Example usage for com.google.gwt.cell.client Cell isEditing

List of usage examples for com.google.gwt.cell.client Cell isEditing

Introduction

In this page you can find the example usage for com.google.gwt.cell.client Cell isEditing.

Prototype

boolean isEditing(Context context, Element parent, C value);

Source Link

Document

Returns true if the cell is currently editing the data identified by the given element and key.

Usage

From source file:gwt.material.design.client.ui.table.AbstractDataTable.java

License:Apache License

/**
 * Fire an event to the Cell within the specified {@link TableCellElement}.
 *//*from   w ww . j  a v a  2 s.  c  o m*/
private <C> void fireEventToCell(Event event, String eventType, Element parentElem, final T rowValue,
        Context context, HasCell<T, C> column) {
    // Check if the cell consumes the event.
    Cell<C> cell = column.getCell();
    if (!cellConsumesEventType(cell, eventType)) {
        return;
    }

    C cellValue = column.getValue(rowValue);
    boolean cellWasEditing = cell.isEditing(context, parentElem, cellValue);
    if (column instanceof Column) {
        /*
         * If the HasCell is a Column, let it handle the event itself. This is
         * here for legacy support.
         */
        Column<T, C> col = (Column<T, C>) column;
        col.onBrowserEvent(context, parentElem, rowValue, event);
    } else {
        // Create a FieldUpdater.
        final FieldUpdater<T, C> fieldUpdater = column.getFieldUpdater();
        final int index = context.getIndex();
        ValueUpdater<C> valueUpdater = (fieldUpdater == null) ? null : (value) -> {
            fieldUpdater.update(index, rowValue, value);
        };

        // Fire the event to the cell.
        cell.onBrowserEvent(context, parentElem, cellValue, event, valueUpdater);
    }

    // Reset focus if needed.
    cellIsEditing = cell.isEditing(context, parentElem, cellValue);
    if (cellWasEditing && !cellIsEditing) {
        CellBasedWidgetImpl.get().resetFocus(() -> {
            setFocus(true);
        });
    }
}