在Vaadin 7中,将数据/参数传递给BrowserWindowOpener的新UI实例?

时间:2013-04-11 00:12:05

标签: java window vaadin vaadin7

我正在使用BrowserWindowOpener成功打开新的浏览器窗口。

问题:如何将一些信息传递给新实例化的UI子类?

语法要求我指定要实例化的类。如何与未来的实例进行通信?

BrowserWindowOpener bookOpener = new BrowserWindowOpener( BookUI.class );

例如,假设我的应用程序打开一个窗口,列出以字母(A-Z)的特定字母开头的单词的单词定义。如何告诉新开启的UI它应该显示“A”字,“B”字或“V”字?

我注意到了BrowserWindowOpenerState类,但没有记录它的使用。

1 个答案:

答案 0 :(得分:4)

我没有试过这个,但快速浏览一下javadoc表明,使用BrowserWindowOpener#setParameterBrowserWindowOpener#setUriFragment可以将参数传递给用户界面。

E.g。

BrowserWindowOpener bookOpener = new BrowserWindowOpener( BookUI.class );
bookOpener.setParameter("startLetter", "A");

...

class BookUI {
  protected abstract void init(VaadinRequest request){
    String startLetter = request.getParameter("startLetter");
    // Etc
  }
}