与gwt的超链接

时间:2011-08-23 03:38:48

标签: gwt hyperlink

我是GWT的新手,我想使用超链接,我想将用户重定向到另一个表单。

我的问题是,创建超链接很简单,但我该如何使用它们?似乎已经弃用了addClickListener,还有其他方法可以解决这个问题吗?

更新1 我已经实现了Hyper链接代码,如下所示:

  Hyperlink link0 = new Hyperlink("Show Boxes","showbox");
  History.addValueChangeHandler(this);
  History.fireCurrentHistoryState();
  public void onValueChange(ValueChangeEvent<String> event) {
  String eventValue=event.getValue();
  if(eventValue.equals("showbox")){
     showBox();
  } 
}

通过这个,我看到对应于一个超链接的表单是可见的,但是当我单击另一个超链接时,此表单未关闭而另一个表单未被打开。 我正在使用DockPanel在东方向显示表单。所有超链接的表单只是一个在另一个下面显示。

对此有何评论/建议?

谢谢, Bhavya

3 个答案:

答案 0 :(得分:0)

使用Anchor.addClickHandler()方法!

Anchor a = new Anchor("text");
a.addClickHandler(new ClickHandler(){
   // etc
});

答案 1 :(得分:0)

如果另一个表单在您的GWT应用程序中,那么您应该考虑使用Hyperlink。在构造函数中,您提供了一个历史记录标记,当单击链接时,该标记将被推送到History对象。您只需处理历史记录已更改的事件。它将导航事件与逻辑分离。这也将使您的应用程序意识到后退,并允许用户将书签保存到特定状态(在您的情况下为表单)。 Anchor更适用于外部链接。

请参阅Coding Basics - History 中描述的内容。

答案 2 :(得分:0)

首先,您需要创建一个带有历史记录的HyperLink

Hyperlink link = new Hyperlink("link to foo", "foo");

在上面的示例中,“foo”是历史记录。

然后你应该在History对象上注册你的价值变动处理程序,比如

History.addValueChangeHandler(myValueChangeHandler);

在您的价值变更处理程序中,您需要使用event.getValue()读取当前令牌。

class MyValueChangeHandler implements ValueChangeHandler<String>() {
      public void onValueChange(ValueChangeEvent<String> event) {
        //get the new value of history token
        //clicking on above example link will return "foo" here
        String historyToken = event.getValue();
      }
}

历史令牌的价值取决于您的申请决定。例如,您可以在历史令牌和应呈现的视图之间维护一个简单的Map。在更复杂的应用程序中,您可以将更多细节编码到令牌中 - 就像应该显示的表单的初始状态一样。