如何在分层 table 中进行鼠标绑定

how to do mouse binding in hierarchical table

我想为分层 table 注册鼠标按下操作,即使我注册它似乎不起作用,它总是在鼠标按下时执行 SelectCellAction。我从 nattable 示例中引用 Hierarchicaltreelayerexpale 创建了 Hierarchical table。

我用的鼠标绑定

uiBindingRegistry.registerFirstSingleClickBinding(MouseEventMatcher.rowHeaderLeftClick(SWT.NONE),
                                                          new action(selectionLayer));

任何人都可以告诉我它不起作用。

您所指的 HierarchicalTreeLayerExample 没有一行 header。因此,行 header 的鼠标绑定不会有任何效果。

相反,您需要像这样为 HierarchicalTreeLayer.LEVEL_HEADER_CELL 使用 CellLabelMouseEventMatcher

uiBindingRegistry.registerFirstMouseDownBinding(
        new CellLabelMouseEventMatcher(
                GridRegion.BODY, 
                MouseEventMatcher.LEFT_BUTTON, 
                HierarchicalTreeLayer.LEVEL_HEADER_CELL),
        new NoOpMouseAction());

请注意,选择处理是在 SelectionLayer 中配置的,SelectCellAction 是在鼠标按下时注册的。因此,单击注册也将不起作用,因为之前已触发选择。