使用GWT中的小部件打开新窗口

使用GWT中的小部件打开新窗口,gwt,new-window,Gwt,New Window,在你开始攻击我之前,我已经检查了答案,我一直在谷歌上搜索,直到我的手指流血,但我还没有找到一个简单、简洁的答案。因此,我再次询问所有可能有这个问题的人 问题:如何打开侧面带有formpanel的新窗口 上下文:我有一个列出许多项目的应用程序,我希望有人编辑条目,我希望打开一个新窗口,以便他们可以编辑属性,然后点击保存。在很多应用程序中都可以找到标准的东西 体系结构: 我有一个名为UI的客户端模块,它有十几个类,当从菜单中选择时,这些类可以绘制小部件并填充主区域。我有一个名为UI.html的htm

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

问题:如何打开侧面带有formpanel的新窗口

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

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

我看到的选项

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

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

  • 使用popuppanel。它们看起来很糟糕——而且如果通过JS打开一个窗口非常简单,我希望它是在gwt中

  • 也许我不知道如何使用GWT

    任何帮助都将不胜感激


    谢谢

    你就不能用一个对话框吗


    我同意博格丹的观点:使用对话框

    如果不能,您可以使用选项1中提到的
    Window.open()

  • 创建另一个GWT模块,并使用form.html加载它
  • Window.open(“form.html?entry=54”)
  • 从URL读取表单gwt模块,加载条目,允许编辑,并提供
    保存
    取消
    按钮
  • 单击
    保存
    取消
    时关闭弹出窗口

  • 我的工作方式如下: 我编写了一个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;
        }-*/;
    
    SystemConfiguration config = new SystemConfiguration();             bdElement.getOwnerDocument().getElementById("mainbody").appendChild(config.getElement());
    
    然后,我将包含许多小部件的面板注入到返回的body元素中

    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;
        }-*/;
    
    SystemConfiguration config = new SystemConfiguration();             bdElement.getOwnerDocument().getElementById("mainbody").appendChild(config.getElement());
    

    谢谢你们的快速回复。我对dialogbox的不满是它没有窗口框架,也没有典型的窗口外观、url位置等。我看到的最佳答案是: