GWT 的 AbstractCell 允许您创建自定义单元格,包括在单元格中呈现图像的能力。有没有办法通过设置它的 URL 属性来呈现图像并有一个与之关联的错误处理程序(在图像资源不可用或加载有问题的情况下采取措施)?在测试图像属性时正确呈现,但似乎没有包含错误处理程序。
这是我尝试使用的示例代码:
new AbstractCell<String>() {
@Override
public void render (Context context, String value, final SafeHtmlBuilder sb) {
final Image testImage = new Image();
testImage.addErrorHandler(new ErrorHandler() {
@Override
public void onError(ErrorEvent event) {
// image SRC failed to load so pick a different image and set the tool tip
testImage.setResource(images.errorLoading()); // from an image bundle
testImage.setTitle("Image Load Failed");
}
});
// the value passed in is the image src
testImage.setUrl(value);
sb.append(SafeHtmlUtils.fromTrustedString(testImage.toString()));
}
我认为问题出在testImage.toString()
. 要实现 AbstractCell,您必须附加到 SafeHtmlBuilder。在图像上使用该toString()
方法时,图像 URL 设置正确,其他属性设置正确,但错误处理程序不包含在toString()
方法中(据我所知)。还有其他方法可以解决这个问题吗?