У меня есть NatTable (table
) с настраиваемой конфигурацией меню заголовка, настроенной следующим образом:
table.addConfiguration(new CustomHeaderMenuConfiguration(table, columnHeaderLayer));
Класс конфигурации создает меню следующим образом:
@Override
protected PopupMenuBuilder createColumnHeaderMenu(NatTable natTable) {
return super.createColumnHeaderMenu(natTable).withHideColumnMenuItem("Hide column(s)")
.withColumnRenameDialog("Change annotation name").withVisibleState(
PopupMenuBuilder.COLUMN_RENAME_MENU_ITEM_ID, new ValidRenamableHeaderState());
}
Видимое состояние срабатывает, как ожидалось. В конфигурации я также настраиваю уровень для регистрации команды с моими спецификациями c уровень заголовка столбца:
@Override
public void configureLayer(ILayer layer) {
layer.registerCommandHandler(
new DisplayColumnRenameDialogCommandHandler(this.columnHeaderLayer));
}
Теперь при сканировании через API DisplayColumnRenameDialogCommandHandler
, et c., Я можно было бы ожидать, что в какой-то момент новое значение достигнет поставщика данных заголовка столбца через слой заголовка столбца.
Сам уровень заголовка столбца настроен в классе редактора следующим образом:
final IDataProvider columnHeaderDataProvider = new ColumnHeaderDataProvider(bodyDataProvider);
final ColumnHeaderLayer columnHeaderLayer =
new ColumnHeaderLayer(new DefaultColumnHeaderDataLayer(columnHeaderDataProvider),
compositeFreezeLayer, selectionLayer);
ColumnHeaderDataProvider
реализует IDataProvider
, а getDataValue(int, int)
работает нормально.
Проблема, с которой я борюсь, заключается в том, что ColumnHeaderDataProvider.setData(int, int, newValue)
никогда не вызывается, и, следовательно, данные модели никогда не обновляются , хотя метка в заголовке столбца меняется.
Что мне не хватает?