以下のGWTパネルとウィジェット間の基本的な関係を結論付けるのは安全ですか?
- GWTパネルは、子パネルや子ウィジェットを含むことができる親DOMノードに変換されます。
- GWTウィジェットは、単に自己完結型のリーフDOMノードに変換されます。
- GWT RootPanelは、他のすべてのパネルとウィジェットのルートコンテナとしてのみ機能する必要があります。
以下のGWTパネルとウィジェット間の基本的な関係を結論付けるのは安全ですか?
GWT 階層は次のとおりです。
パネルもウィジェットです。パネルは、他のウィジェットやパネルを含めることができるウィジェットです。一般に、それらはレイアウトに使用され、データが直接関連付けられることはめったにありません。たとえば、DisclosurePanelはヘッダーや TabPanel のタブにデータを持つことができます。HTMLtable
要素 (例: HorizontalPanel ) に基づくものもあれば、タグに基づくものもありdiv
ます。
RootPanelは、他のウィジェットを含むパネルです。このパネルは、格納階層の最上部にあります。body
デフォルトでは、ホストページのタグをラップします。RootPanel には、自然な HTML 順序でレイアウトされる任意の数のウィジェットを含めることができます。
ドキュメントを参照してください。
すべての GWT Widget インスタンスには要素 ( を呼び出すことで到達可能getElement()
) があり、パネルは Widget の一種に過ぎません - それらには依然として基本要素があります。ほとんどのウィジェットは、作業を行うためにより多くのコンテンツを作成します (たとえば、CheckBox はspan
と の両方input
を持つlabel
)。パネルにも複数の要素が必要になる場合があります。
ウィジェットが他のウィジェットに追加されるのは、DOM をこのように配置する必要があるためだけでなく、ウィジェットの DOM へのアタッチおよびデタッチを追跡するためでもあります。とりわけ、これにより、実際にアタッチされたときにのみイベント ハンドラーを接続し、ページの一部でなくなったときにそれらの接続を解除することが可能になります。
RootPanel は、既存の要素 (本体自体、または特定の ID を持つ要素) を表す特別なウィジェットです。複数の RootPanel が存在する場合がありますが、入れ子にしないでください。(つまり、ブラウザのサイズ情報を子レイアウト パネルに渡すことも処理する特殊な RootPanel の一種である、厳密に 1 つの RootLayoutPanel しか存在しない可能性があります)。
これはあなたが求めていたのと同じ考えかもしれませんが、Widget は多くの場合、複数の DOM ノードであることを明確にしたかったのです。