Eclipse 如何在选择表中的行单元格时选择整个列?

Eclipse 如何在选择表中的行单元格时选择整个列?,eclipse,nattable,Eclipse,Nattable,我们有一个没有标题的NatTable,我将第一行视为标题, -注册CELL_PAINTER以更改可视化,使此行看起来与标题类似 还注册了CustomCommandHandler,它实现了ILayerCommandHandler,以防止为第一行选择单元格/行。 selectionLayer.RegisterCommandHandler新建CustomCommandHandler; 单元格选择对其他单元格很有效。 公共布尔doCommandfinal ILayer图层,final ILayer命令

我们有一个没有标题的NatTable,我将第一行视为标题, -注册CELL_PAINTER以更改可视化,使此行看起来与标题类似

还注册了CustomCommandHandler,它实现了ILayerCommandHandler,以防止为第一行选择单元格/行。 selectionLayer.RegisterCommandHandler新建CustomCommandHandler; 单元格选择对其他单元格很有效。 公共布尔doCommandfinal ILayer图层,final ILayer命令 { 如果ViewportSelectRowCommand的命令实例 {
return ViewportSelectRowCommand.getRowPosition虽然我不太确定只有一个以复杂方式配置的主体,其外观和行为就像它有标题而没有真正的标题一样有什么意义,但是这没有任何意义,您需要注册一个检查列位置和将SelectCellCommand转换为SelectColumn命令

但我预计,在其他情况下,immitated头的行为与实际头不一样,因此会出现更多问题。您也可以尝试覆盖getRegionLabelsByXYint,int,但我不确定这是否会起作用或导致更多问题

this.selectionLayer.registerCommandHandler(new SelectCellCommandHandler(this.selectionLayer) {

    @Override
    public boolean doCommand(ILayer targetLayer, SelectCellCommand command) {
        if (command.convertToTargetLayer(targetLayer)
                && command.getColumnPosition() == 0) {
            return targetLayer.doCommand(
                    new SelectColumnCommand(
                            targetLayer,
                            command.getColumnPosition(),
                            command.getRowPosition(),
                            command.isShiftMask(),
                            command.isControlMask()));
        }
        return super.doCommand(targetLayer, command);
    }
});