2012-05-09 63 views
1

以下GWT面板和窗口小部件之間的基本關係是否安全?GWT面板和窗口小部件

  • 將GWT面板翻譯爲可包含子面板或/和子窗口小部件的父DOM節點。
  • GWT小部件被翻譯成僅包含自包含的葉子DOM節點。
  • GWT RootPanel必須完全充當所有其他面板和小部件的根容器。

回答

2

每個GWT Widget實例都有一個元素(可通過調用getElement()得到),而面板只是一種Widget - 它們仍然有一個基本元素。大多數微件構建更多內容來完成他們的工作(例如:CheckBox是span,其中inputlabel),並且面板也可能需要多個元件。

窗口小部件被附加到其他窗口小部件,這不僅僅是因爲這是如何安排DOM,而且也是爲了跟蹤附加和分離DOM中的窗口小部件。除此之外,這使得只有在實際連接時才能連接事件處理程序,並且在不再是頁面的一部分時可以斷開它們。

RootPanel是一個特殊的小部件,它表示現有的元素,或者是主體本身,或者是具有給定ID的元素。可能有多個RootPanel,但它們不應嵌套。 (也就是說,可能只有一個RootLayoutPanel,一種專門的RootPanel,它也處理傳遞給子佈局面板的瀏覽器大小信息)。

這可能與您之前的想法相同,但我想澄清一下,Widget經常不止一個DOM節點。

3

這裏的GWT層次:

GWT hierarchy

的面板也是一個小部件。面板是可以包含其他小部件和麪板的小部件。通常它們用於佈局,並且很少有數據直接與它們關聯 - 例如,DisclosurePanel可以在標題和TabPanel的選項卡中包含數據。有些基於HTML table元素(例如HorizontalPanel),有些基於標籤div

RootPanel是包含其他小部件的面板。此面板位於包容層次結構的頂部。它默認包裝主機頁面的標籤body。 RootPanel可以包含任意數量的小部件,這些小部件將按照其自然的HTML排序進行佈局。

請參閱docs