Проблема с скрытием нескольких столбцов с помощью NatTable

Мне нужно программно скрыть несколько столбцов NatTable. Для этого я вычисляю массив индексов с помощью метода, а затем вызываю MultiHideCommand следующим образом.

int[] indexArray = idxToHide.stream().mapToInt(i -> i).toArray();
_tableView.doCommand(new MultiColumnHideCommand(_tableView,indexArray));

Что я получаю, так это то, что скрыта только куча столбцов, но не все столбцы в indexArray.

Я читал, что ColumnHideShowLayer был разработан с учетом взаимодействия с пользовательским интерфейсом.

Есть ли правильный способ программно удалить несколько столбцов?

1 ответ

Во-первых, команда принимает позиции в качестве параметра, а не индексы. Во-вторых, позиции должны основываться на слое, который используется в качестве первого параметра. Если используется ViewportLayer, невидимые столбцы не будут учитываться.

Таким образом, вы можете попытаться вычислить позиции на основе некоторого нижнего уровня, например SelectionLayer, а затем передать в SelectionLayer и позиции на основе SelectionLayer в команде. Это должно работать в теории.

Другие вопросы по тегам