Перво-наперво: каждый столбец CellTable GWT — это просто стек ячеек, поскольку нам нужно, чтобы каждая ячейка выглядела как якорь, который может прослушивать событие Click, и позволяет предоставить ClickableTextCell в качестве аргумента для столбца.
Column<YourObj, String> col = new Column<YourObj, String>(new ClickableTextCell()) {};
2-й — переопределите метод «render ()» в вашем экземпляре столбца и создайте свой HTML-шаблон, который вы хотите, здесь нам нужно создать привязку.
@Override
public void render(Context context, YourObj yourObj, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<a style='text-decoration:underline; cursor: pointer;'>" + yourObj.getX() + "</a>");
}
3-й — поскольку мы используем ClickableTextCell, он служит источником события Click. Нам нужно предоставить прослушиватель ClickEvent, мы делаем это, переопределяя метод onBrowserEvent().
@Override
public void onBrowserEvent(Context context, Element elem, Customer customer, NativeEvent event) {
if ("click".equals(event.getType())) {
Window.alert("ID is : " + customer.getId());
}
}
Полный фрагмент кода:
Column<YourObj, String> col = new Column<YourObj, String>(new ClickableTextCell()) {
@Override
public String getValue(final YourObj yourObj) {
return yourObj.getX();
}
@Override
public void render(Context context, YourObj yourObj, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<a style='text-decoration:underline; cursor: pointer;'>" + yourObj.getX() + "</a>");
}
@Override
public void onBrowserEvent(Context context, Element elem, YourObj yourObj, NativeEvent event) {
if ("click".equals(event.getType())) {
Window.alert("ID is : " + yourObj.getId());
}
}
};
cellTable.addColumn (столбец, «Имя»);
person
BeingSuman
schedule
28.11.2015