在星云NatTable中启用单元格编辑

时间:2017-10-10 09:02:58

标签: eclipse-rcp nattable nebula

我正在尝试学习如何在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());

注意:不要将这些配置添加到java.lang.ClassCastException的natTable原因:org.eclipse.nebula.widgets.nattable.NatTable无法强制转换为org.eclipse.nebula.widgets .nattable.layer.AbstractLayer

1 个答案:

答案 0 :(得分:0)

您缺少必要的编辑相关配置DefaultEditBindingsDefaultEditConfiguration,它们将配置编辑器和绑定以对用户交互作出反应。

文档中解释了这一点:https://www.eclipse.org/nattable/documentation.php?page=editing