【问题标题】:Opening a new Window with a Widget in GWT在 GWT 中打开一个带有 Widget 的新窗口
【发布时间】:2011-05-09 05:30:15
【问题描述】:

在你开始击落我之前,我已经检查了答案,我已经用谷歌搜索直到我的手指流血,但我无法找到一个简单、简洁的答案。所以我再次询问所有可能有这个问题的人。

问题:如何打开一个侧边有formpanel的新窗口。

上下文:我有一个列出很多项目的应用程序,我希望有人编辑一个条目,我希望打开一个新窗口,以便他们可以编辑属性然后点击保存。在许多应用程序中都可以找到标准的东西。

架构: 我有一个名为 UI 的客户端模块,它有十几个类,当从菜单中选择时,它们会绘制小部件并填充主要区域。我有一个名为 UI.html 的 html 页面,它的头部有标签。就是这样。

我见过的选项

  1. 调用 Window.Open() 但您需要定义一个 html 文件。我没有。我可以创建一个空的,但如何将小部件注入其中?

  2. 使用 jsni $wnd 创建一个新窗口并获取对它的引用。但是我如何向其中注入表单面板?

  3. 使用弹出式面板。它们看起来很糟糕 - 另外,如果通过 JS 打开一个窗口非常简单,我希望它会在 gwt 中。

也许我想念如何使用我不知道的 GWT。

任何帮助将不胜感激

谢谢

【问题讨论】:

标签: gwt new-window


【解决方案1】:

我得到这个工作的方式如下: 我写了一个jsni方法来打开一个新窗口

public static native BodyElement getBodyElement() /*-{
        var win = window.open("", "win", "width=940,height=400,status=1,resizeable=1,scrollbars=1"); // a window object
        win.document.open("text/html", "replace");

我在新窗口中添加了一个基本主体并返回了主体元素

win.document.write("<HTML><HEAD>"+css1+css2+"</HEAD><BODY><div class=\"mainpanel\"><div style=\"width: 100%; height: 54px;\"><div id=\"mainbody\"class=\"mainbody\" style=\"width: 100%;\"></div></div></div></BODY></HTML>");
        win.document.close(); 
        win.focus();
        return win.document.body;
    }-*/;

然后我从我的主要 java 方法中调用了这个方法

BodyElement bdElement = getBodyElement();

然后我将包含许多小部件的面板注入到返回的正文元素中

SystemConfiguration config = new SystemConfiguration();             bdElement.getOwnerDocument().getElementById("mainbody").appendChild(config.getElement());

【讨论】:

    【解决方案2】:

    我同意 Bogdan:使用对话框。

    如果你不能,你Window.open()你在选项1中提到:

    1. 创建另一个 GWT 模块,以及将加载它的 form.html
    2. Window.open("form.html?entry=54")
    3. 从 URL 读取表单 gwt 模块,加载条目,允许对其进行编辑,并提供 SaveCancel 按钮
    4. 点击SaveCancel时关闭弹出窗口

    【讨论】:

    • 感谢大家的快速回复。我对对话框的不满是它没有窗框,也没有典型的窗口外观、网址位置等。
    【解决方案3】:

    你不能只使用一个对话框吗?

    Example

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 1970-01-01
      • 2012-09-27
      相关资源
      最近更新 更多