автозаполнение в ваадине? - PullRequest
4 голосов
/ 30 ноября 2010

Я новичок в Ваадине. Как мне выполнить автозаполнение (на самом деле, больше похоже на предложение Google) для огромного набора данных, которые нельзя загрузить в память, но вместо этого выполнить запрос JPA для каждого ключевого события. Можно ли фиксировать ключевые события в текстовом поле или в выпадающем списке?

Ответы [ 5 ]

3 голосов
/ 30 ноября 2010

Вы можете ознакомиться с SuperImmediateTextField Хенрика Пола, который является дополнением Vaadin, которое позволяет вам устанавливать задержку между клиентом и сервером в секундах.С этого момента это обычный стек Java, чтобы сделать поток как можно более плавным.Кеширование, JPA-запросы или что-то еще.Задержка в пару секунд, по крайней мере, немного уменьшит нагрузку на сервер.

0 голосов
/ 06 января 2016

возможно оформить заказ на этот аддон: https://vaadin.com/directory#!addon/suggestbox-add-on

поставляется с:

задержка для связи с сервером, например подождите, пока пользователь не наберет n миллисекунд

заполнитель текста типа "введите запрос здесь"

минимальная длина для ввода для запроса к серверу

0 голосов
/ 17 января 2015

Если вы не хотите писать пользовательский виджет на стороне клиента или включать другое дополнение, вы можете немного настроить ComboBox Vaadin, чтобы он загружал предложения из базы данных. Для этого вам нужно сделать три вещи:

  1. Подкласс com.vaadin.ui.ComboBox и перезаписать его защищенный метод ComboBox # buildFilter () с вашей собственной реализацией.
  2. Реализация интерфейса com.vaadin.data.Container.Filter с очень ограниченная функциональность: ваш фильтр должен только транспортировать текущий пользовательский ввод.
  3. Напишите реализацию com.vaadin.data.Container, которая выполняет фактическая логика фильтра.

Я описал, как это сделать более подробно в блоге .

0 голосов
/ 12 сентября 2011

Мгновенное TextField должно быть то, что вы ищете. Взгляните на демонстрацию Sampler: http://demo.vaadin.com/sampler/#TextFieldTextChangeEvent

0 голосов
/ 30 ноября 2010

Вы можете найти эту ссылку полезной.Я думаю, это исправлено в 6.5.Существует также addon , если вы хотите проверить.

, вам нужно учитывать это, хотя

значение поля -> json -> vaadin servlet -> service (spring /ejb / pojo или что-то еще) -> JPA -> запрос -> список результатов (который может быть огромным изначально)

и это все время назад в браузер для каждого нажатия клавиши ...

думать о скорости набора текста конечного пользователя.К тому моменту, как ответ от первого нажатия клавиши вернется с сервера, пользователь мог завершить целое слово.

...