Очистить SuggestBox на размытие в GWT
У меня есть предложение в GWT. Есть ли способ очистить его, когда он размывается (если пользователь не сделал выбор, и в этом случае должно произойти действие)?
2 ответа
Попробуйте это с помощью ValueChangeHandler
:
Примечание: ValueChange
событие имеет то же поведение, что и Blue
событие, но оно запускается, только если значение изменяется в SuggestBox
,
class MyMultiWordSuggestOracle extends MultiWordSuggestOracle {
private Set<String> values = new HashSet<String>();
@Override
public void add(String value) {
super.add(value);
values.add(value);
}
@Override
public void clear(){
super.clear();
values.clear();
}
public boolean contains(String value) {
return values.contains(value);
}
}
Вы код:
final MyMultiWordSuggestOracle oracle = new MyMultiWordSuggestOracle();
oracle.add("A");
oracle.add("AB");
oracle.add("BCD");
oracle.add("BCDE");
final SuggestBox suggestionBox = new SuggestBox(oracle);
suggestionBox.addValueChangeHandler(new ValueChangeHandler<String>() {
@Override
public void onValueChange(ValueChangeEvent<String> event) {
if (!oracle.contains(event.getValue())) {
suggestionBox.setValue("");
}
}
});
Добавьте BlurHandler:
suggestionBox.getValueBox().addBlurHandler(new BlurHandler() {
@Override
public void onBlur(BlurEvent event) {
// your code goes here
}
});