List of usage examples for com.google.gwt.user.client.ui SuggestBox addValueChangeHandler
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<String> handler)
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$ }