public class MaterialAutoComplete extends gwt.material.design.client.base.AbstractValueWidget<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>> implements gwt.material.design.client.base.HasPlaceholder, gwt.material.design.client.base.HasProgress, gwt.material.design.client.base.HasType<AutocompleteType>, com.google.gwt.event.logical.shared.HasSelectionHandlers<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>, gwt.material.design.client.base.HasReadOnly
Use GWT Autocomplete to search for matches from local or remote data sources. We used MultiWordSuggestOracle to populate the list to be added on the autocomplete values.
xmlns:ma='urn:import:gwt.material.design.addins.client'
<ma:autocomplete.MaterialAutoComplete ui:field="autocomplete" placeholder="States" />
To use your domain object inside the MaterialAutoComplete, for example, an object
"User", you can subclass the MaterialSuggestionOracle
and SuggestOracle.Suggestion
, like this:
public class UserOracle extends MaterialSuggestionOracle { private List<User> contacts = new LinkedList<>();public void addContacts(List<User> users){ contacts.addAll(users); }
@Override public void requestSuggestions(final Request request, final Callback callback) { Response resp = new Response(); if (contacts.isEmpty()){ callback.onSuggestionsReady(request, resp); return; } String text = request.getQuery(); text = text.toLowerCase();
List<UserSuggestion> list = new ArrayList<>();
/ * * Finds the contacts that meets the criteria. Note that since the * requestSuggestions method is asynchronous, you can fetch the * results from the server instead of using a local contacts List. */ for (User contact : contacts){ if (contact.getName().toLowerCase().contains(text)){ list.add(new UserSuggestion(contact)); } } resp.setSuggestions(list); callback.onSuggestionsReady(request, resp); } }
public class UserSuggestion implements SuggestOracle.Suggestion {
private User user;
public UserSuggestion(User user){ this.user = user; }
@Override public String getDisplayString() { return getReplacementString(); }
@Override public String getReplacementString() { return user.getName(); }
public User getUser() { return user; } }
And then use the UserOracle like this:
//Constructor MaterialAutoComplete userAutoComplete = new MaterialAutoComplete(new UserOracle());//How to get the selected User objects public List<User> getSelectedUsers(){ List<? extends Suggestion> values = userAutoComplete.getValue(); List<User> users = new ArrayList<>(values.size()); for (Suggestion value : values) { if (value instanceof UserSuggestion){ UserSuggestion us = (UserSuggestion) value; User user = us.getUser(); users.add(user); } } return users; }
Modifier and Type | Class and Description |
---|---|
static class |
MaterialAutoComplete.DefaultMaterialChipProvider
Default implementation of the
MaterialAutoComplete.MaterialChipProvider interface,
used by the MaterialAutoComplete . |
static interface |
MaterialAutoComplete.MaterialChipProvider
Interface that defines how a
MaterialChip is created, given a
SuggestOracle.Suggestion . |
gwt.material.design.client.base.MaterialWidget.Feature
com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled
com.google.gwt.editor.client.Editor.Ignore, com.google.gwt.editor.client.Editor.Path
Constructor and Description |
---|
MaterialAutoComplete()
Use MaterialAutocomplete to search for matches from local or remote data
sources.
|
MaterialAutoComplete(AutocompleteType type) |
MaterialAutoComplete(String placeholder) |
MaterialAutoComplete(com.google.gwt.user.client.ui.SuggestOracle suggestions)
Use MaterialAutocomplete to search for matches from local or remote data
sources.
|
Modifier and Type | Method and Description |
---|---|
com.google.gwt.event.shared.HandlerRegistration |
addBlurHandler(com.google.gwt.event.dom.client.BlurHandler handler) |
com.google.gwt.event.shared.HandlerRegistration |
addFocusHandler(com.google.gwt.event.dom.client.FocusHandler handler) |
protected boolean |
addItem(com.google.gwt.user.client.ui.SuggestOracle.Suggestion suggestion)
Adding the item value using Material Chips added on auto complete box
|
com.google.gwt.event.shared.HandlerRegistration |
addKeyUpHandler(com.google.gwt.event.dom.client.KeyUpHandler handler) |
com.google.gwt.event.shared.HandlerRegistration |
addSelectionHandler(com.google.gwt.event.logical.shared.SelectionHandler<com.google.gwt.user.client.ui.SuggestOracle.Suggestion> handler) |
com.google.gwt.event.shared.HandlerRegistration |
addValueChangeHandler(com.google.gwt.event.logical.shared.ValueChangeHandler<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>> handler) |
void |
clear()
Clear the chip items on the autocomplete box
|
MaterialAutoComplete.MaterialChipProvider |
getChipProvider()
Gets the current
MaterialAutoComplete.MaterialChipProvider . |
gwt.material.design.client.ui.MaterialLabel |
getErrorLabel() |
gwt.material.design.client.base.mixin.ErrorMixin<gwt.material.design.client.base.AbstractValueWidget,gwt.material.design.client.ui.MaterialLabel> |
getErrorMixin() |
protected gwt.material.design.client.base.mixin.FocusableMixin<gwt.material.design.client.base.MaterialWidget> |
getFocusableMixin() |
com.google.gwt.user.client.ui.TextBox |
getItemBox() |
List<gwt.material.design.client.ui.html.ListItem> |
getItemsHighlighted() |
List<String> |
getItemValues() |
gwt.material.design.client.ui.html.Label |
getLabel() |
int |
getLimit() |
String |
getPlaceholder() |
gwt.material.design.client.ui.MaterialProgress |
getProgress() |
protected gwt.material.design.client.base.mixin.ProgressMixin<MaterialAutoComplete> |
getProgressMixin() |
protected gwt.material.design.client.base.mixin.ReadOnlyMixin<MaterialAutoComplete,com.google.gwt.user.client.ui.TextBox> |
getReadOnlyMixin() |
String |
getSelectedChipStyle()
Returns the style class applied to chips when they are selected.
|
com.google.gwt.user.client.ui.SuggestBox |
getSuggestBox() |
com.google.gwt.user.client.ui.SuggestOracle |
getSuggestions() |
AutocompleteType |
getType() |
protected gwt.material.design.client.base.mixin.CssTypeMixin<AutocompleteType,MaterialAutoComplete> |
getTypeMixin() |
List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> |
getValue()
Returns the selected
SuggestOracle.Suggestion s. |
void |
hideProgress() |
boolean |
isDirectInputAllowed() |
boolean |
isReadOnly() |
boolean |
isToggleReadOnly() |
protected void |
loadHandlers() |
protected void |
onLoad() |
protected void |
onUnload() |
void |
setAutoSuggestLimit(int limit)
Set the number of suggestions to be displayed to the user.
|
void |
setChipProvider(MaterialAutoComplete.MaterialChipProvider chipProvider)
Sets a
MaterialAutoComplete.MaterialChipProvider that can customize how the
MaterialChip is created for each selected SuggestOracle.Suggestion . |
void |
setDirectInputAllowed(boolean directInputAllowed)
When set to
false , only SuggestOracle.Suggestion s from the
SuggestionOracle are accepted. |
void |
setEnabled(boolean enabled) |
void |
setItemsHighlighted(List<gwt.material.design.client.ui.html.ListItem> itemsHighlighted) |
void |
setItemValues(List<String> itemValues) |
void |
setItemValues(List<String> itemValues,
boolean fireEvents) |
void |
setLabel(String label) |
void |
setLimit(int limit) |
void |
setPercent(double percent) |
void |
setPlaceholder(String placeholder) |
void |
setReadOnly(boolean value) |
void |
setSelectedChipStyle(String selectedChipStyle)
Sets the style class applied to chips when they are selected.
|
void |
setSuggestions(com.google.gwt.user.client.ui.SuggestOracle suggestions)
Sets the SuggestOracle to be used to provide suggestions.
|
void |
setSuggestions(com.google.gwt.user.client.ui.SuggestOracle suggestions,
AutocompleteType type) |
void |
setToggleReadOnly(boolean toggle) |
void |
setType(AutocompleteType type) |
protected void |
setup(com.google.gwt.user.client.ui.SuggestOracle suggestions)
Generate and build the List Items to be set on Auto Complete box.
|
void |
setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value,
boolean fireEvents) |
void |
showProgress(gwt.material.design.client.constants.ProgressType type) |
protected boolean |
tryRemoveSuggestion(com.google.gwt.user.client.ui.Widget widget) |
protected void |
unloadHandlers() |
addValidationChangedHandler, addValidator, clearErrorOrSuccess, createBlankValidator, getErrorHandler, getErrorHandlerMixin, getErrorHandlerType, getValidatorMixin, isAllowBlank, isValidateOnBlur, removeValidator, reset, setAllowBlank, setError, setErrorHandler, setErrorHandlerType, setHelperText, setSuccess, setupBlurValidation, setValidateOnBlur, setValidators, setValue, setValue, showErrors, validate, validate
$this, add, add, addAttachHandler, addClickHandler, addDoubleClickHandler, addDragEndHandler, addDragEnterHandler, addDragLeaveHandler, addDragMoveHandler, addDragOverHandler, addDragStartHandler, addDropActivateHandler, addDropDeactivateHandler, addDropHandler, addGestureChangeHandler, addGestureEndHandler, addGestureStartHandler, addKeyDownHandler, addKeyPressHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseUpHandler, addMouseWheelHandler, addOrientationChangeHandler, addTouchCancelHandler, addTouchEndHandler, addTouchMoveHandler, addTouchStartHandler, body, clearActiveClass, enableFeature, getBackfaceVisibility, getBackgroundColor, getBorder, getBorderBottom, getBorderLeft, getBorderMixin, getBorderRadius, getBorderRight, getBorderTop, getCenterOn, getCenterOnMixin, getChildren, getChildrenList, getCircleMixin, getColorsMixin, getDataAttribute, getDepth, getDimensionMixin, getEnabledMixin, getFlexboxMixin, getFloat, getFloatMixin, getFontSize, getFontSizeMixin, getFontWeight, getFontWeightMixin, getGridMixin, getHandlerRegistry, getHideOn, getHideOnMixin, getHoverableMixin, getId, getIdMixin, getInitialClasses, getLayoutPosition, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpacity, getOrientation, getOrientationMixin, getPerspective, getPerspectiveOrigin, getScrollspy, getScrollspyMixin, getSeparatorMixin, getShadow, getShadowMixin, getShowOn, getShowOnMixin, getTabIndex, getTextAlign, getTextAlignMixin, getTextColor, getTooltip, getTooltipDelayMs, getTooltipHTML, getTooltipMixin, getTooltipPosition, getTransform, getTransformMixin, getTransformOrigin, getTransformStyle, getTruncateMixin, getVerticalAlign, getVerticalAlignMixin, getWaves, getWavesMixin, getWidth, insert, insert, isCircle, isDetectOrientation, isEnabled, isFeatureEnabled, isHoverable, isSeparator, isTruncate, registerHandler, removeHandler, setAccessKey, setBackfaceVisibility, setBackgroundColor, setBorder, setBorderBottom, setBorderLeft, setBorderRadius, setBorderRight, setBorderTop, setBottom, setCenterOn, setCircle, setClass, setDataAttribute, setDepth, setDetectOrientation, setDisplay, setFlex, setFlexAlignContent, setFlexAlignItems, setFlexAlignSelf, setFlexBasis, setFlexDirection, setFlexGrow, setFlexJustifyContent, setFlexOrder, setFlexShrink, setFlexWrap, setFloat, setFocus, setFontSize, setFontSize, setFontWeight, setGrid, setGwtDisplay, setHideOn, setHoverable, setId, setInitialClasses, setLayoutPosition, setLeft, setLineHeight, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setMaxHeight, setMaxWidth, setMinHeight, setMinWidth, setOffset, setOpacity, setOrientation, setOverflow, setPadding, setPaddingBottom, setPaddingLeft, setPaddingRight, setPaddingTop, setPerspective, setPerspectiveOrigin, setRight, setScrollspy, setSeparator, setShadow, setShowOn, setStyle, setTabIndex, setTextAlign, setTextColor, setTooltip, setTooltipDelayMs, setTooltipHTML, setTooltipPosition, setTop, setTransform, setTransformOrigin, setTransformStyle, setTransition, setTruncate, setVerticalAlign, setVisibility, setWaves, stopTouchStartEvent, window
add, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, iterator, remove, remove
add, adopt, doAttachChildren, doDetachChildren, orphan, remove
addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, fireEvent, getHandlerCount, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, removeFromParent, setLayoutData, sinkEvents, unsinkEvents
addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
forEach, spliterator
public MaterialAutoComplete()
public MaterialAutoComplete(AutocompleteType type)
public MaterialAutoComplete(String placeholder)
public MaterialAutoComplete(com.google.gwt.user.client.ui.SuggestOracle suggestions)
setSuggestions(SuggestOracle)
protected void onLoad()
onLoad
in class gwt.material.design.client.base.MaterialWidget
protected void loadHandlers()
protected void onUnload()
onUnload
in class gwt.material.design.client.base.MaterialWidget
protected void unloadHandlers()
protected void setup(com.google.gwt.user.client.ui.SuggestOracle suggestions)
protected boolean tryRemoveSuggestion(com.google.gwt.user.client.ui.Widget widget)
protected boolean addItem(com.google.gwt.user.client.ui.SuggestOracle.Suggestion suggestion)
public void clear()
clear
in interface com.google.gwt.user.client.ui.HasWidgets
clear
in class com.google.gwt.user.client.ui.Panel
public void showProgress(gwt.material.design.client.constants.ProgressType type)
showProgress
in interface gwt.material.design.client.base.HasProgress
public void setPercent(double percent)
setPercent
in interface gwt.material.design.client.base.HasProgress
public void hideProgress()
hideProgress
in interface gwt.material.design.client.base.HasProgress
public gwt.material.design.client.ui.MaterialProgress getProgress()
getProgress
in interface gwt.material.design.client.base.HasProgress
public List<String> getItemValues()
getValue()
public void setItemValues(List<String> itemValues)
itemValues
- the itemsSelected to setAbstractValueWidget.setValue(Object)
public void setItemValues(List<String> itemValues, boolean fireEvents)
itemValues
- the itemsSelected to setfireEvents
- will fire value change event if trueAbstractValueWidget.setValue(Object)
public List<gwt.material.design.client.ui.html.ListItem> getItemsHighlighted()
public void setItemsHighlighted(List<gwt.material.design.client.ui.html.ListItem> itemsHighlighted)
itemsHighlighted
- the itemsHighlighted to setpublic com.google.gwt.user.client.ui.SuggestOracle getSuggestions()
public void setSuggestions(com.google.gwt.user.client.ui.SuggestOracle suggestions)
suggestions
- the suggestion oracle to setpublic void setSuggestions(com.google.gwt.user.client.ui.SuggestOracle suggestions, AutocompleteType type)
public int getLimit()
public void setLimit(int limit)
public void setAutoSuggestLimit(int limit)
limit
- public String getPlaceholder()
getPlaceholder
in interface gwt.material.design.client.base.HasPlaceholder
public void setPlaceholder(String placeholder)
setPlaceholder
in interface gwt.material.design.client.base.HasPlaceholder
public void setLabel(String label)
label
- MaterialValueBox.setLabel(String)
public MaterialAutoComplete.MaterialChipProvider getChipProvider()
MaterialAutoComplete.MaterialChipProvider
. By default, the class uses
an instance of MaterialAutoComplete.DefaultMaterialChipProvider
.public void setChipProvider(MaterialAutoComplete.MaterialChipProvider chipProvider)
MaterialAutoComplete.MaterialChipProvider
that can customize how the
MaterialChip
is created for each selected SuggestOracle.Suggestion
.public void setDirectInputAllowed(boolean directInputAllowed)
false
, only SuggestOracle.Suggestion
s from the
SuggestionOracle are accepted. Direct input create by the user is
ignored. By default, direct input is allowed.public boolean isDirectInputAllowed()
SuggestOracle.Suggestion
s created by direct input from the user
should be allowed. By default directInputAllowed is
true
.public void setSelectedChipStyle(String selectedChipStyle)
Defaults to "blue white-text".
selectedChipStyle
- The class or classes to be applied to selected chipspublic String getSelectedChipStyle()
Defaults to "blue white-text".
public void setType(AutocompleteType type)
setType
in interface gwt.material.design.client.base.HasType<AutocompleteType>
public AutocompleteType getType()
getType
in interface gwt.material.design.client.base.HasType<AutocompleteType>
public void setReadOnly(boolean value)
setReadOnly
in interface gwt.material.design.client.base.HasReadOnly
public boolean isReadOnly()
isReadOnly
in interface gwt.material.design.client.base.HasReadOnly
public void setToggleReadOnly(boolean toggle)
setToggleReadOnly
in interface gwt.material.design.client.base.HasReadOnly
public boolean isToggleReadOnly()
isToggleReadOnly
in interface gwt.material.design.client.base.HasReadOnly
public List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> getValue()
SuggestOracle.Suggestion
s. Modifications to the list are
not propagated to the component.getValue
in interface com.google.gwt.user.client.TakesValue<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>
getValue
in interface com.google.gwt.user.client.ui.HasValue<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>
SuggestOracle.Suggestion
s, or empty if none was
selected (never null
).public void setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value, boolean fireEvents)
public void setEnabled(boolean enabled)
setEnabled
in interface com.google.gwt.user.client.ui.HasEnabled
setEnabled
in class gwt.material.design.client.base.MaterialWidget
public gwt.material.design.client.ui.html.Label getLabel()
public com.google.gwt.user.client.ui.TextBox getItemBox()
public gwt.material.design.client.ui.MaterialLabel getErrorLabel()
public com.google.gwt.user.client.ui.SuggestBox getSuggestBox()
public com.google.gwt.event.shared.HandlerRegistration addKeyUpHandler(com.google.gwt.event.dom.client.KeyUpHandler handler)
addKeyUpHandler
in interface com.google.gwt.event.dom.client.HasKeyUpHandlers
addKeyUpHandler
in class gwt.material.design.client.base.MaterialWidget
public com.google.gwt.event.shared.HandlerRegistration addSelectionHandler(com.google.gwt.event.logical.shared.SelectionHandler<com.google.gwt.user.client.ui.SuggestOracle.Suggestion> handler)
addSelectionHandler
in interface com.google.gwt.event.logical.shared.HasSelectionHandlers<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
public com.google.gwt.event.shared.HandlerRegistration addValueChangeHandler(com.google.gwt.event.logical.shared.ValueChangeHandler<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>> handler)
addValueChangeHandler
in interface com.google.gwt.event.logical.shared.HasValueChangeHandlers<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>
addValueChangeHandler
in class gwt.material.design.client.base.AbstractValueWidget<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>
public com.google.gwt.event.shared.HandlerRegistration addBlurHandler(com.google.gwt.event.dom.client.BlurHandler handler)
addBlurHandler
in interface com.google.gwt.event.dom.client.HasBlurHandlers
addBlurHandler
in class gwt.material.design.client.base.MaterialWidget
public com.google.gwt.event.shared.HandlerRegistration addFocusHandler(com.google.gwt.event.dom.client.FocusHandler handler)
addFocusHandler
in interface com.google.gwt.event.dom.client.HasFocusHandlers
addFocusHandler
in class gwt.material.design.client.base.MaterialWidget
protected gwt.material.design.client.base.mixin.ProgressMixin<MaterialAutoComplete> getProgressMixin()
protected gwt.material.design.client.base.mixin.CssTypeMixin<AutocompleteType,MaterialAutoComplete> getTypeMixin()
public gwt.material.design.client.base.mixin.ErrorMixin<gwt.material.design.client.base.AbstractValueWidget,gwt.material.design.client.ui.MaterialLabel> getErrorMixin()
getErrorMixin
in class gwt.material.design.client.base.AbstractValueWidget<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>
protected gwt.material.design.client.base.mixin.ReadOnlyMixin<MaterialAutoComplete,com.google.gwt.user.client.ui.TextBox> getReadOnlyMixin()
protected gwt.material.design.client.base.mixin.FocusableMixin<gwt.material.design.client.base.MaterialWidget> getFocusableMixin()
getFocusableMixin
in class gwt.material.design.client.base.MaterialWidget
Copyright © 2018. All rights reserved.