GWT中的动态CSS类名

我正在将一个简单的CSS网格系统移植到GWT.我的CSS文件目前有.size1,.size2等类,我有一个CSS资源,看起来像 –

interface MyResource extends CSSResource {

  @ClassName("size1")
  String size1();

  @ClassName("size2")
  String size2();

  // And so on
}

然而,我真正想要的是拥有如下的单一功能 –

String size(int size);

当在运行时将大小作为整数传递时,它将生成适当的类.这是需要的,因为我执行一些计算来确定javascript中窗口小部件可用/需要的实际空间,然后附加相应的类名.

这是GWT甚至可能实现的吗?

编辑:为了澄清,我可以像这样轻松地编写这样的方法 –

String size(int size) {
  switch(size) {
    case 1: return size1();
    case 2: return size2();
    ... and so on
  }
}

但是,MyResource是一个接口,它的实现由GWT在运行时生成.这意味着我无法将我的size方法添加到MyResource类型.所以我想我想要一种方法来为MyResource类添加自定义方法.

最佳答案 我认为你不应该尝试通过css文件解决这个问题,但如果你想在你的风格中有动态值,你应该通过myWidget.getElement().getStyle().setSomeCssMethod()在代码中设置这些值.或者在这种情况下,您似乎想要设置尺寸,如高度和宽度.对于大多数小部件,可以直接设置这些值.除非我遗漏了什么,你为什么要使用css类而不是直接在代码中设置它?

点赞