Проблема с скрытием нескольких столбцов с помощью NatTable
Мне нужно программно скрыть несколько столбцов NatTable. Для этого я вычисляю массив индексов с помощью метода, а затем вызываю MultiHideCommand следующим образом.
int[] indexArray = idxToHide.stream().mapToInt(i -> i).toArray();
_tableView.doCommand(new MultiColumnHideCommand(_tableView,indexArray));
Что я получаю, так это то, что скрыта только куча столбцов, но не все столбцы в indexArray.
Я читал, что ColumnHideShowLayer был разработан с учетом взаимодействия с пользовательским интерфейсом.
Есть ли правильный способ программно удалить несколько столбцов?
1 ответ
Во-первых, команда принимает позиции в качестве параметра, а не индексы. Во-вторых, позиции должны основываться на слое, который используется в качестве первого параметра. Если используется ViewportLayer, невидимые столбцы не будут учитываться.
Таким образом, вы можете попытаться вычислить позиции на основе некоторого нижнего уровня, например SelectionLayer, а затем передать в SelectionLayer и позиции на основе SelectionLayer в команде. Это должно работать в теории.