私はいくつかの行と列を持つvaadinテーブルを持っています。どのようにして1つの特定の列のセルをクリック可能にすることができますか?vaadinテーブルセルのクリックリスナーの作成方法
目的:マウスを動かす代わりに、その1つの特定の列のセルをクリックするとツールヒントが表示されます。セルにはラベルとしてテキストが含まれています。
私が持っているのはテーブルだけです(誰も助けてくれません)ので、私はコードを投稿しません。
私はいくつかの行と列を持つvaadinテーブルを持っています。どのようにして1つの特定の列のセルをクリック可能にすることができますか?vaadinテーブルセルのクリックリスナーの作成方法
目的:マウスを動かす代わりに、その1つの特定の列のセルをクリックするとツールヒントが表示されます。セルにはラベルとしてテキストが含まれています。
私が持っているのはテーブルだけです(誰も助けてくれません)ので、私はコードを投稿しません。
Grid
の特定のセルに現在clickListener
を添付することはできません。これは、このdiscussionに服従しています。彼らは、細胞は要素ではなくデータの表現であると言い、クリックすることはできません。
代わりに、アドオンLabelButton
(github)のようなセル内にコンポーネントを追加するか、単にButton
を追加して、ボーダーレスにすることができます。
PDは:ボーナスとして、私はGrid
でButton
を追加するためのコードを追加している:
Vaadin 7
RendererClickListener clickListener = new RendererClickListener() {
private static final long serialVersionUID = 1L;
@Override
public void click(RendererClickEvent event) {
//Do your actions
}
};
ButtonRenderer renderer = new ButtonRenderer(ownerClickListener, "");
grid.getColumn("columnName").setRenderer(renderer);
を使用することになる。このアプローチに代わりますプロパティージェネレーターはGeneratedPropertyContainer
のようになり、ボタンをレンダリングするにはComponentRenderer
(here)のようなアドオンを使用します。私の答えの他の例here ..
Vaadin 8.1
Vaadin 8.1は現在、内蔵しており、Grid
で使用するためComponentRenderer
。 What’s Newの最初の項目「グリッド内のコンポーネント」を参照してください。一例として、
grid.addComponentColumn(person -> {
Button button = new Button("Click me!");
button.addClickListener(click ->
Notification.show("Clicked: " + person.toString()));
return button;
});
// make sure the buttons fit in the cells of the Grid
grid.setBodyRowHeight(40);
は
Grid
ドキュメントVaadinの
in Vaadin page
WICHのバージョンにあった、あなたが使用していますか? – Shirkam
私はvaadin 7.7.10を使用しています – user1631306
あなたはここで言うことを使用することがありますhttps://github.com/vaadin/vaadin-grid/issues/407彼らはそれだけでは、セルをクリックすることはできませんが、それらはあなたの問題を解決しています。 – Shirkam