GWT场所/活动 - 应该用于导航?

时间:2011-10-20 09:23:50

标签: java gwt anchor gwt-activities gwt-places

我有一个GWT Places / Activities网络应用程序。我使用Anchor的{​​{1}}事件将用户移动到新的“位置”,因此用户无法在新窗口或标签中打开任何“链接”。问题是 - 如何使所有这些链接成为现实?

2 个答案:

答案 0 :(得分:7)

使用Hyperlink(或InlineHyperlink)时,我宁愿在ClickHandler上使用Anchor,因为如果任何活动返回非空值在mayStop中,网址尚未更改(而使用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();
      }
   }
});

答案 1 :(得分:3)

也许不是使用Anchor而是使用ClickEvent使用Hyperlink并将targetHistoryToken设置为地名。

e.g。

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