Включить редактирование ячеек в Nebula NatTable

Я пытаюсь узнать, как включить редактирование ячеек в Nebula NatTable. Я отредактировал _301_CustomDataProviderExample::createExampleControl, чтобы показать эту функцию:

@Override
public Control createExampleControl(Composite parent) {
    //...
    final NatTable natTable = new NatTable(parent, SWT.NO_BACKGROUND
                | SWT.NO_REDRAW_RESIZE | SWT.DOUBLE_BUFFERED, bodyDataLayer, false);

    natTable.addConfiguration(new DefaultNatTableStyleConfiguration());

    natTable.addConfiguration(new AbstractRegistryConfiguration() {
        @Override
        public void configureRegistry(IConfigRegistry configRegistry) {
            configRegistry.registerConfigAttribute(
                    EditConfigAttributes.CELL_EDITABLE_RULE,
                    IEditableRule.ALWAYS_EDITABLE);
        }
    });

    natTable.configure();

    return natTable;
}

Но при запуске примера я не могу редактировать ячейки. Что мне не хватает? Спасибо!

Обновление: мое решение для этого случая:

    bodyDataLayer.addConfiguration(new DefaultEditConfiguration());
    bodyDataLayer.addConfiguration(new DefaultEditBindings());

Примечание: не добавляйте эти конфигурации в natTable из-за java.lang.ClassCastException: org.eclipse.nebula.widgets.nattable.NatTable нельзя преобразовать в org.eclipse.nebula.widgets.nattable. слой.AbstractLayer


person aviit    schedule 10.10.2017    source источник


Ответы (1)


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

Это объясняется в документации: https://www.eclipse.org/nattable/documentation.php?page=editing

person Dirk Fauth    schedule 10.10.2017