Example usage for com.google.gwt.event.dom.client KeyDownHandler KeyDownHandler

List of usage examples for com.google.gwt.event.dom.client KeyDownHandler KeyDownHandler

Introduction

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

Prototype

KeyDownHandler

Source Link

Usage

From source file:ar.com.kyol.jet.client.wrappers.FloatBox.java

License:Open Source License

/**
 * Instantiates a new float box.//from   w  w w .j  a v a 2s.  c om
 * 
 * @param maximumFractionDigits - 1 or more digits
 * @param acceptNegatives - true if you want to allow the minus sign
 */
public FloatBox(final int maximumFractionDigits, final boolean acceptNegatives) {
    sinkEvents(Event.ONPASTE);
    //addKeyPressHandler(new KeyPressHandler() {
    addKeyDownHandler(new KeyDownHandler() {

        @Override
        //public void onKeyPress(KeyPressEvent event) { //GWT bug: Issue 5558:    KeyPressEvent.getCharCode returns zero for special keys like enter, escape, tab
        public void onKeyDown(KeyDownEvent event) {

            switch (event.getNativeKeyCode()) {
            case KeyCodes.KEY_LEFT:
            case KeyCodes.KEY_DOWN:
            case KeyCodes.KEY_RIGHT:
            case KeyCodes.KEY_UP:
            case KeyCodes.KEY_BACKSPACE:
            case KeyCodes.KEY_DELETE:
            case KeyCodes.KEY_TAB:
            case KeyCodes.KEY_HOME:
            case KeyCodes.KEY_END:
                return;
            }

            if (event.getNativeKeyCode() == 109 || event.getNativeKeyCode() == 189) { //minus sign or dash
                if ((getCursorPos() != 0) || getValue().contains("-") || !acceptNegatives) {
                    ((TextBoxBase) event.getSource()).cancelKey();
                } else {
                    return;
                }
            }

            if (event.getNativeKeyCode() == 188 || event.getNativeKeyCode() == 190
                    || event.getNativeKeyCode() == 110) { //comma, point and decimal separator
                //TODO internationalization!!! use com.google.gwt.i18n.client.LocaleInfo.getNumberConstants().decimalSeparator()
                if (getValue().contains(".")) {
                    ((TextBoxBase) event.getSource()).cancelKey();
                } else {
                    if (getCursorPos() < getValue().length() - maximumFractionDigits) {
                        ((TextBoxBase) event.getSource()).cancelKey();
                    } else {
                        return;
                    }
                }
            }

            if (((event.getNativeKeyCode() < 48 || event.getNativeKeyCode() > 57) && //numeric keys
            (event.getNativeKeyCode() < 96 || event.getNativeKeyCode() > 105)) //numeric pad
                    || event.isAnyModifierKeyDown() || event.isAltKeyDown()) {
                ((TextBoxBase) event.getSource()).cancelKey();
            } else {
                if (getValue().contains(".")) {
                    int cursorPos = getCursorPos();
                    int posicionPunto = getValue().indexOf(".");
                    int longitudTexto = getValue().length();
                    if (cursorPos > posicionPunto
                            && longitudTexto >= posicionPunto + 1 + maximumFractionDigits) {
                        ((TextBoxBase) event.getSource()).cancelKey();
                    }
                }
            }

        }
    });
}

From source file:ar.com.kyol.jet.client.wrappers.NumericBox.java

License:Open Source License

/**
 * Instantiates a new numeric box.//ww  w. ja v a  2 s .  c  o  m
 * <i>allowNegative</i> allows the minus sign.
 */
public NumericBox(final boolean allowNegative) {
    sinkEvents(Event.ONPASTE);
    //addKeyPressHandler(new KeyPressHandler() {
    addKeyDownHandler(new KeyDownHandler() {

        @Override
        //public void onKeyPress(KeyPressEvent event) { //GWT bug: Issue 5558:    KeyPressEvent.getCharCode returns zero for special keys like enter, escape, tab
        public void onKeyDown(KeyDownEvent event) {

            switch (event.getNativeKeyCode()) {
            case KeyCodes.KEY_LEFT:
            case KeyCodes.KEY_DOWN:
            case KeyCodes.KEY_RIGHT:
            case KeyCodes.KEY_UP:
            case KeyCodes.KEY_BACKSPACE:
            case KeyCodes.KEY_DELETE:
            case KeyCodes.KEY_TAB:
            case KeyCodes.KEY_HOME:
            case KeyCodes.KEY_END:
                return;
            }

            if (event.getNativeKeyCode() == 109 || event.getNativeKeyCode() == 189) { //minus sign or dash
                if ((getCursorPos() != 0) || getValue().contains("-") || !allowNegative) {
                    ((TextBoxBase) event.getSource()).cancelKey();
                } else {
                    return;
                }
            }

            if ((event.getNativeKeyCode() >= 96 && event.getNativeKeyCode() <= 105)) { //numeric pad!
                return;
            }

            //FIXME shift!!!   
            if (event.getNativeKeyCode() < 48 || event.getNativeKeyCode() > 57 || event.isAnyModifierKeyDown()
                    || event.isAltKeyDown()) { //numeric keys
                ((TextBoxBase) event.getSource()).cancelKey();
            }

        }
    });
}

From source file:at.ait.dme.yuma.client.map.annotation.TagEnabledMapAnnotationForm.java

License:EUPL

@Override
protected KeyDownHandler createKeyDownHandler(ImageAnnotationComposite annotationComposite) {
    return new KeyDownHandler() {
        @Override//from w w w.j  a  v  a2s. c o  m
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == ' ' || event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE) {
                enrichmentService.getTagSuggestions(textArea.getValue(), WHICH_ENRICHMENT_SERVICE,
                        new AsyncCallback<Collection<SemanticTagGroup>>() {
                            @Override
                            public void onSuccess(Collection<SemanticTagGroup> result) {
                                for (SemanticTagGroup group : result) {
                                    for (SemanticTag tag : group.getAmbiguousTags()) {
                                        lAnnotations.modifyTagCloud(new SemanticTag[] { tag });
                                    }
                                }
                            }

                            @Override
                            public void onFailure(Throwable t) {
                                ErrorMessages errorMessages = (ErrorMessages) GWT.create(ErrorMessages.class);
                                MessageBox.error(errorMessages.error(), t.getMessage());
                            }
                        });
            }
        }
    };
}

From source file:burrito.client.crud.widgets.CrudRichTextArea.java

License:Apache License

public CrudRichTextArea(String value) {
    textArea = new FormattedRichTextArea();
    textArea.setHTML(value);/*from  ww  w. j  a v a 2s  .co  m*/
    formatter = textArea.getFormatter();
    richTextDock.add(createCommandsArea(), DockPanel.NORTH);
    textArea.addKeyDownHandler(new KeyDownHandler() {

        public void onKeyDown(KeyDownEvent event) {
            toggleButtons();
            checkForKeyBoardCombinations(event);
        }
    });
    textArea.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            toggleButtons();
        }
    });
    textAreaWrapper.setWidget(textArea);
    richTextDock.add(textAreaWrapper, DockPanel.CENTER);
    HTML richTextHeader = new HTML(labels.richText());
    richTextHeader.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (rawVisible) {
                textArea.setHTML(raw.getText());
                textAreaWrapper.clear();
                textAreaWrapper.setWidget(textArea);
            }
            rawVisible = false;
        }
    });
    tabPanel.add(richTextDock, richTextHeader);
    HTML rawHeader = new HTML(labels.rawHtml());
    rawHeader.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (!rawVisible) {
                raw.setText(textArea.getHTML());
            }
            rawVisible = true;
        }
    });
    tabPanel.add(raw, rawHeader);

    imagePicker = new ImagePickerPopup(800, 800, false);
    imagePicker.addSaveHandler(new ImagePickerPopup.SaveHandler() {

        public void saved(String value) {
            formatter.insertImage("/blobstore/image?key=" + value);
        }
    });

    wrapper.add(tabPanel);

    ToggleButton maximize = new ToggleButton(labels.maximize(), labels.minimize());
    maximize.addClickHandler(new ClickHandler() {
        boolean max = false;

        public void onClick(ClickEvent event) {
            if (max) {
                raw.setSize("400px", "250px");
                textArea.setSize("400px", "250px");

            } else {
                raw.setSize("800px", "440px");
                textArea.setSize("800px", "440px");
            }
            max = !max;
        }
    });
    maximize.setWidth("80px");
    wrapper.add(maximize);
    initWidget(wrapper);
    addStyleName("k5-CrudRichTextArea");
    raw.setSize("400px", "250px");
    textArea.setSize("400px", "250px");
    tabPanel.selectTab(0);
}

From source file:burrito.client.widgets.ExpandingTextArea.java

License:Apache License

public ExpandingTextArea() {
    addKeyDownHandler(new KeyDownHandler() {

        @Override/*  w ww  . j  av  a  2  s.com*/
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                updateHeight(true);
            }
        }
    });
    addKeyUpHandler(new KeyUpHandler() {

        @Override
        public void onKeyUp(KeyUpEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_BACKSPACE
                    || event.getNativeKeyCode() == KeyCodes.KEY_DELETE) {
                updateHeight(false);
            }
        }
    });
}

From source file:ch.takoyaki.email.html.client.ui.generic.ClosableTabLayoutPanel.java

License:Open Source License

private void renameAction(final IsWidget content, final FlowPanel hpanel, final InlineHTML titlew,
        final Widget closeButton) {
    hpanel.clear();/*  w w  w .j av a2  s. c o m*/
    final TextBox tb = new TextBox();
    tb.addStyleName("tabrename");
    final String originalText = titlew.getText();
    tb.setText(originalText);

    tb.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {

            boolean enterPressed = KeyCodes.KEY_ENTER == event.getNativeEvent().getKeyCode();
            boolean escapePressed = KeyCodes.KEY_ESCAPE == event.getNativeEvent().getKeyCode();

            if (enterPressed) {
                if (renameTabEventHandler != null) {
                    if (renameTabEventHandler.onRename(ClosableTabLayoutPanel.this,
                            getTab().getWidgetIndex(content), originalText, tb.getText())) {
                        titlew.setText(tb.getText());
                    } else {
                        titlew.setHTML(originalText);
                    }
                } else {
                    titlew.setText(tb.getText());
                }
            }
            if (escapePressed) {
                titlew.setHTML(originalText);
            }

            if (enterPressed || escapePressed) {
                hpanel.clear();
                hpanel.add(titlew);
                hpanel.add(closeButton);
            }
        }
    });
    hpanel.add(tb);
    tb.selectAll();
    titlew.setHTML("");
}

From source file:ch.unifr.pai.twice.widgets.client.RemoteTextBox.java

License:Apache License

/**
 * Define a static, unique identifier for this text box. This is needed for
 * the linkage between the different clients. Make sure that this value is
 * not composed dynamically - the best is a usage of a simple string not
 * coming from any other method.//ww w  .  j  a v a 2  s. com
 * 
 * @param uniqueIdentifier
 */
public RemoteTextBox(String uniqueIdentifier, ServerPushEventBus eventBus) {
    super();
    this.uniqueIdentifier = uniqueIdentifier;
    this.eventBus = eventBus;
    this.interpreter = new RemoteTextInputInterpreter(new Command() {

        @Override
        public void execute() {
            updateState();
        }
    }, eventBus, uniqueIdentifier);

    addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {
            tmpNativeCursor = getCursorPos();
            tmpLocalValue = getValue();
        }
    });
    addKeyUpHandler(new KeyUpHandler() {

        @Override
        public void onKeyUp(KeyUpEvent event) {
            final String newValue = getValue();
            final String oldValue = tmpLocalValue.toString();
            final int cursorPos = getCursorPos();
            // Make sure, that the event has been interpreted by the textbox
            calculateDifferenceAndFire(oldValue, newValue, cursorPos);
        }
    });
}

From source file:cl.uai.client.chat.ChatInterface.java

License:Open Source License

/**
 * Creates a new chat interface/*from  w ww .j  ava2s . c  o  m*/
 */
public ChatInterface() {

    this.source = NodeChat.SOURCE_CHAT;

    this.addStyleName(Resources.INSTANCE.css().chatdialog());

    // Dialog parameters
    this.setAutoHideEnabled(false);
    this.setAnimationEnabled(true);
    this.setModal(false);
    this.setHTML(MarkingInterface.messages.Chat());

    // Initialize interfaces and assign css
    messagesPanel = new VerticalPanel();
    messagesPanel.addStyleName(Resources.INSTANCE.css().chatmessages());

    scrollMessagesPanel = new ScrollPanel(messagesPanel);
    scrollMessagesPanel.addStyleName(Resources.INSTANCE.css().chatscrollmessages());
    scrollMessagesPanel.scrollToBottom();

    usersConnectedPanel = new ConnectedUsersPanel();

    sendMessageTextArea = new TextArea();
    sendMessageTextArea.setVisibleLines(2);
    sendMessageTextArea.addStyleName(Resources.INSTANCE.css().chatTextarea());

    // KeyDown for text area for sending message
    sendMessageTextArea.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                event.stopPropagation();
                String msg = sendMessageTextArea.getValue();
                msg = msg.replace("\n", "");
                sendMessage(msg);
                sendMessageTextArea.setValue(null);
            }
        }
    });

    // Vertical panel that contains everything
    mainPanel = new VerticalPanel();
    mainPanel.addStyleName(Resources.INSTANCE.css().chatmainpanel());

    mainPanel.add(usersConnectedPanel);
    mainPanel.setCellHorizontalAlignment(usersConnectedPanel, HasAlignment.ALIGN_CENTER);
    mainPanel.add(scrollMessagesPanel);
    mainPanel.add(sendMessageTextArea);

    closeButton = new Button(MarkingInterface.messages.Close());
    closeButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            hide();
        }
    });

    mainPanel.add(closeButton);
    mainPanel.setCellHorizontalAlignment(closeButton, HasAlignment.ALIGN_RIGHT);

    timer = new Timer() {
        @Override
        public void run() {
            for (int i = 0; i < messagesPanel.getWidgetCount(); i++) {
                if (messagesPanel.getWidget(i) instanceof ChatMessage) {
                    ChatMessage chatMessage = (ChatMessage) messagesPanel.getWidget(i);
                    chatMessage.updateElapsedTime();
                }
            }
        }
    };

    timer.scheduleRepeating(1000 * 60); // Every minute

    this.setWidget(mainPanel);
}

From source file:com.alkacon.acacia.client.widgets.StringWidget.java

License:Open Source License

/**
 * @see com.google.gwt.event.logical.shared.HasValueChangeHandlers#addValueChangeHandler(com.google.gwt.event.logical.shared.ValueChangeHandler)
 *//*from  w  w w .j ava2s .com*/
@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) {

    // Initialization code
    if (!m_valueChangeHandlerInitialized) {
        m_valueChangeHandlerInitialized = true;
        addDomHandler(new KeyDownHandler() {

            /** The text selection range. */
            protected JavaScriptObject m_range;

            /** The Element of this widget. */
            protected com.google.gwt.dom.client.Element m_element;

            /** Helper text area to store the text that should be pasted. */
            protected TextArea m_helpfield;

            public void onKeyDown(KeyDownEvent event) {

                // check if something was pasted to the field
                if (event.isShiftKeyDown() || event.isControlKeyDown()) {
                    int charCode = event.getNativeEvent().getCharCode();
                    if ((charCode == 'v') || (charCode == 45)) {
                        m_helpfield = new TextArea();
                        m_helpfield.getElement().getStyle().setPosition(Position.FIXED);
                        m_range = getSelection();
                        m_element = event.getRelativeElement();
                        m_element.setAttribute("contentEditable", "false");
                        RootPanel.get().add(m_helpfield);
                        m_helpfield.setFocus(true);
                    }
                }
                // prevent adding line breaks
                if (KeyCodes.KEY_ENTER == event.getNativeEvent().getKeyCode()) {
                    event.preventDefault();
                    event.stopPropagation();
                }

                // schedule the change event, so the key press can take effect
                Scheduler.get().scheduleDeferred(new ScheduledCommand() {

                    public void execute() {

                        if (m_range != null) {
                            String pasteValue = m_helpfield.getText();
                            m_helpfield.removeFromParent();
                            m_element.setAttribute("contentEditable", "true");
                            setFocus(true);
                            setSelection(m_range, pasteValue);
                            m_range = null;

                        }
                        fireValueChange(false);
                    }
                });
            }

        }, KeyDownEvent.getType());

        addDomHandler(new ChangeHandler() {

            public void onChange(ChangeEvent event) {

                fireValueChange(false);

            }
        }, ChangeEvent.getType());
        addDomHandler(new BlurHandler() {

            public void onBlur(BlurEvent event) {

                fireValueChange(false);
            }
        }, BlurEvent.getType());
    }
    return addHandler(handler, ValueChangeEvent.getType());
}

From source file:com.areahomeschoolers.baconbits.client.content.calendar.InteractiveWidget.java

License:Open Source License

public InteractiveWidget() {

    initWidget(rootPanel);//from  w  w w . j  av  a 2  s .  c o  m

    // Sink events, mouse and keyboard for now
    sinkEvents(Event.ONMOUSEDOWN | Event.ONDBLCLICK | Event.KEYEVENTS | Event.ONMOUSEOVER);

    hideFocusPanel();

    // Add key handler events to the focus panel
    focusPanel.addKeyPressHandler(new KeyPressHandler() {
        @Override
        public void onKeyPress(KeyPressEvent event) {
            if (!lastWasKeyDown) {
                keyboardNavigation(event.getNativeEvent().getKeyCode());
            }
            lastWasKeyDown = false;
        }
    });

    focusPanel.addKeyUpHandler(new KeyUpHandler() {
        @Override
        public void onKeyUp(KeyUpEvent event) {
            lastWasKeyDown = false;
        }
    });
    focusPanel.addKeyDownHandler(new KeyDownHandler() {
        @Override
        public void onKeyDown(KeyDownEvent event) {
            keyboardNavigation(event.getNativeEvent().getKeyCode());
            lastWasKeyDown = true;
        }
    });
}