public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) { // Handle the event. NativeEvent nativeEvent = event.getNativeEvent(); if (BrowserEvents.CLICK.equals(nativeEvent.getType())) { // Ignore if the event didn't occur in the correct column. if (column > -1 && column != event.getColumn()) { return SelectAction.IGNORE; } // Determine if we clicked on a checkbox. Element target = nativeEvent.getEventTarget().cast(); if ("input".equals(target.getTagName().toLowerCase(Locale.ROOT))) { final InputElement input = target.cast(); if ("checkbox".equals(input.getType().toLowerCase(Locale.ROOT))) { // Synchronize the checkbox with the current selection state. input.setChecked(event.getDisplay().getSelectionModel().isSelected( event.getValue())); return SelectAction.TOGGLE; } } return SelectAction.IGNORE; } // For keyboard events, do the default action. return SelectAction.DEFAULT; } }
@Override public HandlerRegistration addCellPreviewHandler(CellPreviewEvent.Handler<T> handler) { return view.addHandler(handler, CellPreviewEvent.getType()); }
@Override public void onCellPreview(CellPreviewEvent<T> event) { NativeEvent nativeEvent = event.getNativeEvent(); String eventType = event.getNativeEvent().getType(); if (BrowserEvents.KEYDOWN.equals(eventType) && !event.isCellEditing()) { int col = event.getColumn(); int relRow = event.getIndex() - table.getPageStart(); int subrow = event.getContext().getSubIndex(); if ((table.getKeyboardSelectedColumn() != col) || (table.getKeyboardSelectedRow() != relRow) Element target = Element.as(event.getNativeEvent().getEventTarget()); stealFocus = !CellBasedWidgetImpl.get().isFocusable(target);
void handledEvent(CellPreviewEvent<?> event) { event.setCanceled(true); event.getNativeEvent().preventDefault(); }
public void onCellPreview(CellPreviewEvent<T> event) { // Early exit if selection is already handled or we are editing. if (event.isCellEditing() || event.isSelectionHandled()) { return; } // Early exit if we do not have a SelectionModel. HasData<T> display = event.getDisplay(); SelectionModel<? super T> selectionModel = display.getSelectionModel(); if (selectionModel == null) { return; } // Check for user defined actions. SelectAction action = (translator == null) ? SelectAction.DEFAULT : translator.translateSelectionEvent(event); // Handle the event based on the SelectionModel type. if (selectionModel instanceof MultiSelectionModel<?>) { // Add shift key support for MultiSelectionModel. handleMultiSelectionEvent(event, action, (MultiSelectionModel<? super T>) selectionModel); } else { // Use the standard handler. handleSelectionEvent(event, action, selectionModel); } }
NativeEvent nativeEvent = event.getNativeEvent(); String type = nativeEvent.getType(); if (BrowserEvents.CLICK.equals(type)) { action = ctrlOrMeta ? SelectAction.TOGGLE : SelectAction.SELECT; doMultiSelection(selectionModel, event.getDisplay(), event.getIndex(), event.getValue(), action, shift, clearOthers); } else if (BrowserEvents.KEYUP.equals(type)) { int keyCode = nativeEvent.getKeyCode(); action = SelectAction.TOGGLE; doMultiSelection(selectionModel, event.getDisplay(), event.getIndex(), event.getValue(), action, shift, clearOthers);
@Override public void onCellPreview(final CellPreviewEvent<M> event) { final NativeEvent nativeEvent = event.getNativeEvent(); final String type = nativeEvent.getType(); final boolean isSelect = BrowserEvents.CLICK.equals(type) || (BrowserEvents.KEYDOWN.equals(type) && nativeEvent.getKeyCode() == KeyCodes.KEY_ENTER); if (isSelect && event.getValue() != null) { final int column = event.getColumn(); if (getColumn(column).getFieldUpdater() == null) { bus.fire(config.getCrudEventType().createUpdateEvent(event.getValue())); } } }
@Override public void onCellPreview(CellPreviewEvent<T> event) { NativeEvent nativeEvent = event.getNativeEvent(); String eventType = event.getNativeEvent().getType(); if (BrowserEvents.KEYDOWN.equals(eventType) && !event.isCellEditing()) { int relRow = event.getIndex() - display.getPageStart(); Element target = Element.as(event.getNativeEvent().getEventTarget()); isFocusable = CellBasedWidgetImpl.get().isFocusable(target); display.setKeyboardSelectedRow(relRow, !isFocusable); int relRow = event.getIndex() - display.getPageStart(); if (display.getKeyboardSelectedRow() != relRow) {
SelectAction action, SelectionModel<? super T> selectionModel) { T value = event.getValue(); if (action != null) { switch (action) { NativeEvent nativeEvent = event.getNativeEvent(); String type = nativeEvent.getType(); if (BrowserEvents.CLICK.equals(type)) {
/** * Allows items to be moved between {@code excludedTable} and {@code includedTable} * by double-clicking them. Moving items this way retains selection in both tables * (excluding the item that was moved). */ public void enableDoubleClickItemMoving() { excludedTable.addSimulatedDoubleClickHandler(event -> { T clickedItem = (T) event.getDisplay().getVisibleItem(event.getIndex()); if (canMoveItemOnDoubleClick(excludedTable, event.getColumn())) { includeItems(Collections.singletonList(clickedItem), false); } }); includedTable.addSimulatedDoubleClickHandler(event -> { T clickedItem = (T) event.getDisplay().getVisibleItem(event.getIndex()); if (canMoveItemOnDoubleClick(includedTable, event.getColumn())) { excludeItems(Collections.singletonList(clickedItem), false); } }); }
protected void onMouseOverGrid(final ListTable<TaskSummary> extendedPagedTable, final CellPreviewEvent<TaskSummary> event) { TaskSummary task = event.getValue(); if (task.getDescription() != null) { extendedPagedTable.setTooltip(extendedPagedTable.getKeyboardSelectedRow(), event.getColumn(), task.getDescription()); } }
@Override public void onCellPreview(CellPreviewEvent<SourceRow> event) { if (BrowserEvents.CLICK.equals(event.getNativeEvent().getType())) { SourceColumn sourceColumn = sourceColumns.get(event.getColumn()); ColumnMappingGrid.this.columnSelectionModel.setSelected(sourceColumn, true); } } });
Context context = new Context(idx, 0, getValueKey(value)); CellPreviewEvent<T> previewEvent = CellPreviewEvent.fire(this, event, this, context, value, cellIsEditing, isSelectionHandled); if (!previewEvent.isCanceled()) { fireEventToCell(context, event, cellParent, value);
public SelectAction translateSelectionEvent(CellPreviewEvent<T> event) { return isColumnWhitelisted(event.getColumn()) ? SelectAction.DEFAULT : SelectAction.IGNORE; } }
if (BrowserEvents.CONTEXTMENU.equals(event.getNativeEvent().getType())) { HasData<T> display = event.getDisplay(); SelectionModel<? super T> selectionModel = display.getSelectionModel(); if (selectionModel == null) { return; T value = event.getValue(); if(!this.selectionModel.asMultiSelectionModel().isMultiSelectEnabled() && !this.selectionModel.asMultiSelectionModel().isMultiRangeSelectEnabled()) {
@Override public boolean handlesEvent(CellPreviewEvent<EntityModel> event) { return BrowserEvents.CLICK.equals(event.getNativeEvent().getType()); }
/** * Fires a cell preview event on all registered handlers in the handler * manager. If no such handlers exist, this implementation will do nothing. * This implementation sets the column to 0. * * @param <T> the old value type * @param source the source of the handlers * @param nativeEvent the event to preview * @param display the {@link HasData} source of the event * @param context the Cell {@link Context} * @param value the value where the event occurred * @param isCellEditing indicates whether or not the cell is being edited * @param isSelectionHandled indicates whether or not selection is handled * @return the {@link CellPreviewEvent} that was fired */ public static <T> CellPreviewEvent<T> fire(HasCellPreviewHandlers<T> source, NativeEvent nativeEvent, HasData<T> display, Context context, T value, boolean isCellEditing, boolean isSelectionHandled) { CellPreviewEvent<T> event = new CellPreviewEvent<T>(nativeEvent, display, context, value, isCellEditing, isSelectionHandled); if (TYPE != null) { source.fireEvent(event); } return event; }
NativeEvent nativeEvent = event.getNativeEvent(); String type = nativeEvent.getType(); if (BrowserEvents.CLICK.equals(type)) { action = ctrlOrMeta ? SelectAction.TOGGLE : SelectAction.SELECT; doMultiSelection(selectionModel, event.getDisplay(), event.getIndex(), event.getValue(), action, shift, clearOthers); } else if (BrowserEvents.KEYUP.equals(type)) { int keyCode = nativeEvent.getKeyCode(); action = SelectAction.TOGGLE; doMultiSelection(selectionModel, event.getDisplay(), event.getIndex(), event.getValue(), action, shift, clearOthers);
int columnIndex = event.getColumn(); Cell<?> cell = getColumn(columnIndex).getCell(); if (cell instanceof EventHandlingCell if (BrowserEvents.CLICK.equals(event.getNativeEvent().getType()) && !(getSelectionModel() instanceof NoSelectionModel)) { if (event.getColumn() == 0) { return; getSelectionModel().setSelected(event.getValue(), !getSelectionModel().isSelected(event.getValue())); } else if (getSelectionModel() instanceof SingleSelectionModel) { getSelectionModel().setSelected(event.getValue(), true);
@Override public void onCellPreview(CellPreviewEvent<T> event) { NativeEvent nativeEvent = event.getNativeEvent(); String eventType = event.getNativeEvent().getType(); if (BrowserEvents.KEYDOWN.equals(eventType) && !event.isCellEditing()) { int relRow = event.getIndex() - display.getPageStart(); Element target = Element.as(event.getNativeEvent().getEventTarget()); isFocusable = CellBasedWidgetImpl.get().isFocusable(target); display.setKeyboardSelectedRow(relRow, !isFocusable); int relRow = event.getIndex() - display.getPageStart(); if (display.getKeyboardSelectedRow() != relRow) {