質問
こんにちは、
1つのチェックボックスがあり、テーブルとテーブルには10行があります。ユーザーがチェックボックスを選択した場合、Vaadinテーブルの10行すべてを選択する必要がありますが、この機能を達成する方法がわかりません。これを達成する方法は?可能であれば、コードスニペットを提供してください。
解決
OOTBロゴは180px x 64pxですので、あなたのイメージは可能な限りの可能な方法で表示されるべきそれらの割合を持つべきだと思います(OOTBロゴのように)。
だからあなたはあなたのイメージをOOTBイメージと同じ比率にトリミングする必要があります。
レンダリングを変更するには、Logoフォーマットをスイートするためのレンダリングを変更する必要があります。
今日のこのクラスはを適用します
display:block;
max-height: 64px;
max-width: 180px;
.
あなたのイメージの原因はあなたがwnat としてレンダリングされていない原因です
他のヒント
テーブルにyourtable.setMultisElect(true)があることを確認し、すべてのIDの場合、IDがyourtable.getItemids()から取得し、yourtable.select(id)を呼び出します。これは一つの方法です。
Vaadin 7では、コンテナデータソースを備えたテーブルがある場合、これを行うことができます。
table.setValue(container.getItemIds());
Vaadin 6では、私のためにこれが機能します:
public void selectAll() {
int size = table.getItemIds().size();
for(int i = 0; i < size; i++) {
table.select(i);
}
table.requestRepaint();
}
そしてもちろん、両方のVaadinバージョンでは、これらの行を忘れないでください。
table.setSelectable(true);
table.setMultiSelect(true);
あなたは単にそれをすることができます
Table table = new Table();
table.setValue(table.getItemIds());
代わりに、パフォーマンスの問題を引き起こすことはありません。あなたが持っている場合 - 悪いアーキテクチャ。
また、リストを繰り返すだけです(Vaadinは同じことをします)ここ 単純な反復を使用して、選択したリストを逆にする方法を見つけることができます。 2つの言葉で:
Collection<Object> toSelect = new ArrayList<Object>(); for (Iterator<?> it = simpleTable.getItemIds().iterator(); it.hasNext(); ) { Object next = it.next(); if (!((Collection<?>) simpleTable.getValue()).contains(next)) toSelect.add(next); } simpleTable.setValue(toSelect);