По сути, я хочу реализовать нечто подобное окраске ячеек, определенной в документации GWT
Однако я не хочу указывать стиль непосредственно в элементе DIVно я хочу присвоить скрытое имя стилей из моего пользовательского CSSResource
, которое я определил для моего CellTable.
Вот код:
Я определил пользовательский Resources
интерфейс для моего CellTable:
public interface CellTableResources extends Resources {
@Source({CellTable.Style.DEFAULT_CSS,CellTableStyle.STYLE})
CellTableStyle cellTableStyle();
public interface CellTableStyle extends Style {
String STYLE = "CellTable.css";
public Sring coloredCell();
}
}
Я передаю его конструктору моего CellTable:
CellTable<XY> table = new CellTable<XY>(15,cellTableResources);
Так выглядит моя пользовательская ячейка.
public class ColorCell extends AbstractCell<String> {
interface Templates extends SafeHtmlTemplates {
@SafeHtmlTemplates.Template("<div class=\"{0}\">{1}</div>")
SafeHtml cell(String classname, SafeHtml value);
}
private static Templates templates = GWT.create(Templates.class);
@Override
public void render(Context context, String value, SafeHtmlBuilder sb) {
if (value == null) {
return;
}
// how can I access the CSSResources which I pass to the CellTable
CellTableResources ressources = ?
String className = ressources.cellTableStyle().coloredCell();
SafeHtml safeValue = SafeHtmlUtils.fromString(value);
SafeHtml rendered = templates.cell(className, safeValue);
sb.append(rendered);
}
}
Как я могу получить доступ к своему CellTableRessources
, который я передал в свой CellTable в своей пользовательской ячейке?Вот важная часть:
// how can I access the CSSResources which I pass to the CellTable
CellTableResources ressources = ?
String className = ressources.cellTableStyle().coloredCell();
Единственное решение, которое я придумаю, это передать CellTableRessources
конструктору моего AbstractCell
.Есть ли более элегантный способ (я уже передал его в CellTable).
Я думаю, что главный вопрос:
«Как я могу получить доступ к переменным CellTable из ячейки или столбца?»