ColumnHideCommand заставляет столбцы таблицы исчезать в NatTable, когда выбраны все элементы таблицы - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть компонент NatTable со следующими слоями:

  • ViewportLayer
  • SelectionLayer
  • RowHideShowLayer
  • ColumnGroupExpandCollapseLayer
  • ColumnHideShowLayer
  • DataLayer

Мне нужно показать / скрыть определенный столбец, когда меняется флажок.Для этого я использую метод #doCommand (), предоставляемый компонентом NatTable:

if(selection) {
   nattable.doCommand(new ColumnShowCommand(nattable, COLUMN_INDEX));
} else {
   nattable.doCommand(new ColumnHideCommand(nattable, COLUMN_INDEX+1));
}

Все работает отлично, за исключением случая, когда выбраны ВСЕ элементы в таблице, а ColumnHideCommandказнены.В этом конкретном сценарии все содержимое таблицы исчезает ( Снимок экрана ).Если в таблице нет выбора или не все элементы выбраны, то все работает просто отлично.

Пожалуйста, дайте мне знать, если у вас есть идеи, что там происходит, или у вас возникли проблемы такого рода.до.Мой опыт работы с NatTables довольно ограничен, поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация.Спасибо!

1 Ответ

0 голосов
/ 04 февраля 2019

Это функция SelectionLayer для поддержки операций скрытия нескольких столбцов на основе выбора столбца.ColumnHideCommand используется, вместо этого MultiColumnHideCommand создается и выполняется на основе полностью выбранных столбцов.Ответственный код находится в SelectionLayer#handleColumnHideCommand(ColumnHideCommand).Этот метод защищен, поэтому, если вам не нужна эта функция, потому что вы поддерживаете только скрытие / отображение столбцов программно, а не через пользовательский интерфейс, выполняемый пользователем, вы можете переопределить метод, чтобы просто выполнить super.doCommand(command); без проверки выбора.

...