Как заставить SuggestBox (GWT) предлагать использовать только первое слово предложения?

Мой заголовок может быть немного расплывчатым, но я хочу, чтобы мое окно подсказок предлагало такие слова, когда я набираю буквы в текстовое поле:

Письмо, набранное в поле предложения: A

А лпака

A pple

A rgon

НЕ так:

Письмо, набранное в поле предложения: A

А лпака а милый

A pple a nion

А rgon а тира

есть ли способ заставить окно предложений вести себя так? Я просто хочу, чтобы первое слово состояло из пары слов, соответствующих букве, не включая строку с несколькими словами.

Кстати, я использую GWT в Eclipse.

РЕДАКТИРОВАТЬ: я отстой при форматировании, слова

Альпака

яблоко

Аргон


Альпака острая

Яблочный анион

Одежда аргона

ИЗМЕНИТЬ СНОВА: Я хочу, чтобы они выглядели так:

Запись: Exec

Предположение:

Выполнять

Исполнение

Исполнитель

Запись: Исполнение t

Предположение:

Время исполнения

Таймер выполнения

Название казни

В основном я хочу, чтобы он работал как поиск в Google, где предложения с несколькими формулировками не появляются, пока я не наберу ни слова.


person NOOB_USER    schedule 30.10.2013    source источник
comment
Вы используете какие-либо фреймворки GWT, такие как SmartGWT или что-то в этом роде?   -  person biplav    schedule 30.10.2013
comment
Я думаю, вам нужно создать свою версию SuggestOracle.   -  person Fedy2    schedule 30.10.2013
comment
@biplav просто плагин gwt для eclipse indigo, который можно загрузить в разделе «Установить новое программное обеспечение».   -  person NOOB_USER    schedule 30.10.2013
comment
Вы это проверили? gwtproject.org/javadoc/ latest / com / google / gwt / user / client / ui / Вы можете переопределить showSuggestions, чтобы исключить / filter.   -  person biplav    schedule 30.10.2013
comment
так вы хотите игнорировать все слова, которые появляются после первого пробела? Если это так, вы можете подготовить свой список строк, прежде чем добавлять его в MultiWordOracle. Для каждой строки оставьте только первое слово.   -  person fascynacja    schedule 30.10.2013
comment
@biplav, я сейчас его просматриваю, спасибо.   -  person NOOB_USER    schedule 30.10.2013
comment
@fascynacja, на самом деле не игнорировать, но я не хочу, чтобы отображалось несколько слов, если я еще не набрал их, например: Ввод ›E, результат› Выполнить и т. д. Ввод ›Время выполнения, результат› Время выполнения Таймер выполнения   -  person NOOB_USER    schedule 30.10.2013


Ответы (1)


Расширение SuggestOracle - это правильный путь! Пожалуйста, проверьте приведенный ниже код ... Как только ваша реализация будет правильной, передайте новый экземпляр вашего оракула в ваш SuggestBox.

s.startsWith(userInput) отвечает на ваши нужды. Но вы, конечно, можете написать и другие условия.

   public class MySuggestOracle extends SuggestOracle {

        private List<String> data;

        public MySuggestOracle(List<String> data) {
            this.data = data;
        }

        @Override
        public void requestSuggestions(final Request request, final Callback callback) {
            String userInput = request.getQuery();
            List<Suggestion> suggestions = new LinkedList<Suggestion>();
            for (final String s : data) {
                if (s.startsWith(userInput)) {
                    suggestions.add(new Suggestion() {
                        @Override
                        public String getReplacementString() {
                            return s;
                        }

                        @Override
                        public String getDisplayString() {
                            return s;
                        }
                    });
                }
            }
            Response response = new Response(suggestions);
            callback.onSuggestionsReady(request, response);
        }
    }
person otonglet    schedule 30.10.2013
comment
Можете ли вы помочь мне, как я могу реализовать это в моем списке предложений? Я использую настраиваемый класс подсказки, который я расширил из подсказки. - person NOOB_USER; 31.10.2013
comment
Оказывается, мне нужно добавить MultiWordSuggestions в свою кодовую базу и закомментировать в нем метод requestSuggestions, спасибо. - person NOOB_USER; 02.11.2013
comment
Привет, рад, что вы нашли обходной путь в выходные! - person otonglet; 04.11.2013
comment
Я не смогу получить никакого результата от String userInput = request.getQuery (); В чем может быть проблема ?? - person Mahesh More; 21.11.2015