Места / Мероприятия GWT - что следует использовать для навигации?

У меня есть веб-приложение GWT Places/Activity. я использую Anchor"s click событие, чтобы переместить пользователя в новое "место", так что пользователь не может открыть любую "ссылку" в новом окне или вкладке. Вопрос в том, как сделать все эти ссылки реальными?

2 ответа

Решение

Может быть, вместо того, чтобы использовать Anchor и слушать ClickEvent использование Hyperlink с targetHistoryToken установить название места.

например

<g:Hyperlink text="Home" targetHistoryToken="home" />

При использовании Hyperlink (или же InlineHyperlink) работает, я бы лучше использовал ClickHandler на Anchorпотому что если какое-либо действие возвращает ненулевое значение в mayStop URL-адрес еще не изменился (тогда как с Hyperlink, было бы, даже если пользователь решит отменить навигацию).

Чтобы установить цель (href) на Anchorпросто используй PlaceHistoryMapper, И чтобы правильно обрабатывать Ctrl+ щелчок, средний щелчок и щелчок правой кнопкой мыши, повторно используйте HyperlinkImpl:

Anchor anchor = new Anchor("text", "#" + placeHistoryMapper.getToken(targetPlace));
anchor.addClickHandler(new ClickHandler() {
   private static final HyperlinkImpl IMPL = GWT.create(HyperlinkImpl.class);

   @Override
   public void onClick(ClickEvent event) {
      if (IMPL.handleAsClick(event)) {
         placeController.goTo(targetPlace);
         event.preventDefault();
      }
   }
});
Другие вопросы по тегам