List of usage examples for com.google.gwt.event.dom.client KeyDownHandler KeyDownHandler
KeyDownHandler
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; } }); }