集成Bootstrap和GWT

时间:2012-10-25 21:19:00

标签: gwt twitter-bootstrap gwt-bootstrap

我正在研究在GWT中使用Bootstrap库的最佳实践。 我不喜欢使用GWT-Bootstrap项目,而是喜欢在我的GWT应用程序中使用普通的css和js Bootstrap库。

我正在搜索如何将Bootstrap样式应用于GWT UI组件?我是否需要通过处理GWT组件的DOM元素在UI视图代码中执行此操作?或者有没有其他干净的方法来实现GWT和Bootstrap的这种集成?

2 个答案:

答案 0 :(得分:12)

不,没有办法简单地将引导样式添加到gwt组件。您将不得不处理DOM,删除一些GWT CSS类并添加GWT代码,并且,至少您将代码从一个地方复制到任何地方,您将创建一个扩展原始组件的类,并在任何地方使用这个新类,这基本上就是GWT-Bootstrap所做的。

我知道这是因为大约一年前,我想完全按照你现在所说的做法:以干净的方式将引导程序样式应用于GWT组件,而不是将其设置为工作,并启动GWT-Bootstrap开发

GWT-Bootstrap实际上已经解决了大部分gwt + bootstrap集成错误,基本上适用于任何项目。我知道有些组件尚未实现或有bug,但是,也许你可以修复一些并提出一个拉请求,恕我直言,这比重建所有的东西更好。

答案 1 :(得分:2)

您当然可以在没有第三方包装器库的情况下使用Bootstrap和GWT,在UiBinder XML中添加带有addStyleNames属性的Bootstrap CSS类或在Java代码中添加相同的方法。但Bootstrap也可以使用像data-toggle这样的自定义数据属性,以便让“神奇”发生。由于GWT的默认小部件(FlowPanel等)不为这些自定义属性提供setter,因此您无法在UiBinder XML中设置它们并发现自己编写了大量的

getElement().setAttribute(...)

在Java代码中。

这就是GWT-BootstrapGwtBootstrap3等封装库的用途。它们提供了包含这些功能的自定义小部件,以便您可以像使用默认GWT小部件一样使用Bootstrap小部件。