Я пытаюсь использовать код от https://stackoverflow.com/a/6966235/1339354 в моем проекте. Я определил следующий класс:GWT Создать столбец с пользовательским типом ячейки
public class SeoClickableCell extends AbstractCell<WebmasterObject> {
public SeoClickableCell() {
super("click", "keydown");
}
@Override
public void render(Context context, WebmasterObject value, SafeHtmlBuilder sb) {
if (value != null) {
sb.appendHtmlConstant("<a href='javascript:;'>");
sb.appendEscaped(value.getName());
sb.appendHtmlConstant("</a>");
}
}
@Override
public void onBrowserEvent(Context context, Element parent, WebmasterObject value, NativeEvent event, ValueUpdater<WebmasterObject> valueUpdater) {
if (value == null)
return;
super.onBrowserEvent(context, parent, value, event, valueUpdater);
if ("click".equals(event.getType())) {
//TODO
}
}
};
Но я пытаюсь создать пользовательский столбец в моей CellTable. но следующий код:
final SeoClickableCell cell = new SeoClickableCell();
Column<WebmasterObject, String> nameColumn = new Column<WebmasterObject, String>(cell) {
@Override
public String getValue(WebmasterObject WebmasterObject) {
return WebmasterObject.getName();
}
};
Говорит мне:
Конструктор Column (SeoClickableCell) не определено
И что я должен сделать SeoClickableCell реализовать Cell или изменить тип «ячейки ».
Я не уверен, правильно ли я правильно понимаю процедуру создания пользовательских ячеек/столбцов, поэтому любая помощь будет оценена по достоинству.
Почему вы не хотите, чтобы сделать 'SeoClickableCell реализует Cell'? Что такое иерархия «AbstractCell»? –
Потому что если я делаю 'public class SeoClickableCell extends AbstractCell реализует Cell {', Java говорит мне, что я не могу реализовать интерфейс Cell более одного раза. Если я сделаю оба из них реализующими X , ошибки не обнаружены, но тогда я должен сделать свой исходный код примерно так: 'Column nameColumn = new Column (cell) {' and I ' Я не уверен, что это то, что мне нужно. –
Shadark
Это странно, потому что 'AbstractCell' реализует' Cell' ... Какую версию GWT вы используете? –