Example usage for com.google.gwt.user.client.ui SuggestBox addSelectionHandler

List of usage examples for com.google.gwt.user.client.ui SuggestBox addSelectionHandler

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui SuggestBox addSelectionHandler.

Prototype

public HandlerRegistration addSelectionHandler(SelectionHandler<Suggestion> handler) 

Source Link

Usage

From source file:com.ephesoft.dcma.gwt.rv.client.view.ReviewPanel.java

License:Open Source License

private void setHandlerForSuggestBox(final SuggestBox suggestBox) {
    suggestBox.addSelectionHandler(new SelectionHandler<Suggestion>() {

        @Override//from  w  ww .  j a  va  2  s .  co m
        public void onSelection(SelectionEvent<Suggestion> arg0) {
            String value = suggestBox.getText();
            for (int i = 0; i < documentTypes.getItemCount(); i++) {
                if (documentTypes.getItemText(i).equalsIgnoreCase(value)) {
                    ScreenMaskUtility.maskScreen();
                    onDocumentTypeChange(documentTypes.getValue(i));
                    break;
                }
            }
        }
    });
    validatableSuggestBox = new ValidatableWidget<SuggestBox>(suggestBox);

    validatableSuggestBox.getWidget().addValueChangeHandler(new ValueChangeHandler<String>() {

        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            validatableSuggestBox.toggleValidDateBox();
        }
    });

    List<String> altValues = new ArrayList<String>();
    for (int i = 0; i < documentTypes.getItemCount(); i++) {
        altValues.add(documentTypes.getItemText(i));
    }
    validatableSuggestBox.addValidator(new SuggestBoxValidator(suggestBox, altValues));
    validatableSuggestBox.toggleValidDateBox();
}

From source file:com.ephesoft.dcma.gwt.rv.client.view.TableExtractionView.java

License:Open Source License

private void setTableList(final FlexTable flexTable, final List<Row> rows, final List<Column> columnList,
        final DataTable inputDataTable, final Document inputDocument) {
    selectedDataTableName = inputDataTable.getName();
    int index = 1;
    for (Row row : rows) {
        final int presentRowNumber = index;
        if (row != null && row.getColumns() != null && row.getColumns().getColumn() != null
                && !row.getColumns().getColumn().isEmpty()) {
            final List<Column> columns = row.getColumns().getColumn();
            int index1 = 0;
            final ArrayList<Coordinates> rowCoordinates = new ArrayList<Coordinates>();
            rowCoordinates.add(row.getRowCoordinates());
            for (final Column column : columnList) {
                final int presentColumnNumber = index1;
                final Column selectedColumn = columns.get(index1);
                columnPattern = tableNameVsColumnPattern.get(inputDataTable.getName());
                List<String> alternateValuesSet = getAlternateValueSet(selectedColumn);
                MultiWordSuggestOracle oracle = setMultiWordOracle(selectedColumn.getValue(),
                        alternateValuesSet);
                final SuggestBox suggestBox = new SuggestBox(oracle);
                suggestBox.addStyleName("tableViewListBox");
                suggestBox.setWidth("100%");

                final RegExValidatableWidget<SuggestBox> validatableSuggestBox = new RegExValidatableWidget<SuggestBox>(
                        suggestBox);//from   www.  j a  v  a  2  s.co  m

                if ((columnPattern != null && columnPattern.size() > index1)
                        && (!row.isMannualExtraction() || selectedColumn.isValidationRequired())) {
                    validatableSuggestBox.addValidator(new RegExValidator(validatableSuggestBox,
                            columnPattern.get(index1), suggestBox, presenter.rpcService));
                }

                suggestBox.addValueChangeHandler(new ValueChangeHandler<String>() {

                    @Override
                    public void onValueChange(final ValueChangeEvent<String> event) {
                        selectedColumn.setValue(event.getValue());
                        selectedColumn.setValid(validatableSuggestBox.validate());
                        validatableSuggestBox.toggleValidDateBox();
                    }
                });

                suggestBox.getTextBox().addFocusHandler(new FocusHandler() {

                    @Override
                    public void onFocus(FocusEvent event) {
                        TableExtractionView.this
                                .fireEvent(new ValidationFieldChangeEvent(selectedColumn, rowCoordinates));
                        if (event.getSource() instanceof TextBox) {
                            selectedTextBox = (TextBox) event.getSource();
                        }
                        selectedRowNumber = presentRowNumber;
                        selectedColumnNumber = presentColumnNumber;
                        selectedDocument = inputDocument;
                        if (selectedDataTableName != null) {
                            clearSelectedRowStyle(tableNameVsViewMap.get(selectedDataTableName));
                        }
                        if (!presenter.isManualTableExtraction()) {
                            selDataTable = inputDataTable;
                        }
                        selectedDataTableName = inputDataTable.getName();
                        addSelectedRowStyle(flexTable, rows, columnList, selectedRowNumber);
                    }
                });

                suggestBox.addSelectionHandler(new SelectionHandler<Suggestion>() {

                    @Override
                    public void onSelection(SelectionEvent<Suggestion> suggestion) {
                        String inputString = suggestion.getSelectedItem().getReplacementString();
                        setSuggestBoxEvents(selectedColumn, inputString, validatableSuggestBox);
                        ValueChangeEvent.fire(suggestBox, inputString);
                        Row currRow = rows.get(selectedRowNumber - 1);
                        Column currColumn = currRow.getColumns().getColumn().get(selectedColumnNumber);
                        List<Coordinates> coorList = new ArrayList<Coordinates>();
                        coorList.add(currRow.getRowCoordinates());
                        TableExtractionView.this
                                .fireEvent(new ValidationFieldChangeEvent(currColumn, coorList));
                    }
                });

                suggestBox.setText(selectedColumn.getValue());
                if (!selectedColumn.isValid()) {
                    validatableSuggestBox.getWidget().addStyleName("dateBoxFormatError");
                }
                if (row.isMannualExtraction()) {
                    ValueChangeEvent.fire(suggestBox, selectedColumn.getValue());
                }
                flexTable.setWidget(index, index1, validatableSuggestBox.getWidget());
                index1++;
            }
            index++;
        }
    }
}

From source file:com.phideltcmu.recruiter.client.ui.popup.AdminAdd.java

License:Creative Commons License

private void fillSuggest(List<InternalUser> list, final SuggestBox suggestbox) {
    MultiWordSuggestOracle oracle = (MultiWordSuggestOracle) suggestbox.getSuggestOracle();
    // Populate the suggestion oracle
    for (InternalUser person : list) {
        oracle.add(person.getName());// w  ww . j a va2 s .  c o  m
    }

    // When a suggestion is selected, switch to that client
    suggestbox.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {
        @Override
        public void onSelection(SelectionEvent<SuggestOracle.Suggestion> suggestionSelectionEvent) {
        }
    });

    // If the user hits enter in the search box, inspect the company
    suggestbox.addKeyUpHandler(new KeyUpHandler() {
        private int keyUpCount = 0;

        @Override
        public void onKeyUp(KeyUpEvent event) {
            // Bug in GWT 2.0.3. KeyUpEvent gets fired twice...

            keyUpCount++;

            if (keyUpCount % 2 == 0) {
                return;
            }
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                suggestbox.setFocus(false);
            }
        }
    });
    this.display();
}

From source file:com.tasktop.c2c.server.common.web.client.widgets.chooser.AbstractValueChooser.java

License:Open Source License

public AbstractValueChooser(SuggestBox suggestBox) {
    com.google.gwt.user.client.ui.HorizontalPanel contentPanel = new com.google.gwt.user.client.ui.HorizontalPanel();
    contentPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    contentPanel.addStyleName("peopleChooser");

    this.suggestBox = suggestBox;
    SelectionHandler<Suggestion> selectionHandler = new SelectionHandler<Suggestion>() {
        @Override/*from www  .ja v  a2 s .c  o  m*/
        public void onSelection(SelectionEvent<Suggestion> event) {
            ValueSuggestion<T> suggestion = (ValueSuggestion<T>) event.getSelectedItem();
            if (!getValues().contains(suggestion.getValue())) {
                addValue(suggestion.getValue());
            } else {
                AbstractValueChooser.this.suggestBox.setValue("", false);
            }
        }

    };
    suggestBox.addSelectionHandler(selectionHandler);

    contentPanel.add(suggestBox);

    valuePanel = new HorizontalPanel();
    contentPanel.add(valuePanel);

    initWidget(contentPanel);
}

From source file:de.uni_koeln.spinfo.maalr.webapp.ui.common.client.ConfigurableSearchArea.java

License:Apache License

private Widget buildOracle(final UiField field) {
    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle() {

        @Override//from w w w  . j  av  a2  s .com
        public void requestSuggestions(final Request request, final Callback callback) {
            service.getSuggestions(field.getId(), request.getQuery(), request.getLimit(),
                    new AsyncCallback<List<String>>() {

                        @Override
                        public void onFailure(Throwable caught) {
                        }

                        @Override
                        public void onSuccess(List<String> result) {
                            Response response = new Response();
                            List<Suggestion> suggestions = new ArrayList<Suggestion>();
                            for (String string : result) {
                                suggestions.add(new MultiWordSuggestion(string, string));
                            }
                            response.setSuggestions(suggestions);
                            callback.onSuggestionsReady(request, response);
                        }
                    });

        }

    };
    final SuggestBox box = new SuggestBox(oracle);
    box.setValue(field.getInitialValue());

    box.getValueBox().addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            String old = oracleHistory.get(field.getId());
            if (old != null) {
                box.getValueBox().setText(old);
            }
            box.getValueBox().selectAll();
            box.showSuggestionList();
        }
    });

    box.addKeyDownHandler(new KeyDownHandler() {

        @Override
        public void onKeyDown(KeyDownEvent event) {
            if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER) {
                box.getValueBox().selectAll();
                event.stopPropagation();
                event.preventDefault();
                box.setFocus(true);
                fireDelayedUpdate();
            }
        }
    });

    box.addKeyUpHandler(new KeyUpHandler() {

        @Override
        public void onKeyUp(KeyUpEvent event) {
            if (box.getValue() == null || box.getValue().trim().length() == 0) {
                currentValues.remove(field.getId());
            } else {
                currentValues.put(field.getId(), box.getValue());
            }
            oracleHistory.put(field.getId(), box.getValue());
            //fireDelayedUpdate();
        }

    });
    box.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {

        @Override
        public void onSelection(SelectionEvent<Suggestion> event) {
            String string = event.getSelectedItem().getReplacementString();
            if (box.getValue() == null || box.getValue().trim().length() == 0) {
                currentValues.remove(field.getId());
            } else {
                currentValues.put(field.getId(), string);
            }
            fireDelayedUpdate();
        }
    });
    return box;
}

From source file:fast.servicescreen.client.gui.CTextChangeHandler.java

License:Open Source License

public static SuggestBox createSuggestBox(CObject obj, String attrName, MultiWordSuggestOracle oracle) {
    CTextChangeHandler handler = new CTextChangeHandler();
    SuggestBox suggestBox = new SuggestBox(oracle);
    handler.setTarget(obj);//from   w  ww  .j av  a2s. c o m
    handler.setTargetAttrName(attrName);
    handler.setSuggestBox(suggestBox);
    String oldValue = (String) obj.get(attrName);
    suggestBox.setValue(oldValue);
    suggestBox.addSelectionHandler(handler);

    obj.addPropertyChangeListener(attrName, handler);
    return suggestBox;
}

From source file:fast.servicescreen.client.gui.RuleGUI.java

License:Open Source License

protected TreeItem createRuleEditor(FASTMappingRule nextRule, TreeItem treeParent) {
    // "from" attribute
    // new SuggestBox
    TextBox fromBox = CTextChangeHandler.createWidthTextBox(nextRule, "3cm", "sourceTagname");

    // "kind" attribute
    MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();
    ArrayList<String> words = new ArrayList<String>();

    words.add("createObject");
    words.add("fillAttributes");
    words.add("dummyRule");

    for (String word : words)
        oracle.add(word);//from  ww  w . j a  va2 s  .  c  o m

    oracle.setDefaultSuggestionsFromText(words);
    SuggestBox kindBox = CTextChangeHandler.createWidthSuggestBox(nextRule, "3cm", "kind", oracle);

    // "target" attribute
    MultiWordSuggestOracle typeOracle = new MultiWordSuggestOracle();

    ServiceDesigner serviceDesigner = (ServiceDesigner) buildingBlock.get("serviceDesigner");

    fillTypesOracle(nextRule, typeOracle, serviceDesigner);
    final SuggestBox targetBox = CTextChangeHandler.createWidthSuggestBox(nextRule, "3cm", "targetElemName",
            typeOracle);
    ;
    targetBox.setValue(nextRule.getTargetElemName());
    targetBox.setWidth("3cm");

    Grid ruleRow = new Grid(1, 3);
    ruleRow.setWidget(0, 0, fromBox);
    ruleRow.setWidget(0, 1, kindBox);
    ruleRow.setWidget(0, 2, targetBox);

    // add listeners for oracle relevant changes
    UpdateTargetBoxOracleHandler handler = new UpdateTargetBoxOracleHandler(nextRule, typeOracle,
            serviceDesigner);
    kindBox.addSelectionHandler(handler);

    if (treeParent != null) {
        Grid parentGrid = (Grid) treeParent.getWidget();
        if (parentGrid != null) {
            SuggestBox parentTargetBox = (SuggestBox) parentGrid.getWidget(0, 2); // the target box of the parent
            parentTargetBox.addSelectionHandler(handler);
        }
    }

    //adding a RulefieldsListener (and handler) to rule fields
    fromBox.addChangeHandler(rulefieldListener);
    kindBox.addSelectionHandler(rulefieldListener);
    targetBox.addSelectionHandler(rulefieldListener);

    fromBox.addValueChangeHandler(new ValueChangeHandler<String>() {
        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            updateFactsTree();
        }
    });

    TreeItem result = treeParent.addItem(ruleRow);
    result.setUserObject(nextRule);

    return result;
}

From source file:gwt.material.design.addins.client.ui.MaterialAutoComplete.java

License:Apache License

/**
 * Generate and build the List Items to be set on Auto Complete box.
 *//*from  ww  w  .  j a va 2s .  com*/
private void generateAutoComplete(MaterialSuggestionOracle suggestions) {
    list.setStyleName("multiValueSuggestBox-list");
    this.suggestions = suggestions;
    final ListItem item = new ListItem();

    item.setStyleName("multiValueSuggestBox-input-token");
    final SuggestBox box = new SuggestBox(suggestions, itemBox);
    String autocompleteId = DOM.createUniqueId();
    itemBox.getElement().setId(autocompleteId);

    item.add(box);
    list.add(item);

    itemBox.addKeyDownHandler(new KeyDownHandler() {
        public void onKeyDown(KeyDownEvent event) {
            switch (event.getNativeKeyCode()) {
            case KeyCodes.KEY_ENTER:
                addItem(itemBox, list);
                break;

            case KeyCodes.KEY_BACKSPACE:
                if (itemBox.getValue().trim().isEmpty()) {
                    if (itemsHighlighted.isEmpty()) {
                        if (itemValues.size() > 0) {
                            ListItem li = (ListItem) list.getWidget(list.getWidgetCount() - 2);
                            MaterialChip p = (MaterialChip) li.getWidget(0);
                            if (itemValues.contains(p.getText())) {
                                itemValues.remove(p.getText());
                            }
                            list.remove(li);
                        }
                    }
                }

            case KeyCodes.KEY_DELETE:
                if (itemBox.getValue().trim().isEmpty()) {
                    for (ListItem li : itemsHighlighted) {
                        li.removeFromParent();
                        MaterialChip p = (MaterialChip) li.getWidget(0);
                        itemValues.remove(p.getText());
                    }
                    itemsHighlighted.clear();
                }
                itemBox.setFocus(true);
                break;
            }
        }
    });

    itemBox.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            box.showSuggestionList();
        }
    });

    box.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {
        public void onSelection(SelectionEvent<SuggestOracle.Suggestion> selectionEvent) {
            addItem(itemBox, list);
        }
    });

    panel.add(list);
    panel.getElement().setAttribute("onclick", "document.getElementById('" + autocompleteId + "').focus()");
    panel.add(lblError);
    box.setFocus(true);
}

From source file:main.client.ui.SourceBrowserPortlet.java

License:Open Source License

public SourceBrowserPortlet() {
    LayoutPanel panel = new LayoutPanel();
    initWidget(panel);/*from   w w  w. j  av  a  2s .c  o m*/

    Button classes = new CssButton("Classes", new ClickHandler() {
        public void onClick(ClickEvent event) {
            navigateTo("AllClasses.html");
        }
    }, "Show class list");

    Button packages = new CssButton("Packages", new ClickHandler() {
        public void onClick(ClickEvent event) {
            navigateTo("packages.html");
        }
    }, "Show package list");

    classBox.setVisibleLength(30);

    SuggestBox sb = new SuggestBox(new ClassSuggestOracle(), classBox);
    sb.setWidth("100%");
    sb.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {
        public void onSelection(SelectionEvent<SuggestOracle.Suggestion> event) {
            ClassSuggestion s = (ClassSuggestion) event.getSelectedItem();
            navigateTo(s.className);
        }
    });

    FormBuilder b = new FormBuilder();
    b.add(back).add(forward).field(sb).width("100%").add(classes).add(packages).endRow();

    panel.add(b.getForm(), 22);
    panel.add(javaHtml);

    javaHtml.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            onJavaHtmlClick();
        }
    });
}

From source file:org.bonitasoft.forms.client.view.widget.FormFieldWidget.java

License:Open Source License

/**
 * Create a {@link SuggestBox} widget/*w w w  .j  a  v  a 2  s. com*/
 *
 * @param widgetData
 *        the widget data object
 * @param fieldValue
 *        the widget value
 * @return a {@link SuggestBox}
 */
@SuppressWarnings("unchecked")
protected SuggestBox createSuggestBox(final ReducedFormWidget widgetData, final FormFieldValue fieldValue) {
    final TextBox textBox = new TextBox();
    textBox.setEnabled(!widgetData.isReadOnly());
    final DefaultSuggestionDisplay suggestionDisplay = new DefaultSuggestionDisplay();
    final String popupStyle = widgetData.getItemsStyle();
    if (popupStyle != null && popupStyle.length() > 0) {
        suggestionDisplay.setPopupStyleName(popupStyle);
    }
    suggestionsMap = new TreeMap<String, String>();
    final MultiWordSuggestOracle oracle = new MultiWordSuggestOracle();

    // this fix the reordering of numbers
    final Comparator<String> numberComparator = new Comparator<String>() {

        @Override
        public int compare(final String o1, final String o2) {

            if (stringIsDouble(o1) && stringIsDouble(o2)) {
                return Double.valueOf(o1).compareTo(Double.valueOf(o2));
            }
            return o1.compareTo(o2);
        }

        private boolean stringIsDouble(final String str) {
            return str.matches("^(([0-9]*)|(([0-9]*)[\\.,\\,]([0-9]*)))$");
        }

    };
    oracle.setComparator(numberComparator);

    String labelValue = null;
    final String fieldValueStr = getStringValue(fieldValue);
    widgetData.getAvailableValues();
    for (final ReducedFormFieldAvailableValue availableValue : widgetData.getAvailableValues()) {
        final String label = availableValue.getLabel();
        final String value = availableValue.getValue();
        suggestionsMap.put(label, value);
        oracle.add(label);
        if (value != null && value.equals(fieldValueStr)) {
            labelValue = label;
        }
    }
    final SuggestBox suggestBox = new SuggestBox(oracle, textBox, suggestionDisplay);
    suggestBox.addValueChangeHandler(this);
    suggestBox.addSelectionHandler(this);
    if (labelValue != null) {
        suggestBox.setValue(labelValue);
    } else {
        suggestBox.setValue(fieldValueStr);
    }
    if (widgetData.getMaxItems() > 0) {
        suggestBox.setLimit(widgetData.getMaxItems() - 1);
    }
    return suggestBox;
}