GWT: проверка, существует ли обработчик событий

#java #gwt

#java #gwt

Вопрос:

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

 HandlerRegistration firstHandler = null;
HandlerRegistration secondHandler = null;

public void onKeyUp(KeyUpEvent event) {
    if (countSpaceChar(textBox.getText()) == 0) {
        // code to check if MyFirstHandler is already attached?
        firstHandler = textBox.addKeyUpHandler(new MyFirstHandler(this)); 
    } if (countSpaceChar(textBox.getText()) == 1) {
        firstHandler.removeHandler();
        // code to check if MySecondHandler is already attached?
        secondHandler = textBox.addKeyUpHandler(new MySecondHandler(this));  
    } 

}
  

Ответ №1:

if (firstHandler != null) выполнит задание, и когда вы удалите обработчик, аннулируйте его регистрацию:

 firstHandler.removeHandler();
firstHandler = null;