2014-09-30 58 views
2

Book of Vaadin和Vaadin培訓課程均建議使用com.vaadin.ui.CustomComponent來包含佈局。爲什麼在Vaadin 7中使用CustomComponent進行佈局?

我可以在純理論中理解這一點,以封裝內容而不必不必要地暴露特定佈局,如GridLayout或Horizo​​ntalLayout。封裝具有的好處:鼓勵類之間解耦

  • 使得它更容易,而無需更改了這些聲明在外部類改變佈局

    但是在實用性方面,我假設一個CustomComponent的渲染意味着額外的HTML/CSS佈局指令,例如可能是另一個div。 Vaadin渲染需要的最後一件事是HTML結構的另一層。

    我不知道這是否可能是老民間傳說。也許在Eclipse中使用可視化組合工具只接受CustomComponent對象而不是Layout對象? (只是猜測,我不知道)

    ➤或者,爲什麼不只是在外部類中聲明類型爲com.vaadin.ui.Layout的引用變量以獲得相同的封裝呢?

    ➤我誇大了將CustomComponent添加到Vaadin渲染的影響嗎?

    ➤是否還有一些我未能察覺的CustomComponent的其他好處?

  • 回答

    0

    CustomLayout的主要優點是,您可以將組件置於HTML代碼中,否則您無法通過vaadin方式生成該代碼。

    如果這添加更多的div/html與本機佈局取決於具體情況。

    我們只有在一個乾淨的Vaadin唯一的解決方案會引入更多的組件/ div或不可能實現時才使用它。

    第二個想法是佈局和邏輯的分離,可以用這個佈局部分實現。您只需指定您擁有哪些組件,然後使用UI設計器(在理論上)就可以製作HTML代碼,並在組件的正確位置放置組件。

    在現實生活中,我並不覺得這是一個真正的優勢,因爲整個CSS,尺寸等都是用vaadin完成的。

    +1

    您誤解了這個問題。我詢問[CustomComponent](https://vaadin.com/api/com/vaadin/ui/CustomComponent.html)而不是[CustomLayout](https://vaadin.com/book/-/page/layout.customlayout的.html)。點擊The Vaadin的第一個鏈接獲取信息。你給出了一個很好的答案,但是在錯誤的問題上。我建議你創建自己的問題併發布本答案。在StackOverflow中鼓勵這樣做。 – 2014-10-01 07:30:43

    0

    您可以用Visual Designer撰寫CustomComponent的內容。這在開發過程中節省了大量時間