GWT2.2项目使用ant解决CssResource编译问题
在更大的GWT2.2.0应用程序中,我们希望使用动态CellTables。与其他小部件不同,CellTable不使用css样式的标准名称(例如“gwt MenuItem”)。因此,我们必须从标准css转移到CssResource,它还必须包含标准的“gwt-”样式,如下所示:GWT2.2项目使用ant解决CssResource编译问题,gwt,ant,cssresource,Gwt,Ant,Cssresource,在更大的GWT2.2.0应用程序中,我们希望使用动态CellTables。与其他小部件不同,CellTable不使用css样式的标准名称(例如“gwt MenuItem”)。因此,我们必须从标准css转移到CssResource,它还必须包含标准的“gwt-”样式,如下所示: public interface IPreferences { public interface MyCssResource extends CssResource { String conten
public interface IPreferences
{
public interface MyCssResource extends CssResource
{
String content();
...
}
@ImportedWithPrefix("gwt")
public interface GwtCss extends CssResource
{
String MenuItem();
String MenuBar();
String TabLayoutPanelTab();
}
...
public interface MyResources extends ClientBundle
{
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("preferences.css")
@Import(GwtCss.class) <--- any imported interface will produce error
MyCssResource cssStd();
}
}
公共接口IPreferences
{
公共接口MyCssResource扩展了CssResource
{
字符串内容();
...
}
@导入带前缀(“gwt”)
公共接口GwtCss扩展了CssResource
{
字符串MenuItem();
字符串菜单栏();
字符串TabLayoutPanelTab();
}
...
公共接口MyResources扩展了ClientBundle
{
公共静态最终MyResources实例=GWT.create(MyResources.class);
@来源(“preferences.css”)
@导入(gwtcs.class)您需要在单独的任务中生成资源文件。生成资源文件的调用(作为文档中的一个示例)是:
java -cp gwt-dev.jar:gwt-user.jar com.google.gwt.resources.css.InterfaceGenerator \
-standalone -typeName some.package.MyCssResource -css input.css
因此,它可以是一个java任务,就像编译器一样。它在gwt CssResource文档中有记录:谢谢您的提示。尽管我不明白为什么生成的接口应该“更好”与手工编写的方法相比,使用InterfaceGenerator进行的实验使我找到了一个解决方案,它首先避免了使用@Import:生成器使用@Classname注释,而不是在虚线“gwt-”样式上使用@ImpportWithPrefix。因此,所有样式都可以由一个接口导入,而不需要@Import其他样式。
java -cp gwt-dev.jar:gwt-user.jar com.google.gwt.resources.css.InterfaceGenerator \
-standalone -typeName some.package.MyCssResource -css input.css