1

css ベースの文字列を Java コンストラクトに変換するパーサーが gwt に組み込まれていますか?

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また、もちろんコンストラクターで受け入れることも考えましたが、UiObjectsetWidthは CSS 文字列を受け取るため、逆ではありますが、まだ String munging を行う必要があります。理想的には、文字列/次元と単位を適切に解析する単純なメカニズムで両方の可能性を実現するために、2 つのコンストラクターが必要です。

編集:

これらの値を解析したい理由を言及するのを忘れました:

シンプルなスクロール パネル (iPhone のナビゲーションを考えてください) を作成しようとしているので、ユーザーがボタンをクリックすると、新しい「アイテム」が右からスクロールします。

バックエンドでは、これは次のようになります:
1) 新しいスクロール アイテムを取得
する 2) スクロール ラッパーを拡張して新しいアイテムに付随させる (ここで実際の幅が必要です)
2) アイテム スクロール ラッパーに追加します
3) スクロール ラッパーをアニメーション化します (幅を左にスライドすることにより) 1 アイテム) 新しく追加されたアイテムをパネル ラッパーの可視セクションに公開する

元の幅が必要な理由は、追加したアイテムの幅だけスクロール パネルを拡張したいからです。文字列を取得しているだけなら、正確には言えませんsetWidth( currentWidth + itemWidth)

基本的に私はJQuery Tools Scrollerを模倣しようとしています

4

1 に答える 1

3

GWT は現在、Flute を使用して CSS を解析していますが、CSS パーサー ( http://cssparser.sourceforge.net/ ) に移行する議論があります。これらのパーサーの 1 つを直接使用できます。

しかし、あなたが言及したユースケースについては、それほど重いものは必要ないと思います。GWT は実際には幅と高さの文字列を解析しません。ブラウザの DOM に渡すだけで、ブラウザはそれを適切に評価します。あなたも同じことをするべきです。

つまり、API は文字列を受け取るだけです。呼び出し元は、em、px、またはパーセンテージを渡すことができます。API は、理解するためにブラウザーにプッシュするだけなので、関係ありません。

于 2010-04-09T14:36:33.527 に答える