6

あなたが私を撃ち落とす前に、私は答えをチェックし、指が血を流すまでグーグルで検索しましたが、シンプルで簡潔な答えを見つけることができませんでした. それで、この問題を抱えている可能性のあるすべての人にもう一度お願いします。

質問:フォームパネルを横にして新しいウィンドウを開く方法。

コンテキスト:たくさんのアイテムを一覧表示するアプリを持っています。誰かにエントリを編集してもらいたいのですが、新しいウィンドウを開いてプロパティを編集し、保存を押してもらいたいのです。多くのアプリケーションで見られる標準的なもの。

アーキテクチャ: 私は UI と呼ばれる 1 つのクライアント モジュールを持っています。それには、ウィジェットを描画し、メニューから選択されたときにメイン領域を埋める多数のクラスがあります。頭にタグがある UI.html という単一の html ページがあります。それでおしまい。

私が見たオプション

  1. Window.Open()を呼び出しますが、html ファイルを定義する必要があります。私は持っていません。空のものを作成できますが、それにウィジェットを挿入するにはどうすればよいですか?

  2. jsni $wndを使用して新しいウィンドウを作成し、それへの参照を取得します。しかし、フォームパネルを挿入するにはどうすればよいですか??

  3. popuppanelを使用します。それらは見栄えが悪いです-さらに、JSを介してウィンドウを開くのが非常に簡単である場合、それはgwtにあると予想されます。

たぶん、私が知らないGWTの使い方を理解していないのでしょう。

どんな助けでもいただければ幸いです

ありがとう

4

3 に答える 3

12

これを機能させる方法は次のとおりです。新しいウィンドウを開くための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");

新しいウィンドウに基本的な本文を追加し、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;
    }-*/;

次に、メインのJavaメソッドからこのメソッドを呼び出しました

BodyElement bdElement = getBodyElement();

次に、返された body 要素に多くのウィジェットを持つパネルを挿入しました

SystemConfiguration config = new SystemConfiguration();             bdElement.getOwnerDocument().getElementById("mainbody").appendChild(config.getElement());
于 2010-11-17T13:56:12.683 に答える
1

Bogdan: Use a DialogBox に同意します。

できない場合はWindow.open()、オプション 1 で述べたように:

  1. 別の GWT モジュールとそれをロードする form.html を作成します。
  2. Window.open("form.html?entry=54")
  3. フォーム gwt モジュールに URL から読み取らせ、エントリをロードし、編集可能にし、ボタンを提供Saveします。Cancel
  4. SaveまたはCancelがクリックされたときにポップアップを閉じる
于 2010-11-12T19:03:58.697 に答える
0

DialogBoxだけを使用することはできませんか?

于 2010-11-12T18:25:35.157 に答える