繁体   English   中英

如何仅对 NatTable 中的视口层的选定行数禁用“行选择”?

[英]How to disable "Row Selection" for only selected number of rows of viewport layer in a NatTable?

我的NatTable包含由视口、主体和选择层组成的CompositeFreezeLayer

我想禁用冻结行的行选择。

这意味着,在我的表中有 15 行。 在这些中,有 5 行被冻结,应禁用该行以供选择。 其他 10 行应启用行/单元格选择。

当前默认情况下所有行都在选择,可能是默认情况下应该通过选择层进行配置。

如何仅禁用几行的行选择?

实现一个自定义命令处理程序,用于检查位置并使用冻结区域中位置的命令。 对于其他行转发命令。 在 CompositeFreezeLayer 上注册该命令处理程序。

由于我想禁用冻结层上的行选择和单元格选择,因此请检查命令的实例并转发命令。

public class CustomFreezeLayerCommandHandler implements ILayerCommandHandler<ILayerCommand>
{

  private int endRowOfFrozenLayer;

  public CustomFreezeLayerCommandHandler(final int lastRowOfFrozenLayer)
  {
    this.endRowOfFrozenLayer = lastRowOfFrozenLayer;
  }


  @Override
  public boolean doCommand(final ILayer targetLayer, final ILayerCommand command)
  {
    if (command instanceof ViewportSelectRowCommand)
    {
      return (((ViewportSelectRowCommand) command).getRowPosition() <= this.endRowOfFrozenLayer);
    }
    else if (command instanceof SelectCellCommand)
    {

      return (((SelectCellCommand) command).getRowPosition() <= this.endRowOfFrozenLayer);
    }
    return false;

  }

  @Override
  public Class<ILayerCommand> getCommandClass()
  {
    return ILayerCommand.class;
  }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM