2013-07-15 2 views
0

Я хотел бы осуществить нечто похожее на примере витрины Cell Validation, который можно найти здесьGWT CellTable Input 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; 

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

SafeStyles, используемый в контексте атрибута, отличного от CSS. Вы имели в виду использовать java.lang.String или SafeHtml вместо этого?

Любые идеи по устранению этой проблемы?

ответ

1

Определение шаблона, которое вы ищете, пропускает аннотацию @ShowcaseSource, поэтому вы не видите ее на вкладке источника образца проверки.

В любом случае, here - это оригинальный код. А шаблон:

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

Ошибка вы видите, потому что вы используете SafeStyle элемент (на который ссылается {1}) в качестве значения атрибута (вместо style) size.