Skip to content

Commit d48c105

Browse files
committed
MaterialComboBox ability to change the "No Result Found" text.
1 parent 97c81d7 commit d48c105

File tree

4 files changed

+165
-0
lines changed

4 files changed

+165
-0
lines changed

src/main/java/gwt/material/design/addins/client/combobox/MaterialComboBox.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import gwt.material.design.addins.client.combobox.events.UnselectItemEvent;
3535
import gwt.material.design.addins.client.combobox.js.JsComboBox;
3636
import gwt.material.design.addins.client.combobox.js.JsComboBoxOptions;
37+
import gwt.material.design.addins.client.combobox.js.LanguageOptions;
3738
import gwt.material.design.client.MaterialDesignBase;
3839
import gwt.material.design.client.base.*;
3940
import gwt.material.design.client.base.mixin.EnabledMixin;
@@ -676,6 +677,17 @@ public void setTags(boolean tags) {
676677
options.tags = tags;
677678
}
678679

680+
/**
681+
* Will provide a set of text objecs that can be used for i18n language support.
682+
*/
683+
public void setLanguage(LanguageOptions language) {
684+
options.language = language;
685+
}
686+
687+
public LanguageOptions getLanguage() {
688+
return options.language;
689+
}
690+
679691
public void scrollTop(int offset) {
680692
Scheduler.get().scheduleDeferred(() -> getDropdownResultElement().scrollTop(offset));
681693
}

src/main/java/gwt/material/design/addins/client/combobox/js/JsComboBoxOptions.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,7 @@ public static final JsComboBoxOptions create() {
6565

6666
@JsProperty
6767
public boolean tags;
68+
69+
@JsProperty
70+
public LanguageOptions language;
6871
}
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
/*
2+
* #%L
3+
* GwtMaterial
4+
* %%
5+
* Copyright (C) 2015 - 2017 GwtMaterialDesign
6+
* %%
7+
* Licensed under the Apache License, Version 2.0 (the "License");
8+
* you may not use this file except in compliance with the License.
9+
* You may obtain a copy of the License at
10+
*
11+
* http://www.apache.org/licenses/LICENSE-2.0
12+
*
13+
* Unless required by applicable law or agreed to in writing, software
14+
* distributed under the License is distributed on an "AS IS" BASIS,
15+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16+
* See the License for the specific language governing permissions and
17+
* limitations under the License.
18+
* #L%
19+
*/
20+
package gwt.material.design.addins.client.combobox.js;
21+
22+
import gwt.material.design.jquery.client.api.Functions;
23+
import jsinterop.annotations.JsOverlay;
24+
import jsinterop.annotations.JsPackage;
25+
import jsinterop.annotations.JsProperty;
26+
import jsinterop.annotations.JsType;
27+
28+
/**
29+
* Options for combobox component
30+
*
31+
* @author kevzlou7979
32+
*/
33+
@JsType(isNative = true, name = "Object", namespace = JsPackage.GLOBAL)
34+
public class LanguageOptions {
35+
36+
@JsProperty
37+
private Functions.FuncRet1<String> errorLoading;
38+
39+
@JsProperty
40+
private Functions.FuncRet1<String> inputTooLong;
41+
42+
@JsProperty
43+
private Functions.FuncRet1<String> inputTooShort;
44+
45+
@JsProperty
46+
private Functions.FuncRet1<String> loadingMore;
47+
48+
@JsProperty
49+
private Functions.FuncRet1<String> maximumSelected;
50+
51+
@JsProperty
52+
private Functions.FuncRet1<String> noResults;
53+
54+
@JsProperty
55+
private Functions.FuncRet1<String> searching;
56+
57+
@JsOverlay
58+
public final Functions.FuncRet1<String> getErrorLoading() {
59+
return errorLoading;
60+
}
61+
62+
@JsOverlay
63+
public final void setErrorLoading(Functions.FuncRet1<String> errorLoading) {
64+
this.errorLoading = errorLoading;
65+
}
66+
67+
@JsOverlay
68+
public final Functions.FuncRet1<String> getInputTooLong() {
69+
return inputTooLong;
70+
}
71+
72+
@JsOverlay
73+
public final void setInputTooLong(Functions.FuncRet1<String> inputTooLong) {
74+
this.inputTooLong = inputTooLong;
75+
}
76+
77+
@JsOverlay
78+
public final Functions.FuncRet1<String> getInputTooShort() {
79+
return inputTooShort;
80+
}
81+
82+
@JsOverlay
83+
public final void setInputTooShort(Functions.FuncRet1<String> inputTooShort) {
84+
this.inputTooShort = inputTooShort;
85+
}
86+
87+
@JsOverlay
88+
public final Functions.FuncRet1<String> getLoadingMore() {
89+
return loadingMore;
90+
}
91+
92+
@JsOverlay
93+
public final void setLoadingMore(Functions.FuncRet1<String> loadingMore) {
94+
this.loadingMore = loadingMore;
95+
}
96+
97+
@JsOverlay
98+
public final Functions.FuncRet1<String> getMaximumSelected() {
99+
return maximumSelected;
100+
}
101+
102+
@JsOverlay
103+
public final void setMaximumSelected(Functions.FuncRet1<String> maximumSelected) {
104+
this.maximumSelected = maximumSelected;
105+
}
106+
107+
@JsOverlay
108+
public final Functions.FuncRet1<String> getNoResults() {
109+
return noResults;
110+
}
111+
112+
@JsOverlay
113+
public final void setNoResults(Functions.FuncRet1<String> noResults) {
114+
this.noResults = noResults;
115+
}
116+
117+
@JsOverlay
118+
public final Functions.FuncRet1<String> getSearching() {
119+
return searching;
120+
}
121+
122+
@JsOverlay
123+
public final void setSearching(Functions.FuncRet1<String> searching) {
124+
this.searching = searching;
125+
}
126+
}

src/test/java/gwt/material/design/addins/client/ui/MaterialComboBoxTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import gwt.material.design.addins.client.combobox.events.SelectItemEvent;
3030
import gwt.material.design.addins.client.combobox.events.UnselectItemEvent;
3131
import gwt.material.design.addins.client.combobox.js.JsComboBox;
32+
import gwt.material.design.addins.client.combobox.js.LanguageOptions;
3233
import gwt.material.design.addins.client.ui.base.AbstractValueWidgetTest;
3334
import gwt.material.design.addins.client.ui.base.dto.User;
3435
import gwt.material.design.client.base.MaterialWidget;
@@ -256,4 +257,27 @@ public void testElements() {
256257

257258
assertTrue(firedOpenHandler[0]);
258259
}
260+
261+
public void testLanguage() {
262+
final String NO_RESULTS = "Walang Resulta...";
263+
final String ERROR_LOADING = "May problema...";
264+
final String INPUT_TOO_LONG = "Ang inyong inilagay ay sobrang haba...";
265+
final String INPUT_TOO_SHORT = "Ang inyong inilagay ay sobrang liit...";
266+
final String LOADING_MORE = "Nagloload pa...";
267+
final String MAXIMUM_SELECTED = "Maximum na ang inyong iniligay...";
268+
final String SEARCHING = "Kasalukyang hinahanap...";
269+
MaterialComboBox<User> comboBox = getWidget();
270+
271+
LanguageOptions languageOptions = new LanguageOptions();
272+
languageOptions.setNoResults(param1 -> NO_RESULTS);
273+
languageOptions.setErrorLoading(param1 -> ERROR_LOADING);
274+
languageOptions.setInputTooLong(param1 -> INPUT_TOO_LONG);
275+
languageOptions.setInputTooShort(param1 -> INPUT_TOO_SHORT);
276+
languageOptions.setLoadingMore(param1 -> LOADING_MORE);
277+
languageOptions.setMaximumSelected(param1 -> MAXIMUM_SELECTED);
278+
languageOptions.setSearching(param1 -> SEARCHING);
279+
280+
comboBox.setLanguage(languageOptions);
281+
assertEquals(languageOptions, comboBox.getLanguage());
282+
}
259283
}

0 commit comments

Comments
 (0)