Skip to content

Commit 8d6fd4f

Browse files
committed
Added demo for Dynamic Loading Autocomplete.
1 parent ecb4811 commit 8d6fd4f

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

src/main/java/gwt/material/design/demo/client/application/addins/autocomplete/AutoCompleteView.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ interface Binder extends UiBinder<Widget, AutoCompleteView> {
4949
}
5050

5151
@UiField
52-
MaterialAutoComplete acList, acListType, acListLimit, acModal, acValue;
52+
MaterialAutoComplete acList, acListType, acListLimit, acModal, acValue, acDynamic;
5353

5454
@UiField
5555
MaterialModal modal;
@@ -77,15 +77,26 @@ public void onSelection(SelectionEvent<SuggestOracle.Suggestion> event) {
7777
MaterialToast.fireToast("Value : " + user.getDisplayString());
7878
}
7979
});
80+
acDynamic.addValueChangeHandler(event -> {
81+
for(SuggestOracle.Suggestion user : event.getValue()){
82+
MaterialToast.fireToast("Value : " + user.getDisplayString());
83+
}
84+
});
8085
acListType.setSuggestions(oracle);
8186
acListLimit.setSuggestions(oracle);
8287
acModal.setSuggestions(oracle);
8388

84-
acListType.addValueChangeHandler(valueChangeEvent -> {
85-
MaterialToast.fireToast("Value: " + valueChangeEvent.getValue().get(0).getDisplayString());
89+
acListType.addValueChangeHandler(event -> {
90+
MaterialToast.fireToast("Value : " + acListType.getItemBox().getText());
8691
});
8792
}
8893

94+
@UiHandler("loadSuggestions")
95+
void loadSuggestions(ClickEvent e) {
96+
UserOracle oracle = new UserOracle();
97+
oracle.addContacts(getAllUsers());
98+
acDynamic.setSuggestions(oracle);
99+
}
89100

90101
@UiHandler("btnClear")
91102
void onClear(ClickEvent e) {

src/main/java/gwt/material/design/demo/client/application/addins/autocomplete/AutoCompleteView.ui.xml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,26 @@
167167
acListType.setItemValues(itemValues, true);
168168
</demo:PrettyPre>
169169
</m:MaterialRow>
170+
171+
<m:MaterialRow addStyleNames="code">
172+
<m:MaterialTitle title="Dynamic Loading" description="You can load your data dynamically by calling autocomplete.setSuggestions(suggestions)"/>
173+
<m:MaterialRow>
174+
<m:MaterialColumn grid="s12 m12 l6">
175+
<ma:autocomplete.MaterialAutoComplete ui:field="acDynamic" placeholder="Contacts" grid="s12"/>
176+
</m:MaterialColumn>
177+
<m:MaterialColumn grid="s12">
178+
<m:MaterialButton text="Load Suggestions" ui:field="loadSuggestions"/>
179+
</m:MaterialColumn>
180+
</m:MaterialRow>
181+
<demo:PrettyPre addStyleNames="lang-java">
182+
&emsp;@UiHandler("loadSuggestions") <br/>
183+
void loadSuggestions(ClickEvent e) { <br/>
184+
&emsp;UserOracle oracle = new UserOracle(); <br/>
185+
&emsp;oracle.addContacts(getAllUsers()); <br/>
186+
&emsp;autocomplete.setSuggestions(oracle); <br/>
187+
}
188+
</demo:PrettyPre>
189+
</m:MaterialRow>
170190

171191
<m:MaterialRow addStyleNames="code">
172192
<m:MaterialTitle title="Limiting Items" description="You can limit the autocomplete items by adding limit='2' attribute."/>

0 commit comments

Comments
 (0)