在GWT中的新窗口中显示窗口小部件

时间:2012-07-04 08:22:12

标签: gwt uibinder

我有一个要求,我需要在新窗口中显示拖放单元格表。 我已经检查了答案,我已经搜索了这个,但我没有得到适当的答案。 我可以点击一个按钮打开一个新窗口。以下是我正在使用的代码:

@UiHandler(value = { "buttonReleaseView" })
    void onReleaseViewClick(ClickEvent clickEvent) {
        String winUrl = GWT.getModuleBaseURL() + "releaseView/";
        String winName = "Release View";

        openNewWindow (winName, winUrl);  /* spawn a new window - not popup */
    }

    /**
    * Opens a new windows with a specified URL..
    * 
    * @param name String with the name of the window.
    * @param url String with your URL.
    */
    public static void openNewWindow(String name, String url) {
        com.google.gwt.user.client.Window.open(url, name.replace(" ", "_"),
               "menubar=no," + 
               "location=false," + 
               "resizable=yes," + 
               "scrollbars=yes," + 
               "status=no," + 
               "dependent=true");
    }

现在,我应该如何在这个新窗口中显示单元格表?

请帮帮我。

提前致谢

Richa

1 个答案:

答案 0 :(得分:1)

GWT模块位于浏览器页面内,因此如果要打开新的浏览器页面并在其中显示GWT组件,则基本上需要在其自己的主机页面中加载新的GWT模块。在这种情况下,我可能会使用一个弹出窗口,因为它会更简单。

但是如果你真的需要这样做,你可以创建一个单独的主机页面和GWT模块来显示表,或者你可以重用相同的主机页面和GWT模块并传递一些URL参数或历史记录来指示哪个查看显示。请记住,即使在最后一种情况下,您仍然会在浏览器中运行两个GWT模块实例。

通过在Window.open()返回的句柄上调用document.write,还有或多或少的hackish方法直接写入新的浏览器窗口,但我只会这样做,因为简单的事情不会需要太多的用户交互(例如,我已将此方法用于打印预览功能)。