GWT CSS String Parser

Есть ли у 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
  }
}

Я мог бы легко сделать несколько регулярных выражений по этому вопросу, но я подумал, что увижу, есть ли какой-то встроенный механизм для этого, я бы не хотел заново изобретать...

Кроме того, я, конечно, думал о том, чтобы просто принять double width, Style.Unit widthUnit в конструкторе, но в UiObject setWidth принимает строку CSS, так что мне все еще нужно выполнить несколько строковых манипуляций, хотя и наоборот. В идеале у меня было бы 2 конструктора для реализации обеих возможностей с простым механизмом правильного разбора строк / размеров и единиц.

РЕДАКТИРОВАТЬ:

Забыл упомянуть ПРИЧИНУ, что я хотел бы разобрать эти значения:

Я пытаюсь написать простую панель прокрутки (например, iphone nav), поэтому, когда пользователь нажимает кнопку, новый "элемент" прокручивается справа.

На бэкэнде это будет:
1) Получить новый элемент прокрутки
2) Расширьте упаковку прокрутки, чтобы сопровождать новый элемент (это где мне нужны фактические ширины)
2) Добавить к элементу прокрутки обертки
3) Анимированная оболочка прокрутки (сдвинув влево на 1 элемент ширины), чтобы отобразить вновь добавленный элемент в видимой части оболочки панели.

Причина, по которой мне нужны исходные значения ширины, заключается в том, что я хочу расширить панель прокрутки на ширину добавляемого элемента. Если я просто получаю строки, я не могу точно сказать, setWidth( currentWidth + itemWidth)

В основном я пытаюсь имитировать JQuery Tools Scroller

1 ответ

В настоящее время GWT использует Flute для анализа CSS, однако есть обсуждение перехода на CSS Parser ( http://cssparser.sourceforge.net/). Вы можете напрямую использовать один из этих парсеров.

НО, для случая использования вы упоминаете - я не думаю, что вам нужно что-то такое тяжелое. GWT на самом деле не анализирует строки ширины и высоты, он просто передает его в DOM браузера, а затем браузер оценивает его соответствующим образом. Вы должны сделать то же самое.

Это означает, что ваш API просто принимает строку. Вызывающая сторона может передавать ems или pxs или проценты. Ваш API не заинтересован, потому что он просто подтолкнет его к браузеру, чтобы понять.

Другие вопросы по тегам