[英]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.