Как предотвратить выполнение кода после запуска токена истории в gwt?

Я работаю над приложением gwt2.3 с каркасом gwtp. В этом приложении у меня есть одна страница входа (индекс), которая привязывается клиентским модулем.

bindConstant().annotatedWith(DefaultPlace.class).to(NameTokens.login);

Теперь после успешного входа в систему запускается новое имя пользователя.

     History.newItem(NameTokens.userconsole,true);

Теперь у меня есть обработчик истории, как показано ниже:

открытый класс NameTokenHandler реализует ValueChangeHandler {

@Override
public void onValueChange(final ValueChangeEvent<String> event) {
    System.out.println("Nothing to do");
}

}

И я добавил в историю, как показано ниже в классе точки входа:

History.addValueChangeHandler(new NameTokenHandler());

Теперь, когда я переопределил метод onValueChange, я оставил его пустым.

Поэтому, когда приложение загружается первым или запускается любой другой токен имени, оно должно сначала вызвать onValueChange, и, поскольку в этом методе нет кода, ничего не нужно загружать.

Но в приложении все работает нормально. Все токены имен запускаются успешно даже после того, как в onValueChange нет кода. Я не понимаю, как предотвратить жетон истории?

Пожалуйста, помогите мне.

Заранее спасибо.

2 ответа

Решение

После небольшого поиска я узнал о месте менеджера. Я добавляю_ обработчик изменений в историю. Все обработчики изменений, которые были добавлены, все еще там. В частности, в конструкторе GWTP PlaceManagerImpl.

Если вы действительно хотите предотвратить обработку некоторых событий истории с помощью GWTP, я бы предложил, чтобы в вашем пользовательском PlaceManager вы переопределяли onValueChange(...), перехватывали токены, которые хотите заблокировать, и вызывали родительский onValueChange для токенов. вы хотите, чтобы GWTP работал нормально.

Поэтому, когда приложение загружается первым или запускается любой другой токен имени, оно должно сначала вызвать onValueChange, и, поскольку в этом методе нет кода, ничего не нужно загружать.

Если вы используете gwtp History, ValueChangeHandler не будет препятствовать или включать навигацию к определенной части вашего приложения. Это все обрабатывается с помощью PlaceManager.

Другие вопросы по тегам