Приемник строк таблицы Vaadin запускается несколько раз при клике - PullRequest
0 голосов
/ 05 марта 2019

Здравствуйте, я работаю в пользовательском прослушивателе событий щелчка в строке таблицы в vaadin 7. Проблема в том, что триггер перепрыгивает один раз для каждой строки таблицы. Это нормальное поведение?

Мой код:

добавление слушателя в таблицу

table.addItemClickListener(new MyCustomListener());

код слушателя:

public class MyCustomListener implements ItemClickListener  {

@Override
public void itemClick(ItemClickEvent event) {
    // TODO Auto-generated method stub
    String id = event.getItem().toString();

  System.out.println(id);//If the table has X rows this is printed X 
                         //times even if i click a single time in a row

  }
}

1 Ответ

3 голосов
/ 05 марта 2019

Я создал минимальный пример с Vaadin в версии 7.7.16, где я создал таблицу, заполнил ее тремя сущностями и добавил свой MyCustomListener.Всякий раз, когда я щелкаю по строке, происходит только одно событие только для выбранной строки.Так что нет, это не нормальное поведение.Вы уверены, что вызываете addItemClickListener только один раз для своей таблицы?Вы должны проверить, что этот метод вызывается только один раз.Возможно, вы хотите установить точку останова на

table.addItemClickListener(new MyCustomListener());

, потому что, если addItemClickListener вызывается несколько раз, будет выполняться несколько ActionListener (все, как говорится в имени метода добавляет aслушатель).И кажется, что вы добавляете столько новых Слушателей, сколько подсчетов у вас есть в вашей таблице.

...