Class AbstractInputCell<C,V>

Type Parameters:
C - the type that this Cell represents
V - the data type of the view data state
All Implemented Interfaces:
Cell<C>
Direct Known Subclasses:
SelectionCell, TextInputCell

public abstract class AbstractInputCell<C,V> extends AbstractEditableCell<C,V>
An AbstractCell used to render input elements that can receive focus.
  • Constructor Details

    • AbstractInputCell

      public AbstractInputCell(String... consumedEvents)
      Construct a new AbstractInputCell with the specified consumed events.
      Parameters:
      consumedEvents - the events that this cell consumes
    • AbstractInputCell

      public AbstractInputCell(Set<String> consumedEvents)
      Construct a new AbstractInputCell with the specified consumed events.
      Parameters:
      consumedEvents - the events that this cell consumes
  • Method Details

    • isEditing

      public boolean isEditing(Cell.Context context, Element parent, C value)
      Description copied from class: AbstractEditableCell
      Returns true if the cell is currently editing the data identified by the given element and key. While a cell is editing, widgets containing the cell may choose to pass keystrokes directly to the cell rather than using them for navigation purposes.
      Specified by:
      isEditing in interface Cell<C>
      Specified by:
      isEditing in class AbstractEditableCell<C,V>
      Parameters:
      context - the Cell.Context of the cell
      parent - the parent Element
      value - the value associated with the cell
      Returns:
      true if the cell is in edit mode
    • onBrowserEvent

      public void onBrowserEvent(Cell.Context context, Element parent, C value, NativeEvent event, ValueUpdater<C> valueUpdater)
      Description copied from class: AbstractCell
      Handle a browser event that took place within the cell. The default implementation returns null.

      If you override this method to add support for events, remember to pass the event types that the cell expects into the constructor.

      Specified by:
      onBrowserEvent in interface Cell<C>
      Overrides:
      onBrowserEvent in class AbstractCell<C>
      Parameters:
      context - the Cell.Context of the cell
      parent - the parent Element
      value - the value associated with the cell
      event - the native browser event
      valueUpdater - a ValueUpdater, or null if not specified
    • resetFocus

      public boolean resetFocus(Cell.Context context, Element parent, C value)
      Description copied from class: AbstractCell
      Reset focus on the Cell. This method is called if the cell has focus when it is refreshed.

      This method is a no-op and returns false. If your cell is editable or can be focused by the user, override this method to reset focus when the containing widget is refreshed.

      Specified by:
      resetFocus in interface Cell<C>
      Overrides:
      resetFocus in class AbstractCell<C>
      Parameters:
      context - the Cell.Context of the cell
      parent - the parent Element
      value - the value associated with the cell
      Returns:
      true if focus is taken, false if not
    • finishEditing

      protected void finishEditing(Element parent, C value, Object key, ValueUpdater<C> valueUpdater)
      Call this method when editing is complete.
      Parameters:
      parent - the parent Element
      value - the value associated with the cell
      key - the unique key associated with the row object
      valueUpdater - the value update to fire
    • getInputElement

      protected Element getInputElement(Element parent)
      Get the input element.
      Parameters:
      parent - the cell parent element
      Returns:
      the input element
    • onEnterKeyDown

      protected void onEnterKeyDown(Cell.Context context, Element parent, C value, NativeEvent event, ValueUpdater<C> valueUpdater)
      Description copied from class: AbstractCell
      Called when the user triggers a keydown event with the ENTER key while focused on the cell. If your cell interacts with the user, you should override this method to provide a consistent user experience. Your widget must consume keydown events for this method to be called.
      Overrides:
      onEnterKeyDown in class AbstractCell<C>
      Parameters:
      context - the Cell.Context of the cell
      parent - the parent Element
      value - the value associated with the cell
      event - the native browser event
      valueUpdater - a ValueUpdater, or null if not specified