NatTable 单元格编辑应该禁止输入任何 "regular" 个字符,例如字母或数字
NatTable Cell editing should disable on typing any "regular" characters such as letters or digits
我想在输入任何 "regular" 个字符(例如字母或数字)时取消注册 NatTable 单元格编辑。
即在输入任何数字或字符时无事可做。
还有一个问题,我已经将 TABLE_CYCLE_TRAVERSAL_STRATEGY 注册到我的网格层中,使用箭头键和 Tab 键也能正常工作。
但是当我们按下回车键时,单元格选择移动到下一个单元格。
gridLayer.registerCommandHandler(new MoveCellSelectionCommandHandler(this.selectionLayer,
new EditTraversalStrategy(ITraversalStrategy.TABLE_CYCLE_TRAVERSAL_STRATEGY, this.natTable)));
但我想实现这样一种方式,即在按下 Enter 键时,我需要编辑选定的单元格。
您需要创建和注册自定义配置。
DefaultEditBindings
需要去掉这两个配置,避免按键激活编辑模式
uiBindingRegistry.registerKeyBinding(
new LetterOrDigitKeyEventMatcher(),
new KeyEditAction());
uiBindingRegistry.registerKeyBinding(
new LetterOrDigitKeyEventMatcher(SWT.MOD2),
new KeyEditAction());
DefaultSelectionBindings#configureMoveDownBindings()
删除以下行以禁用 ENTER
上的选择移动
uiBindingRegistry.registerKeyBinding(
new KeyEventMatcher(SWT.NONE, SWT.CR), action);
uiBindingRegistry.registerKeyBinding(
new KeyEventMatcher(SWT.MOD1, SWT.CR), action);
注册以下 UI 绑定以在 ENTER 和 SHIFT+ENTER 上启用编辑
uiBindingRegistry.registerKeyBinding(
new KeyEventMatcher(SWT.NONE, SWT.CR),
new KeyEditAction());
uiBindingRegistry.registerKeyBinding(
new KeyEventMatcher(SWT.MOD1, SWT.CR),
new KeyEditAction());
您还需要通过将 useDefaultConfiguration
构造函数参数设置为 false
来确保未注册默认配置。否则,提到的 ui 绑定仍然会被注册和触发(例如,对于 SelectionLayer
,您需要一个自定义的 DefaultSelectionLayerConfiguration
来注册自定义的 DefaultSelectionBindings
)。
我想在输入任何 "regular" 个字符(例如字母或数字)时取消注册 NatTable 单元格编辑。 即在输入任何数字或字符时无事可做。
还有一个问题,我已经将 TABLE_CYCLE_TRAVERSAL_STRATEGY 注册到我的网格层中,使用箭头键和 Tab 键也能正常工作。 但是当我们按下回车键时,单元格选择移动到下一个单元格。
gridLayer.registerCommandHandler(new MoveCellSelectionCommandHandler(this.selectionLayer,
new EditTraversalStrategy(ITraversalStrategy.TABLE_CYCLE_TRAVERSAL_STRATEGY, this.natTable)));
但我想实现这样一种方式,即在按下 Enter 键时,我需要编辑选定的单元格。
您需要创建和注册自定义配置。
DefaultEditBindings
需要去掉这两个配置,避免按键激活编辑模式uiBindingRegistry.registerKeyBinding( new LetterOrDigitKeyEventMatcher(), new KeyEditAction()); uiBindingRegistry.registerKeyBinding( new LetterOrDigitKeyEventMatcher(SWT.MOD2), new KeyEditAction());
上的选择移动DefaultSelectionBindings#configureMoveDownBindings()
删除以下行以禁用 ENTERuiBindingRegistry.registerKeyBinding( new KeyEventMatcher(SWT.NONE, SWT.CR), action); uiBindingRegistry.registerKeyBinding( new KeyEventMatcher(SWT.MOD1, SWT.CR), action);
注册以下 UI 绑定以在 ENTER 和 SHIFT+ENTER 上启用编辑
uiBindingRegistry.registerKeyBinding( new KeyEventMatcher(SWT.NONE, SWT.CR), new KeyEditAction()); uiBindingRegistry.registerKeyBinding( new KeyEventMatcher(SWT.MOD1, SWT.CR), new KeyEditAction());
您还需要通过将 useDefaultConfiguration
构造函数参数设置为 false
来确保未注册默认配置。否则,提到的 ui 绑定仍然会被注册和触发(例如,对于 SelectionLayer
,您需要一个自定义的 DefaultSelectionLayerConfiguration
来注册自定义的 DefaultSelectionBindings
)。