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

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

Introduction

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

Prototype

public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler) 

Source Link

Usage

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);/* w  w w. j a  v  a 2 s .c om*/

                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:org.bonitasoft.forms.client.view.widget.FormFieldWidget.java

License:Open Source License

/**
 * Create a {@link SuggestBox} widget//w  w w  .ja  v  a2s.c  om
 *
 * @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;
}

From source file:org.overlord.dtgov.ui.client.local.pages.workflowQuery.WorkflowQueryPropertiesTable.java

License:Apache License

/**
 * Adds the row./*  w  w w  . j a  va  2  s.  c o  m*/
 * 
 * @param property
 *            the property
 */
private void addRow(final WorkflowQueryProperty property) {
    final int rowIdx = this.rowElements.size();
    String propValue = property.getValue();
    FlowPanel actions = new FlowPanel();
    InlineLabel deleteAction = new InlineLabel();
    deleteAction.setStyleName("workflow-icon", true); //$NON-NLS-1$
    deleteAction.setStyleName("workflow-delete-icon", true); //$NON-NLS-1$
    actions.add(deleteAction);

    deleteAction.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            deleteRow(rowIdx);
            properties.remove(rowIdx);
            setValue(properties);
        }
    });
    final TextBox valueBox = new TextBox();
    valueBox.setText(propValue);
    valueBox.setStyleName("input-value"); //$NON-NLS-1$
    valueBox.addValueChangeHandler(new ValueChangeHandler<String>() {

        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            String val = event.getValue();
            property.setValue(val);
        }
    });

    SuggestBox propertyKey = new SuggestBox(keyDefaultValues);

    propertyKey.setStyleName("input-value"); //$NON-NLS-1$
    propertyKey.setText(property.getKey());
    propertyKey.addValueChangeHandler(new ValueChangeHandler<String>() {

        @Override
        public void onValueChange(ValueChangeEvent<String> event) {
            String val = event.getValue();
            property.setKey(val);

        }
    });

    propertyKey.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {

        @Override
        public void onSelection(SelectionEvent<Suggestion> event) {
            String val = event.getSelectedItem().getReplacementString();
            for (String propertyKey : propertyKeyTypes.keySet()) {
                if (propertyKey.equals(val)) {
                    valueBox.setText(propertyKeyTypes.get(propertyKey));
                    property.setValue(propertyKeyTypes.get(propertyKey));
                }
            }

            property.setKey(val);

        }
    });

    add(rowIdx, 0, propertyKey);
    add(rowIdx, 1, valueBox);
    Element row = add(rowIdx, 2, actions);
    setStyleName(row, "actions", true); //$NON-NLS-1$
}