Места / Мероприятия 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();
}
}
});