Das hat bei mir funktioniert:
public class ButtonImageCell extends ButtonCell{
@Override
public void render(com.google.gwt.cell.client.Cell.Context context,
String renderedHtmlStr, SafeHtmlBuilder sb) {
sb.appendHtmlConstant(renderedHtmlStr);
}
}
In einer Klasse, die CellTable table
:
TableResources resources = GWT.create(TableResources.class);
ImageResourceRenderer imageRenderer = new ImageResourceRenderer();
...
Column<MyRecord, String> buttonCol = new Column<MyRecord, String>(new ButtonImageCell()) {
@Override
public String getValue(MyRecord record) {
if(record.isOn())
return imageRenderer.render(resources.getOnImg()).asString();
else
return imageRenderer.render(resources.getOffImg()).asString();
}
};
buttonCol.setFieldUpdater(new FieldUpdater<MyRecord, String>() {
public void update(int index, MyRecordobject, String value) {
if (Window.confirm("Do stuff?")) {
//todo: stuff
}
}
});
...
table.addColumn(buttonCol, "");
Wo die ImageResource
kommt von ( resources
) :
public interface TableResources extends CellTable.Resources {
interface TableStyle extends CellTable.Style {
}
@Source("/images/on.png")
ImageResource getOnImg();
@Source("/images/off.png")
ImageResource getOffImg();
}
0 Stimmen
Ich habe Arbeit um ist ButtonCell anstelle von Bild Zelle dann änderte ich den Stil der Schaltfläche und aber Hintergrundbild zu ihm. es funktioniert gut sagen jetzt.