在 Nebula NatTable 中启用单元格编辑
Enable cell editing in 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.layer.AbstractLayer
您缺少必要的编辑相关配置 DefaultEditBindings
和 DefaultEditConfiguration
,它们将配置编辑器和绑定以响应用户交互。
这在文档中有解释:https://www.eclipse.org/nattable/documentation.php?page=editing
我正在尝试学习如何在 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.layer.AbstractLayer
您缺少必要的编辑相关配置 DefaultEditBindings
和 DefaultEditConfiguration
,它们将配置编辑器和绑定以响应用户交互。
这在文档中有解释:https://www.eclipse.org/nattable/documentation.php?page=editing