在不同的包中跨越许多UiBinder的单个CSS样式表

时间:2012-12-03 13:06:55

标签: java gwt uibinder

我有一个GWT 2.4应用程序,它在不同的客户端软件包中有许多UiBinder,如下所示:

  • com.xxx

    • project.gwt.xml
  • com.xxx.client

    • entrypoint.java
    • stylesheet.css中
  • com.xxx.client.package1

    • Page1.java
    • Page1.ui.xml
    • stylesheet.css中
  • com.xxx.client.package2

    • Page2.java
    • Page2.ui.xml
    • stylesheet.css中
  • com.xxx.client.package3

    • Page3.java
    • Page3.ui.xml
    • 的index.html
    • global_stylesheet.css

在我的ui.xml文件中,我不得不引用与UiBinder在同一个包中的stylesheet.css文件。我一直试图引用global_stylesheet.css文件但是没有运气。理想情况下,我希望仍能使用{style.xxx}方法来应用样式。

1 个答案:

答案 0 :(得分:2)

您可以使用带有@Source("global_stylesheet.css")的CssResource的中央ClientBundle,并从您的UiBinder模板中引用它:

<ui:with type="mypackage.client.MyClientBundle" field="myClientBundle"/>

所以你可以像:

一样使用它
<g:Label addStyleNames="{myClientBundle.myCssResource.example}"/>

但是你必须将global_stylesheet.css放在类路径中的某个位置 - 否则它不可能被编译。

另外,不要忘记在CssResource上调用ensureInjected()。