Example usage for com.google.gwt.dom.client BrowserEvents KEYDOWN

List of usage examples for com.google.gwt.dom.client BrowserEvents KEYDOWN

Introduction

In this page you can find the example usage for com.google.gwt.dom.client BrowserEvents KEYDOWN.

Prototype

String KEYDOWN

To view the source code for com.google.gwt.dom.client BrowserEvents KEYDOWN.

Click Source Link

Usage

From source file:cc.alcina.framework.gwt.client.widget.dialog.RelativePopupPanel.java

License:Apache License

/**
 * Preview the {@link NativePreviewEvent}.
 * /*from   ww w . j a v  a  2 s. com*/
 * @param event
 *            the {@link NativePreviewEvent}
 */
private void previewNativeEvent(NativePreviewEvent event) {
    // If the event has been canceled or consumed, ignore it
    if (event.isCanceled() || (!previewAllNativeEvents && event.isConsumed())) {
        // We need to ensure that we cancel the event even if its been
        // consumed so
        // that popups lower on the stack do not auto hide
        if (modal) {
            event.cancel();
        }
        return;
    }
    // Fire the event hook and return if the event is canceled
    onPreviewNativeEvent(event);
    if (event.isCanceled()) {
        return;
    }
    // If the event targets the popup or the partner, consume it
    Event nativeEvent = Event.as(event.getNativeEvent());
    boolean eventTargetsPopupOrPartner = eventTargetsPopup(nativeEvent) || eventTargetsPartner(nativeEvent);
    if (eventTargetsPopupOrPartner) {
        event.consume();
    }
    // Cancel the event if it doesn't target the modal popup. Note that the
    // event can be both canceled and consumed.
    if (modal) {
        switch (nativeEvent.getType()) {
        case BrowserEvents.KEYDOWN:
        case BrowserEvents.KEYPRESS:
        case BrowserEvents.KEYUP:
            if (nativeEvent.getAltKey() || nativeEvent.getMetaKey() || nativeEvent.getCtrlKey()) {
                return;
            }
        }
        event.cancel();
    }
    // Switch on the event type
    int type = nativeEvent.getTypeInt();
    switch (type) {
    case Event.ONMOUSEDOWN:
    case Event.ONTOUCHSTART:
        // Don't eat events if event capture is enabled, as this can
        // interfere with dialog dragging, for example.
        if (DOM.getCaptureElement() != null) {
            event.consume();
            return;
        }
        if (!eventTargetsPopupOrPartner && autoHide) {
            EventTarget target = nativeEvent.getEventTarget();
            // if (Element.is(target)) {
            // ClientUtils.dumpElementTree(Element.as(target));
            // }
            hide(true);
            return;
        }
        break;
    case Event.ONMOUSEUP:
    case Event.ONMOUSEMOVE:
    case Event.ONCLICK:
    case Event.ONDBLCLICK: {
        // Don't eat events if event capture is enabled, as this can
        // interfere with dialog dragging, for example.
        if (DOM.getCaptureElement() != null) {
            event.consume();
            return;
        }
        break;
    }
    case Event.ONFOCUS: {
        if (nativeEvent.getEventTarget().is(Element.class)) {
            Element target = nativeEvent.getEventTarget().cast();
            if (modal && !eventTargetsPopupOrPartner && (target != null)) {
                blur(target);
                event.cancel();
                return;
            }
        }
        break;
    }
    case Event.ONKEYPRESS: {
        if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_ESCAPE && isHideOnEscape()) {
            hide(false);
            event.cancel();
            return;
        }
        break;
    }
    }
}

From source file:com.bearsoft.gwt.ui.widgets.grid.cells.RenderedEditorCell.java

public RenderedEditorCell(Widget aEditor) {
    super(aEditor, BrowserEvents.DBLCLICK, BrowserEvents.KEYDOWN, BrowserEvents.FOCUS, BrowserEvents.BLUR);
}

From source file:com.bearsoft.gwt.ui.widgets.grid.cells.RenderedEditorCell.java

public void onBrowserEvent(Cell.Context context, Element parent, T value, NativeEvent event,
        ValueUpdater<T> valueUpdater) {
    if (readonly == null || !readonly.isReadonly()) {
        if (!isEditing(context, parent, value)) {
            String type = event.getType();
            int keyCode = event.getKeyCode();
            boolean editToggleKeys = BrowserEvents.KEYDOWN.equals(type)
                    && (keyCode == KeyCodes.KEY_ENTER || keyCode == KeyCodes.KEY_F2);
            if (BrowserEvents.DBLCLICK.equals(type) || editToggleKeys) {
                // Switch to edit mode.
                ViewData<T> viewData = new ViewData<>(Document.get().createUniqueId(), valueUpdater);
                setViewData(context.getKey(), viewData);
                setValue(new RenderedCellContext(context.getIndex(), context.getColumn(), context.getKey()),
                        parent, value);/* ww  w . j  a v  a  2 s  .c o m*/
            }
        }
    }
}

From source file:com.bearsoft.gwt.ui.widgets.grid.GridSection.java

public GridSection(ProvidesKey<T> keyProvider) {
    super(15, ThemedGridResources.instance, keyProvider, null, true, false);
    setKeyboardPagingPolicy(HasKeyboardPagingPolicy.KeyboardPagingPolicy.CURRENT_PAGE);
    setLoadingIndicator(null);/* w  ww  .  j a  va 2 s.c  om*/
    setEmptyTableWidget(null);
    getElement().getStyle().setProperty("borderCollapse", "collapse");
    setKeyboardSelectionHandler(new CellTableKeyboardSelectionHandler<T>(this) {

        @Override
        public void onCellPreview(CellPreviewEvent<T> event) {
            NativeEvent nativeEvent = event.getNativeEvent();
            String eventType = event.getNativeEvent().getType();
            if (BrowserEvents.KEYDOWN.equals(eventType) && !event.isCellEditing()) {
                /*
                 * Handle keyboard navigation, unless the cell is being
                 * edited. If the cell is being edited, we do not want to
                 * change rows.
                 * 
                 * Prevent default on navigation events to prevent default
                 * scrollbar behavior.
                 */
                int oldRow = GridSection.this.getKeyboardSelectedRow();
                int oldColumn = GridSection.this.getKeyboardSelectedColumn();
                boolean isRtl = LocaleInfo.getCurrentLocale().isRTL();
                int keyCodeLineEnd = isRtl ? KeyCodes.KEY_LEFT : KeyCodes.KEY_RIGHT;
                int keyCodeLineStart = isRtl ? KeyCodes.KEY_RIGHT : KeyCodes.KEY_LEFT;
                int keyCode = nativeEvent.getKeyCode();
                super.onCellPreview(event);
                if (keyCode == keyCodeLineEnd) {
                    GridSection.this.setKeyboardSelectedRow(oldRow);
                    if (GridSection.this.getKeyboardSelectedColumn() < oldColumn)
                        GridSection.this.setKeyboardSelectedColumn(oldColumn);
                } else if (keyCode == keyCodeLineStart) {
                    GridSection.this.setKeyboardSelectedRow(oldRow);
                    if (GridSection.this.getKeyboardSelectedColumn() > oldColumn)
                        GridSection.this.setKeyboardSelectedColumn(oldColumn);
                }
            } else
                super.onCellPreview(event);
        }
    });
}

From source file:com.gafactory.core.client.ui.grids.ActionCell.java

License:Open Source License

/**
 * Construct a new {@link ActionCell}.// w w  w  .  j  a va 2s .  c o  m
 *
 * @param message the message to display on the button
 * @param delegate the delegate that will handle events
 */
public ActionCell(SafeHtml message, Delegate<C> delegate) {
    super(BrowserEvents.CLICK, BrowserEvents.KEYDOWN);
    this.delegate = delegate;
    this.html = new SafeHtmlBuilder()
            .appendHtmlConstant("<button type=\"button\" class=\"btn btn-primary\" tabindex=\"-1\">")
            .append(message).appendHtmlConstant("</button>").toSafeHtml();
}

From source file:com.geocento.webapps.eobroker.customer.client.widgets.MaterialCheckBoxCell.java

License:Apache License

public MaterialCheckBoxCell(boolean dependsOnSelection, boolean handlesSelection) {
    super(BrowserEvents.CHANGE, BrowserEvents.KEYDOWN, BrowserEvents.CLICK);
    this.dependsOnSelection = dependsOnSelection;
    this.handlesSelection = handlesSelection;
}

From source file:com.geocento.webapps.eobroker.customer.client.widgets.MaterialCheckBoxCell.java

License:Apache License

@Override
public void onBrowserEvent(Context context, Element parent, Boolean value, NativeEvent event,
        ValueUpdater<Boolean> valueUpdater) {
    String type = event.getType();

    boolean enterPressed = (BrowserEvents.KEYDOWN.equals(type) && event.getKeyCode() == KeyCodes.KEY_ENTER);

    if (BrowserEvents.CHANGE.equals(type) || enterPressed) {
        InputElement input = parent.getFirstChild().getFirstChild().cast();
        Boolean isChecked = input.isChecked();

        /*//ww w  . j a  va 2 s .co  m
         * Toggle the value if the enter key was pressed and the cell handles selection or doesn't depend on selection. If the cell depends on selection but doesn't handle selection, then ignore
         * the enter key and let the SelectionEventManager determine which keys will trigger a change.
         */
        if (enterPressed && (handlesSelection() || !dependsOnSelection())) {
            isChecked = !isChecked;
            input.setChecked(isChecked);
        }

        /*
         * Save the new value. However, if the cell depends on the selection, then do not save the value because we can get into an inconsistent state.
         */
        if (value != isChecked && !dependsOnSelection()) {
            setViewData(context.getKey(), isChecked);
        } else {
            clearViewData(context.getKey());
        }

        if (valueUpdater != null) {
            valueUpdater.update(isChecked);
        }
    }
}

From source file:com.google.gwt.sample.showcase.client.content.cell.Cells.java

public static <T> Cell<T> makeClickable(Cell<T> cell, final Receiver<T> clickReceiver) {
    Set<String> events = new HashSet<>();
    events.add(BrowserEvents.CLICK);//  w  w  w.  j ava  2s .  c o  m
    events.add(BrowserEvents.KEYDOWN);
    return new CellAdapter<T, T>(cell, null, events) {
        @Override
        public void onBrowserEvent(Context context, Element parent, T value, NativeEvent event,
                ValueUpdater<T> valueUpdater) {
            super.onBrowserEvent(context, parent, value, event, valueUpdater);
            if (event.getType().equals(BrowserEvents.CLICK) || (event.getType().equals(BrowserEvents.KEYDOWN)
                    && event.getKeyCode() == KeyCodes.KEY_ENTER)) {
                clickReceiver.accept(value);
            }
        }
    };
}

From source file:com.google.gwt.sample.showcase.client.content.cell.CustomKeyboardHandler.java

@Override
public void onCellPreview(CellPreviewEvent<ContactInfo> event) {
    if (Settings.get().getKeyHandling()) {
        NativeEvent nativeEvent = event.getNativeEvent();

        if (nativeEvent.getType() == BrowserEvents.KEYDOWN) { // A key was pushed down
            if (nativeEvent.getShiftKey() || nativeEvent.getAltKey() || nativeEvent.getCtrlKey()
                    || nativeEvent.getMetaKey()) {
                // Ignore if a modifier key is down
                return;
            }//w  ww .ja va2s. com

            switch (nativeEvent.getKeyCode()) {
            case KeyCodes.KEY_DOWN: // The down arrow key
            case KeyCodes.KEY_J:
                setCurrentRow(cellList.getKeyboardSelectedRow() + 1);
                cancelEvent(event);
                break;
            case KeyCodes.KEY_UP: // The up arrow key
            case KeyCodes.KEY_K:
                if (cellList.getKeyboardSelectedRow() < 1) {
                    goAboveList(event.getValue());
                } else {
                    setCurrentRow(cellList.getKeyboardSelectedRow() - 1);
                }
                cancelEvent(event);
                break;
            case KeyCodes.KEY_PAGEDOWN:
            case KeyCodes.KEY_SPACE:
                setCurrentRow(cellList.getKeyboardSelectedRow() + PAGE_INCREMENT);
                cancelEvent(event);
                break;
            case KeyCodes.KEY_PAGEUP:
                setCurrentRow(cellList.getKeyboardSelectedRow() - PAGE_INCREMENT);
                cancelEvent(event);
                break;
            case KeyCodes.KEY_HOME:
                setCurrentRow(cellList.getPageStart());
                cancelEvent(event);
                break;
            case KeyCodes.KEY_END:
                goToVeryEnd();
                cancelEvent(event);
                break;
            }

            // Bypass the default handler (super-class) for all keydown events.
            // For keys not handled here, let the browser handle them.
            return;
        }
    }

    // Should get here only if event was not handled above.  Send the event to
    // the default handler.
    super.onCellPreview(event);
}

From source file:com.jitlogic.zico.client.views.admin.TraceTemplatePanel.java

License:Open Source License

private void createTemplateListGrid() {
    templateGrid = new DataGrid<TraceTemplateInfo>(1024 * 1024, ZicoDataGridResources.INSTANCE, KEY_PROVIDER);
    selectionModel = new SingleSelectionModel<TraceTemplateInfo>(KEY_PROVIDER);
    templateGrid.setSelectionModel(selectionModel);

    Column<TraceTemplateInfo, TraceTemplateInfo> colOrder = new IdentityColumn<TraceTemplateInfo>(ORDER_CELL);
    templateGrid.addColumn(colOrder, new ResizableHeader<TraceTemplateInfo>("Order", templateGrid, colOrder));
    templateGrid.setColumnWidth(colOrder, 80, Style.Unit.PX);

    Column<TraceTemplateInfo, TraceTemplateInfo> colCondition = new IdentityColumn<TraceTemplateInfo>(
            CONDITION_CELL);/*from  ww w. ja v  a 2s  .co m*/
    templateGrid.addColumn(colCondition,
            new ResizableHeader<TraceTemplateInfo>("Condition", templateGrid, colCondition));
    templateGrid.setColumnWidth(colCondition, 250, Style.Unit.PX);

    Column<TraceTemplateInfo, TraceTemplateInfo> colTemplate = new IdentityColumn<TraceTemplateInfo>(
            TEMPLATE_CELL);
    templateGrid.addColumn(colTemplate, "Description Template");
    templateGrid.setColumnWidth(colTemplate, 100, Style.Unit.PCT);

    templateStore = new ListDataProvider<TraceTemplateInfo>(KEY_PROVIDER);
    templateStore.addDataDisplay(templateGrid);

    templateGrid.addCellPreviewHandler(new CellPreviewEvent.Handler<TraceTemplateInfo>() {
        @Override
        public void onCellPreview(CellPreviewEvent<TraceTemplateInfo> event) {
            NativeEvent nev = event.getNativeEvent();
            String eventType = nev.getType();
            if ((BrowserEvents.KEYDOWN.equals(eventType) && nev.getKeyCode() == KeyCodes.KEY_ENTER)
                    || BrowserEvents.DBLCLICK.equals(nev.getType())) {
                selectionModel.setSelected(event.getValue(), true);
                editTemplate(null);
            }
            if (BrowserEvents.CONTEXTMENU.equals(eventType)) {
                selectionModel.setSelected(event.getValue(), true);
                if (event.getValue() != null) {
                    contextMenu.setPopupPosition(event.getNativeEvent().getClientX(),
                            event.getNativeEvent().getClientY());
                    contextMenu.show();
                }
            }

        }
    });

    templateGrid.addDomHandler(new DoubleClickHandler() {
        @Override
        public void onDoubleClick(DoubleClickEvent event) {
            event.preventDefault();
        }
    }, DoubleClickEvent.getType());

    templateGrid.addDomHandler(new ContextMenuHandler() {
        @Override
        public void onContextMenu(ContextMenuEvent event) {
            event.preventDefault();
        }
    }, ContextMenuEvent.getType());
}