2012-10-25 44 views
6

我在調查使用GWT的Bootstrap庫的最佳實踐。 我更喜歡不使用GWT-Bootstrap項目,並傾向於在我的GWT應用程序中使用普通css和js Bootstrap庫。集成Bootstrap和GWT

我在尋找如何將Bootstrap風格應用於GWT UI組件?我是否需要通過處理GWT組件的DOM元素來在UI視圖代碼中執行此操作?或者有沒有其他乾淨的方式來實現GWT和Bootstrap的整合?

回答

12

不,沒有辦法簡單地將引導樣式添加到gwt組件。您將不得不處理DOM,刪除一些GWT CSS類並添加GWT類,並且至少將代碼從一個地方複製到任何地方,您將創建一個擴展原始組件並在任何地方使用這個新類的類,這基本上是GWT-Bootstrap所做的。我知道這是因爲大約一年前,我想要完全按照你現在說的去做:以一種乾淨的方式將引導樣式應用於GWT組件,而不是我管理它的工作,然後啓動GWT-Bootstrap發展。

GWT-Bootstrap實際上已經解決了大多數gwt + bootstrap集成bug,並且基本上適用於任何項目。我知道一些組件還沒有實現或有錯誤,但是,也許你可以修復一些組件,並提出一個請求,恕我直言,這比重建所有的東西更好。

+0

查看該主題的最新帖子(即整個主題討論gwt和gwt-bootstrap):https://groups.google.com/forum/?fromgroups=#!topic/gwt-platform/6Yi38uB2igs – othman

+0

i意思是在Kyle Anderson的第一篇文章中,他已經與gwt-bootsrap進行了爭論,並表示他更喜歡在GWT上使用樸素的Bootsrap而不是gwt-bootsrap。我願意和你們一起參與討論,爲什麼gwt-bootsrap比普通的BS更適合GWT應用。 – othman

+2

,因爲它基本相同。 GWT-Bootstrap不過是GWT widgets加BS樣式和JS的包裝。但是,當然,你可以重新發明輪子並自己做。你的選擇。 – caarlos0

2

您當然可以在沒有第三方包裝庫的情況下使用Bootstrap和GWT,在UiBinder XML中使用addStyleNames屬性添加Bootstrap的CSS類,或者使用Java代碼中的相同方法添加Bootstrap的CSS類。但是Bootstrap也可以使用自定義數據屬性,例如data-toggle來讓「魔術」發生。由於GWT的默認小部件(FlowPanel等),這些自定義屬性不提供製定者不能設置他們UiBinder的XML和發現自己在Java代碼中編寫的

getElement().setAttribute(...) 

手。

這就是像GWT-BootstrapGwtBootstrap3這樣的包裝庫。它們提供了自定義小部件,可以包裝這些功能,以便您可以像使用默認GWT小部件一樣使用Bootstrap小部件。