Skip to content

Commit 67af237

Browse files
committed
Fixed #300 and #299
1 parent d3ae6d1 commit 67af237

File tree

5 files changed

+76
-25
lines changed

5 files changed

+76
-25
lines changed

src/main/java/gwt/material/design/addins/client/autocomplete/MaterialAutoComplete.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,7 @@ protected boolean addItem(final Suggestion suggestion) {
355355

356356
if (getType() == AutocompleteType.TEXT) {
357357
suggestionMap.clear();
358-
itemBox.setText(suggestion.getDisplayString());
358+
itemBox.setText(suggestion.getReplacementString());
359359
} else {
360360
final MaterialChip chip = chipProvider.getChip(suggestion);
361361
if (chip == null) {

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

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@
3535
import gwt.material.design.addins.client.combobox.js.JsComboBoxOptions;
3636
import gwt.material.design.client.MaterialDesignBase;
3737
import gwt.material.design.client.base.*;
38+
import gwt.material.design.client.base.mixin.EnabledMixin;
3839
import gwt.material.design.client.base.mixin.ErrorMixin;
3940
import gwt.material.design.client.base.mixin.ReadOnlyMixin;
41+
import gwt.material.design.client.base.mixin.WavesMixin;
4042
import gwt.material.design.client.constants.CssName;
4143
import gwt.material.design.client.ui.MaterialLabel;
4244
import gwt.material.design.client.ui.html.Label;
@@ -102,6 +104,8 @@ public class MaterialComboBox<T> extends AbstractValueWidget<List<T>> implements
102104

103105
private ErrorMixin<AbstractValueWidget, MaterialLabel> errorMixin;
104106
private ReadOnlyMixin<MaterialComboBox, MaterialWidget> readOnlyMixin;
107+
private EnabledMixin<MaterialWidget> enabledMixin;
108+
private WavesMixin<MaterialWidget> wavesMixin;
105109

106110
public MaterialComboBox() {
107111
super(Document.get().createDivElement(), CssName.INPUT_FIELD, AddinsCssName.COMBOBOX);
@@ -315,16 +319,6 @@ public void setPlaceholder(String placeholder) {
315319
options.placeholder = placeholder;
316320
}
317321

318-
@Override
319-
public void setEnabled(boolean enabled) {
320-
listbox.setEnabled(enabled);
321-
}
322-
323-
@Override
324-
public boolean isEnabled() {
325-
return listbox.isEnabled();
326-
}
327-
328322
/**
329323
* Check if allow clear option is enabled
330324
*/
@@ -656,6 +650,13 @@ public void setTags(boolean tags) {
656650
options.tags = tags;
657651
}
658652

653+
@Override
654+
public void setEnabled(boolean enabled) {
655+
super.setEnabled(enabled);
656+
657+
getEnabledMixin().updateWaves(enabled, this);
658+
}
659+
659660
public HandlerRegistration addSelectionHandler(SelectItemEvent.SelectComboHandler<T> selectionHandler) {
660661
return addHandler(selectionHandler, SelectItemEvent.getType());
661662
}
@@ -675,6 +676,14 @@ public HandlerRegistration addRemoveItemHandler(UnselectItemEvent.UnselectComboH
675676
return addHandler(handler, UnselectItemEvent.getType());
676677
}
677678

679+
@Override
680+
protected EnabledMixin<MaterialWidget> getEnabledMixin() {
681+
if (enabledMixin == null) {
682+
enabledMixin = new EnabledMixin<>(listbox);
683+
}
684+
return enabledMixin;
685+
}
686+
678687
@Override
679688
public ErrorMixin<AbstractValueWidget, MaterialLabel> getErrorMixin() {
680689
if (errorMixin == null) {

src/main/java/gwt/material/design/addins/client/fileuploader/MaterialFileUploader.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import gwt.material.design.client.MaterialDesignBase;
3939
import gwt.material.design.client.base.JsLoader;
4040
import gwt.material.design.client.base.MaterialWidget;
41+
import gwt.material.design.client.base.mixin.WavesMixin;
4142
import gwt.material.design.client.constants.CssName;
4243
import gwt.material.design.client.constants.Display;
4344
import gwt.material.design.client.events.*;
@@ -324,6 +325,8 @@ public void setEnabled(boolean enabled) {
324325
if (uploader != null) uploader.removeEventListeners();
325326
addStyleName(CssName.DISABLED);
326327
}
328+
329+
getEnabledMixin().updateWaves(enabled, this);
327330
}
328331

329332
@Override

src/main/java/gwt/material/design/addins/client/timepicker/MaterialTimePicker.java

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@
3434
import gwt.material.design.addins.client.timepicker.js.JsTimePickerOptions;
3535
import gwt.material.design.client.MaterialDesignBase;
3636
import gwt.material.design.client.base.*;
37-
import gwt.material.design.client.base.mixin.ErrorMixin;
38-
import gwt.material.design.client.base.mixin.ReadOnlyMixin;
39-
import gwt.material.design.client.base.mixin.ToggleStyleMixin;
37+
import gwt.material.design.client.base.mixin.*;
4038
import gwt.material.design.client.constants.*;
4139
import gwt.material.design.client.ui.*;
4240
import gwt.material.design.client.ui.html.Label;
@@ -94,6 +92,7 @@ public class MaterialTimePicker extends AbstractValueWidget<Date> implements JsL
9492
private ToggleStyleMixin<MaterialInput> validMixin;
9593
private ErrorMixin<AbstractValueWidget, MaterialLabel> errorMixin;
9694
private ReadOnlyMixin<MaterialTimePicker, MaterialInput> readOnlyMixin;
95+
private EnabledMixin<MaterialWidget> enabledMixin;
9796

9897

9998
public MaterialTimePicker() {
@@ -280,11 +279,6 @@ protected String getTime() {
280279
return $(timeInput.getElement()).val().toString();
281280
}
282281

283-
@Override
284-
public void setEnabled(boolean enabled) {
285-
this.timeInput.setEnabled(enabled);
286-
}
287-
288282
@Override
289283
public Date getValue() {
290284
return time;
@@ -358,6 +352,21 @@ public boolean isIconPrefix() {
358352
return icon.isIconPrefix();
359353
}
360354

355+
@Override
356+
public void setEnabled(boolean enabled) {
357+
super.setEnabled(enabled);
358+
359+
getEnabledMixin().updateWaves(enabled, this);
360+
}
361+
362+
@Override
363+
protected EnabledMixin<MaterialWidget> getEnabledMixin() {
364+
if (enabledMixin == null) {
365+
enabledMixin = new EnabledMixin<>(timeInput);
366+
}
367+
return enabledMixin;
368+
}
369+
361370
@Override
362371
public ErrorMixin<AbstractValueWidget, MaterialLabel> getErrorMixin() {
363372
if (errorMixin == null) {

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

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@
1919
*/
2020
package gwt.material.design.addins.client.ui;
2121

22-
import com.google.gwt.user.client.ui.Composite;
2322
import com.google.gwt.user.client.ui.SuggestBox;
2423
import gwt.material.design.addins.client.autocomplete.MaterialAutoComplete;
24+
import gwt.material.design.addins.client.autocomplete.constants.AutocompleteType;
25+
import gwt.material.design.addins.client.base.constants.AddinsCssName;
2526
import gwt.material.design.addins.client.ui.base.AbstractValueWidgetTest;
2627
import gwt.material.design.addins.client.ui.base.dto.User;
2728
import gwt.material.design.addins.client.ui.base.dto.UserOracle;
@@ -45,21 +46,23 @@ protected MaterialAutoComplete createWidget() {
4546

4647
public static MaterialAutoComplete constructAndAttach() {
4748
MaterialAutoComplete autocomplete = new MaterialAutoComplete();
49+
setupUserAsValues(autocomplete);
50+
return autocomplete;
51+
}
4852

53+
protected static void setupUserAsValues(MaterialAutoComplete autoComplete) {
4954
// given
5055
UserOracle oracle = new UserOracle();
5156
oracle.addContacts(getAllUsers());
52-
autocomplete.setSuggestions(oracle);
57+
autoComplete.setSuggestions(oracle);
5358
List<String> itemValues = new ArrayList<>();
5459
for (int i = 1; i <= 3; i++) {
5560
itemValues.add("Item " + i);
5661
}
5762

5863
// when / then
59-
autocomplete.setItemValues(itemValues);
60-
assertEquals(autocomplete.getItemValues().size(), 3);
61-
62-
return autocomplete;
64+
autoComplete.setItemValues(itemValues);
65+
assertEquals(autoComplete.getItemValues().size(), 3);
6366
}
6467

6568
public void testLimit() {
@@ -121,6 +124,33 @@ protected void checkValue(MaterialAutoComplete autocomplete, List<String> itemVa
121124
assertEquals(2, autocomplete.getLimit());
122125
}
123126

127+
public void testTypeText() {
128+
MaterialAutoComplete autoComplete = new MaterialAutoComplete();
129+
setupUserAsValues(autoComplete);
130+
131+
checkTypeText(autoComplete);
132+
}
133+
134+
protected void checkTypeText(MaterialAutoComplete autoComplete) {
135+
final String SELECTED = autoComplete.getItemValues().get(0);
136+
autoComplete.setType(AutocompleteType.TEXT);
137+
assertEquals(AutocompleteType.TEXT, autoComplete.getType());
138+
assertTrue(autoComplete.getElement().hasClassName("autocomplete-text"));
139+
140+
final boolean[] firedValueChangeEvent = {false};
141+
autoComplete.addValueChangeHandler(valueChangeEvent -> {
142+
firedValueChangeEvent[0] = true;
143+
144+
assertEquals(SELECTED, autoComplete.getItemBox().getText());
145+
});
146+
147+
List<String> selectedValue = new ArrayList<>();
148+
selectedValue.add(autoComplete.getItemValues().get(0));
149+
autoComplete.setItemValues(selectedValue, true);
150+
151+
assertTrue(firedValueChangeEvent[0]);
152+
}
153+
124154
public void testPlaceholder() {
125155
// UiBinder
126156
// given

0 commit comments

Comments
 (0)