Как предотвратить выполнение кода после запуска токена истории в gwt? - PullRequest
0 голосов
/ 09 сентября 2011

Я работаю над приложением 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 ]

1 голос
/ 09 сентября 2011

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

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

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

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

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

...