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()
メソッドに含まれていません (私が知る限り)。これについて別の方法はありますか?