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