Tôi cần tạo một SuggestBox để hiển thị tất cả các tùy chọn khi nhấn phím Enter. Tôi đã viết bản triển khai sau và có vẻ như là hoạt động tốt. Tôi muốn ai đó xem xét việc triển khai của tôi và cho tôi biết nếu nó sẽ gây ra sự cố trong bất kỳ trường hợp cụ thể nào. Ngoài ra, SuggestOracle được chuyển đến SuggestBox này sẽ có các đề xuất mặc định được đặt, bằng cách gọi phương thức setDefaultSuggestions() trên MultiWordSuggestOracle. Bất kỳ người dùng nào trong số SuggestBox của tôi phải minh bạch với thực tế này. Do đó tôi đoán tôi sẽ cần phải bọc (hoặc mở rộng) MultiWordSuggestOracle để thực hiện cài đặt đề xuất mặc định . Bạn có thể vui lòng giới thiệu những gì sẽ là một cách tốt đẹp của việc này?SuggestBox GWT hiển thị tất cả các tùy chọn trên phím Enter
public class SuggestBoxWithAllOptions extends SuggestBox implements
KeyPressHandler {
public SuggestBoxWithAllOptions(MultiWordSuggestOracle oracle) {
super(oracle);
this.addKeyPressHandler(this);
}
@Override
public void onKeyPress(KeyPressEvent event) {
char c = event.getCharCode();
int i = this.getText().length();
if (c == KeyboardListener.KEY_ENTER && i == 0) {
/* Since the query string is null, the default suggestions
will get listed */
this.showSuggestionList();
}
}
}
/* Code for initializing the SuggestBox */
List<String> suggestions = new ArrayList<String>();
suggestions.add("Tablet");
suggestions.add("Capsule");
MultiWordSuggestOracle myOracle = new MultiWordSuggestOracle();
myOracle.addAll(suggestions);
myOracle.setDefaultSuggestionsFromText(suggestions);
SuggestBox mySuggest = new SuggestBoxWithAllOptions(myOracle);