RootPanel

GWTのRootPanel(com.google.gwt.user.client.ui.RootPanel)クラスはHTML上のbodyタグに相当するGWTパネルオブジェクトでありコンテキスト上に唯一のものと思っていたのだが、そうではないようだ。

通常、RootPanelは他のWidgetを追加していくコンテナとしてコーディングする。

RootPanel rootPanel = RootPanel.get();
rootPanel.add(new Label());
rootPanel.add(new TextBox());

ところがEntryPointクラス中、任意のid値で識別されるdiv要素を取得したい場合、以下のように書けるのだ。

RootPanel rootPanel = RootPanel.get(id値);

つまりはRootPanelはルートという名前ながら実際にはdiv要素のピアとして振る舞う訳で、例えば前回の「div要素を使ったスプラッシュ表示」でHTML上に記述したスプラッシュにコード上で画像を追加する場合は以下のように書ける。

  • AddressBook.html
  <body>
    <div id="loading"><br>...ロードしています</br></div>
  </body>
RootPanel.get("loading").add(new Image("splash.gif"));

つまりはRootPanelクラスを使うことでHTML内のdiv要素全てにアクセスできる訳で、非常に便利だ。