3
でカラムのクリックを登録するには失敗しました。VaadinグリッドItemClickListenerは、私が長いノートを読み出すポップアップダイアログを開き、クリック可能なアイコンを表示するようになっている次のコードを持っているImageRenderer
this.capacityCommentColumn = this.facilityGrid.addColumn(
p -> {
if (Strings.isNullOrEmpty(p.getCapacityComment())) {
return null;
} else {
return new ThemeResource("img/note.svg");
}
},
new ImageRenderer<>())
.setWidth(80)
.setCaption("Note");
this.facilityGrid.addItemClickListener(new ItemClickListener<MapQueryService.RowResult>() {
@Override
public void itemClick(Grid.ItemClick<MapQueryService.RowResult> event) {
if (event.getColumn() == capacityCommentColumn && !Strings.isNullOrEmpty(event.getItem().getCapacityComment())) {
final NoteWindow noteWindow = new NoteWindow();
noteWindow.txtDescription.setValue("test");
noteWindow.show();
}
}
});
問題は、コードが実際の画像のクリックに反応しないことです。外部でのみ発生します。あなたはこれを以下で見ることができます。イメージをクリック可能にできるかどうかは任意です
あなたは確認することができますか?これにより、クリックイベントが防止される可能性があります。また、コンポーネント列を使用して、自分で処理することもできます。 –