私は Vaadin 7 でプロジェクトを行っています。
私のプロジェクトでは、Treetable の特定の列に対して列の並べ替え機能を無効にする必要がありますか?
この「setColumnReorderIds()」のような関数を本当に探しています。
Vaadin 7でそれを行うことは可能ですか.
または、「ColumnReorderListener()」を使用してコードを記述する必要がありますか?
アップデート
このコードは、TreeTable に固定された最初の列を設定するものです。ツリー テーブルの Hierarchy 列の並べ替えを無効にしたい。
public class CustomTreeTable extends TreeTable {
private static final long serialVersionUID = 1L;
private Object[] visibleColumns;
private KeyMapper<Object> columnIdMap = new KeyMapper<Object>();
@Override
public void paintContent(PaintTarget target) throws PaintException {
super.paintContent(target);
paintColumnOrder(target);
}
private void paintColumnOrder(PaintTarget target) throws PaintException {
visibleColumns = this.getVisibleColumns();
final String[] colorder = new String[visibleColumns.length];
int i = 0;
colorder[i++] = columnIdMap.key("Column 1"); // Logic to keep the first column fixed
for (Object colId : visibleColumns) {
if(!colId.equals("Column 1")) {
colorder[i++] = columnIdMap.key(colId);
}
}
target.addVariable(this, "columnorder", colorder);
}
}
更新 2
私はオスカーが言ったことを試しました..
に加えて
paintColumnOrder(target).
私は電話しています
paintVisibleColumnOrder(target),
paintAvailableColumns(target),
paintVisibleColumns(target).
テーブル ヘッダーのみの並べ替えを停止できます。しかし、体はまだ再編成中です。この問題に関する推測はありますか?