0

ここにあるCell Validationのショーケースの例に似たものを実装したいと思います

http://gwt.googleusercontent.com/samples/Showcase/Showcase.html#!CwCellValidation

コードを調べて実装しようとすると、テンプレートのクラス/変数定義が欠落しているようです。コードの 2 か所に表示されます

public ValidatableInputCell(String errorMessage) {
  super("change");
  if (template == null) {
    template = GWT.create(Template.class);
  }
  this.errorMessage = SimpleHtmlSanitizer.sanitizeHtml(errorMessage);
}

SafeStyles safeColor = SafeStylesUtils.fromTrustedString("color: " + color + ";");
sb.append(template.input(pendingValue != null ? pendingValue : value, safeColor));

if (invalid) {
  sb.appendHtmlConstant(" <span style='color:red;'>");
  sb.append(errorMessage);
  sb.appendHtmlConstant("</span>");
}

ウェブを検索した後、テンプレート変数の定義がどうあるべきかの例をいくつか見つけて思いついた

interface Template extends SafeHtmlTemplates {
  @Template("<input type=\"text\" value=\"{0}\" tabindex=\"-1\" size=\"{1}\"></input>")
  SafeHtml input(String value, SafeHtml safeStyles);
}
private Template template;

上記のコードを追加すると、コンパイラの警告はありませんが、コードを実行するとこのエラーが発生します

非 CSS 属性コンテキストで使用される SafeStyles。代わりに java.lang.String または SafeHtml を使用するつもりでしたか?

この問題を解決する方法のアイデアはありますか?

4

1 に答える 1

1

探しているテンプレート定義には@ShowcaseSource注釈がないため、検証サンプルのソース タブに表示されません。

とにかく、これが元のコードです。テンプレートは次のとおりです。

interface Template extends SafeHtmlTemplates {
  @Template("<input type=\"text\" value=\"{0}\" style=\"{1}\" tabindex=\"-1\"/>")
  SafeHtml input(String value, SafeStyles color);
}

表示されるエラーは、SafeStyle要素 ( で参照) を属性{1}の値として( ではなく) 使用しているためです。sizestyle

于 2013-07-15T20:59:34.877 に答える