【问题标题】:Stop NatTable from going into edit mode when an editable cell is left-mouse-clicked当鼠标左键单击可编辑单元格时,阻止 NatTable 进入编辑模式
【发布时间】:2015-10-03 08:16:37
【问题描述】:

当鼠标左键单击可编辑单元格时,NatTable 的默认行为是立即启动单元格的编辑器。

用户有时只需单击左键将焦点扔到表格中,然后使用箭头键在表格内部导航。鉴于表格的默认行为,他们首先需要通过 ENTER、ESCAPE 等解除编辑操作,然后才能移动单元格选择。

我想更改此行为,以便鼠标左键单击选择被单击的单元格,但不会引发编辑。

【问题讨论】:

    标签: nattable


    【解决方案1】:

    编辑触发器在org.eclipse.nebula.widgets.nattable.edit.config.DefaultEditBindings类中配置,org.eclipse.nebula.widgets.nattable.grid.layer.config.DefaultGridLayerConfiguration使用。

    您所要做的就是注册一个使用不同编辑绑定的不同网格层配置。例如:

            GridLayer gridLayer = new GridLayer(bodyLayer, columnHeaderLayer, rowHeaderLayer, cornerLayerStack, false) {
    
            @Override
            protected void init(boolean useDefaultConfiguration) {
                super.init(useDefaultConfiguration);
                addConfiguration(new DefaultGridLayerConfiguration(this) {
    
                    @Override
                    protected void addEditingUIConfig() {
                        addConfiguration(new DefaultEditBindings() {
    
                            @Override
                            public void configureUiBindings(
                                    UiBindingRegistry uiBindingRegistry) {
                                super.configureUiBindings(uiBindingRegistry);
    
                                //update bindings as you wish
                            }
    
    
                        });
                    }
    
    
                });
            }
    
        };
    

    【讨论】:

    • 工作就像一个魅力。我必须将 DefaultEditBindings except 中的所有绑定注册添加到我不想要的绑定注册:registerSingleClickBinding()。我希望我可以简单地调用超类,然后使用 uiBindingRegistry.unregisterSingleClickBinding(),但我无法提供与已注册内容匹配的 MouseEvent。另请注意,在您的示例中,super.init(useDefaultConfiguration) 应该是 super.init(false),否则将在您有机会覆盖之前注册所有默认绑定。
    • 因为 NatTable 1.3 取消注册也应该与 uiBindingRegistry.unregisterSingleClickBinding(new CellEditorMouseEventMatcher(GridRegion.BODY)) 一起正常工作;您不需要 MouseEvent,但需要 MouseEventMatcher,这应该与注册相同。
    猜你喜欢
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多