簡體   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