public class MaterialAutoComplete extends gwt.material.design.client.base.MaterialWidget implements gwt.material.design.client.base.HasError, gwt.material.design.client.base.HasPlaceholder, com.google.gwt.user.client.ui.HasValue<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>, gwt.material.design.client.base.HasProgress, com.google.gwt.event.dom.client.HasKeyUpHandlers, gwt.material.design.client.base.HasType<AutocompleteType>, com.google.gwt.event.logical.shared.HasSelectionHandlers<com.google.gwt.user.client.ui.SuggestOracle.Suggestion>
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.Featurecom.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled| Modifier and Type | Field and Description |
|---|---|
gwt.material.design.client.base.mixin.CssTypeMixin<AutocompleteType,MaterialAutoComplete> |
typeMixin |
| Constructor and Description |
|---|
MaterialAutoComplete()
Use MaterialAutocomplete to search for matches from local or remote data
sources.
|
MaterialAutoComplete(AutocompleteType type) |
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 |
|---|---|
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
|
void |
clearErrorOrSuccess() |
protected void |
generateAutoComplete(com.google.gwt.user.client.ui.SuggestOracle suggestions)
Generate and build the List Items to be set on Auto Complete box.
|
MaterialAutoComplete.MaterialChipProvider |
getChipProvider()
Gets the current
MaterialAutoComplete.MaterialChipProvider. |
protected gwt.material.design.client.base.mixin.FocusableMixin<gwt.material.design.client.base.MaterialWidget> |
getFocusableMixin() |
List<gwt.material.design.client.ui.html.ListItem> |
getItemsHighlighted() |
List<String> |
getItemValues() |
int |
getLimit() |
String |
getPlaceholder() |
String |
getSelectedChipStyle()
Returns the style class applied to chips when they are selected.
|
com.google.gwt.user.client.ui.SuggestOracle |
getSuggestions() |
AutocompleteType |
getType() |
List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> |
getValue()
Returns the selected
SuggestOracle.Suggestions. |
void |
hideProgress() |
boolean |
isDirectInputAllowed() |
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.Suggestions from the
SuggestionOracle are accepted. |
void |
setEnabled(boolean enabled) |
void |
setError(String error) |
void |
setHelperText(String helperText) |
void |
setItemsHighlighted(List<gwt.material.design.client.ui.html.ListItem> itemsHighlighted) |
void |
setItemValues(List<String> itemValues) |
void |
setLimit(int limit) |
void |
setPercent(double percent) |
void |
setPlaceholder(String placeholder) |
void |
setSelectedChipStyle(String selectedChipStyle)
Sets the style class applied to chips when they are selected.
|
void |
setSuccess(String success) |
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 |
setType(AutocompleteType type) |
void |
setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value) |
void |
setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value,
boolean fireEvents) |
void |
showProgress(gwt.material.design.client.constants.ProgressType type) |
add, add, clearActiveClass, enableFeature, getBackgroundColor, getCenterOn, getCenterOnMixin, getCircleMixin, getColorsMixin, getDataAttribute, getDepth, getEnabledMixin, getFlexboxMixin, getFloat, getFloatMixin, getFontSize, getFontSizeMixin, getFontWeight, getFontWeightMixin, getGridMixin, getHideOn, getHideOnMixin, getHoverableMixin, getId, getIdMixin, getInitialClasses, getOpacity, getScrollspy, getScrollspyMixin, getSeparatorMixin, getShadow, getShadowMixin, getShowOn, getShowOnMixin, getTabIndex, getTextAlign, getTextAlignMixin, getTextColor, getTooltip, getTooltipDelayMs, getTooltipMixin, getTooltipPosition, getTruncateMixin, getWaves, getWavesMixin, getWidth, getWidth, insert, insert, isCircle, isEnabled, isFeatureEnabled, isHoverable, isSeparator, onLoad, setAccessKey, setBackgroundColor, setBottom, setCenterOn, setCircle, setDataAttribute, setDepth, 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, setMargin, setMarginBottom, setMarginLeft, setMarginRight, setMarginTop, setOffset, setOpacity, setOverflow, setPadding, setPaddingBottom, setPaddingLeft, setPaddingRight, setPaddingTop, setRight, setScrollspy, setSeparator, setShadow, setShowOn, setTabIndex, setTextAlign, setTextColor, setTooltip, setTooltipDelayMs, setTooltipPosition, setTop, setTruncate, setVisibility, setWaves, stopTouchStartEvent, stopTouchStartEventadd, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, getChildren, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, iterator, remove, removeadd, adopt, doAttachChildren, doDetachChildren, orphan, removeaddAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, fireEvent, getHandlerCount, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onBrowserEvent, onDetach, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEventsaddStyleDependentName, 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, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic final gwt.material.design.client.base.mixin.CssTypeMixin<AutocompleteType,MaterialAutoComplete> typeMixin
public MaterialAutoComplete()
public MaterialAutoComplete(AutocompleteType type)
public MaterialAutoComplete(com.google.gwt.user.client.ui.SuggestOracle suggestions)
setSuggestions(SuggestOracle)protected void generateAutoComplete(com.google.gwt.user.client.ui.SuggestOracle suggestions)
protected boolean addItem(com.google.gwt.user.client.ui.SuggestOracle.Suggestion suggestion)
public void clear()
clear in interface com.google.gwt.user.client.ui.HasWidgetsclear in class com.google.gwt.user.client.ui.Panelprotected gwt.material.design.client.base.mixin.FocusableMixin<gwt.material.design.client.base.MaterialWidget> getFocusableMixin()
getFocusableMixin in class gwt.material.design.client.base.MaterialWidgetpublic List<String> getItemValues()
getValue()public void setItemValues(List<String> itemValues)
itemValues - the itemsSelected to setsetValue(List)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 String getPlaceholder()
getPlaceholder in interface gwt.material.design.client.base.HasPlaceholderpublic void setPlaceholder(String placeholder)
setPlaceholder in interface gwt.material.design.client.base.HasPlaceholderpublic void setError(String error)
setError in interface gwt.material.design.client.base.HasErrorpublic void setSuccess(String success)
setSuccess in interface gwt.material.design.client.base.HasErrorpublic void setHelperText(String helperText)
setHelperText in interface gwt.material.design.client.base.HasErrorpublic void clearErrorOrSuccess()
clearErrorOrSuccess in interface gwt.material.design.client.base.HasErrorpublic 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.Suggestions from the
SuggestionOracle are accepted. Direct input create by the user is
ignored. By default, direct input is allowed.public boolean isDirectInputAllowed()
SuggestOracle.Suggestions 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 showProgress(gwt.material.design.client.constants.ProgressType type)
showProgress in interface gwt.material.design.client.base.HasProgresspublic void setPercent(double percent)
setPercent in interface gwt.material.design.client.base.HasProgresspublic void hideProgress()
hideProgress in interface gwt.material.design.client.base.HasProgresspublic com.google.gwt.event.shared.HandlerRegistration addKeyUpHandler(com.google.gwt.event.dom.client.KeyUpHandler handler)
addKeyUpHandler in interface com.google.gwt.event.dom.client.HasKeyUpHandlerspublic 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 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>>public List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> getValue()
SuggestOracle.Suggestions. 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.Suggestions, or empty if none was
selected (never null).public void setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value)
public void setValue(List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion> value, boolean fireEvents)
setValue in interface com.google.gwt.user.client.ui.HasValue<List<? extends com.google.gwt.user.client.ui.SuggestOracle.Suggestion>>public void setEnabled(boolean enabled)
setEnabled in interface com.google.gwt.user.client.ui.HasEnabledsetEnabled in class gwt.material.design.client.base.MaterialWidgetCopyright © 2016. All rights reserved.