GWT CSS字符串解析器

GWT CSS字符串解析器,gwt,gwt-widgets,Gwt,Gwt Widgets,gwt是否有内置解析器用于将基于css的字符串转换为java构造 IE我对编写自己的小部件感兴趣,例如高度/宽度: public class MyWidget extends Composite{ private double width; private Style.Unit widthUnit; private double height; private Style.Unit heightUnit; /** * @width - width of my widg

gwt是否有内置解析器用于将基于css的字符串转换为java构造

IE我对编写自己的小部件感兴趣,例如高度/宽度:

public class MyWidget extends Composite{

  private double width;
  private Style.Unit widthUnit;
  private double height;
  private Style.Unit heightUnit;

  /**
  * @width - width of my widget in CSS dimensions (ie. "10px", "1em" ...)
  * @height - height of my widget in CSS dimensions (ie. "10px", "1em" ...)
  */
  public MyWidget(String width, String height){
  // Parse out strings and set dimensions / units
  }
}
我可以很容易地在这上面做一些正则表达式,但我想我会看看是否有某种内置的机制,我不想重新发明

另外,我当然想过在构造函数中只接受
双宽度,Style.Unit widthUnit
,但是UiObject的
setWidth
使用CSS字符串,所以我仍然需要进行一些字符串搜索,尽管情况正好相反。理想情况下,我会有2个构造函数,通过一个简单的机制来正确解析字符串/维度和单元,实现这两种可能性

编辑:

忘记提到我要解析这些值的原因:

我正在尝试编写一个简单的滚动面板(想想iphonenav),这样当用户单击一个按钮时,一个新的“项目”就会从右侧滚动进来

在后端,这将是:
1) 获取新的滚动项目
2) 扩展滚动包装以与新项目一起使用(这是我需要实际宽度的地方)
2) 附加到项目滚动包装器
3) 动画滚动包装(通过向左滑动1个项目的宽度),将新添加的项目显示到面板包装的可见部分

我需要原始宽度的原因是,我想通过添加到滚动面板中的项目的宽度来扩展滚动面板。如果我只是得到字符串,我不能确切地说
setWidth(currentWidth+itemWidth)


基本上,我试图模仿GWT目前使用的长笛来解析CSS,但是有一个关于迁移到CSS解析器()的讨论。您可以直接使用其中一个解析器

但是,对于您提到的用例,我认为您不需要那么重的东西。GWT实际上并不解析宽度和高度字符串,它只是将其传递给浏览器DOM,然后浏览器对其进行适当的计算。你也应该这样做


也就是说,您的API只需要一个字符串。调用方可以传递ems或pxs或百分比。您的API不必担心,因为它只需将其推送到浏览器即可理解。

+1这是正确的
setWidth()
方法接受字符串,字符串可以是任何内容:检查我的编辑,我需要更好地解释为什么这对我来说是必要的