2014-11-12 3 views
1

Я создал NatTable с RowSelectionModel и RowSelectionProvider:RowSelectionModel показывает весь заголовок ячейку столбца

dataProvider = new ListDataProvider<>(rowData, columnAccessor); 
    bodyDataLayer = new DataLayer(dataProvider); 
    glazedListEventsLayer = new GlazedListsEventLayer<>(bodyDataLayer, rowData); 
    columnReorderLayer = new ColumnReorderLayer(glazedListEventsLayer); 
    columnHideShowLayer = new ColumnHideShowLayer(columnReorderLayer); 
    selectionLayer = new SelectionLayer(columnHideShowLayer); 
    ViewportLayer viewportLayer = new ViewportLayer(selectionLayer); 

    selectionProvider = new RowSelectionProvider<>(selectionLayer, dataProvider, true); 
    selectionLayer.setSelectionModel(new RowSelectionModel<>(selectionLayer, dataProvider, idAccessor, false)); 

В принципе, таблица делает то, что я хочу, чтобы это сделать. Существует лишь одно исключение:

В таблице выглядит следующим образом:

Screenshot

Как и предполагалось, таблица показывает строку, как выбрано (1). Также он выделяет фактически выбранную ячейку (2), что очень приятно. Но он отображает весь заголовок столбца таблицы как выбранный (3). Я не хочу этого. Я хочу либо не выделять элементы заголовка вообще, либо (даже лучше :) Я бы хотел выделить только ячейку заголовка столбца ячейки-указателя (2).

Я думал, что, возможно, есть ярлык конфигурации, прикрепленный к ячейкам заголовка столбца, что приводит к выделению (так что я мог бы просто изменить стиль этого ярлыка, чтобы избавиться от выделения), но COLUMN_HEADER является единственным ярлык конфигурации, я могу видеть при отладке.

Итак, я немного застрял. Что заставляет ячейки заголовка выделяться и как я могу изменить это поведение? Можно ли выделить только заголовок ячейки курсора (как это делается с ячейкой курсора выбранной строки (2))?

ответ

1

Это не ярлык, который вам нужно проверить, для выбора это DisplayMode. Поэтому, чтобы не отображать заголовок столбца, выделенного, если вы выберете строку, вам необходимо зарегистрировать ту же конфигурацию стиля для DisplayMode.SELECT, когда вы регистрируетесь для DisplayMode.NORMAL.

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

Для подсветки якоря выбора в NatTable нет значения по умолчанию. Хотя это должно быть легко добавить. Не стесняйтесь создавать билет на повышение и даже вносить свой вклад. :)

 Смежные вопросы

  • Нет связанных вопросов^_^