2015-11-06 4 views
0

Мне нужно, чтобы событие было запущено после нажатия на ячейку сетки. Он работает, но срабатывает несколько событий. Мой код:GWT: Событие срабатывает несколько раз onClick

private void gridClickHandler(final boolean cardDeterminer) { 
    gridClickHandler = new ClickHandler() { 
     @Override 
     public void onClick(ClickEvent event) { 
      int cellIndex = view.getGrid().getCellForEvent(event) 
        .getCellIndex(); // get clicked cell of grid 
      if (cardDeterminer) 
       oasisCardRPC(cellIndex); //rpc based on clicked cell 
      else 
       desertCardRPC(cellIndex); //rpc based on clicked cell 

     } 

    }; 
    view.getGrid().addClickHandler(gridClickHandler); 
} 

Метод gridClickHandler называется в OnSuccess о наличии RPC и вызывает новый RPC, используя логическое значение передается. (он работает следующим образом: нажмите на какой-нибудь виджет, когда успех затем щелкнет по сетке. Сетка должна только запускать событие, когда этот виджет был нажат непосредственно перед) Я не знаю, как создать новый ClickHandler только один раз для сетки и по-прежнему делает свой clickHandler только огонь событий, когда это необходимо.

Заранее благодарен!

ответ

0

Использование булева: isClickHandlerAttached

Первоначально ложь, первый раз, когда вы добавляете clickhandler положил его на истинный. Прикрепляйте, если boolean false.

+0

спасибо, что помогло :) –

Смежные вопросы