public void loadValues(@NotNull @ProgressTitle String updateMessage,
                         int fromRow,
                         int toRow,
                         int fromCol,
                         int toCol,
                         @NotNull Consumer<? super ArrayChunk> whenLoaded) {

    myQueue.queue(new Update(updateMessage) {
      @Override
      public void run() {
        ProgressManager.getInstance().run(new Task.Backgroundable(null, updateMessage, false) {
          @Override
          public void run(@NotNull ProgressIndicator indicator) {
            indicator.setIndeterminate(true);
            try {
              ArrayChunk chunk = myDebugValue.getFrameAccessor()
                .getArrayItems(myDebugValue, fromRow, fromCol, toRow - fromRow + 1, toCol - fromCol + 1,
                               myDataProvider.getFormat());

              if (chunk != null) {
                whenLoaded.accept(chunk);
              }
            }
            catch (PyDebuggerException e) {
              Logger.getInstance(this.getClass()).error(e);
            }
          }
        });
      }
    });
  }
public void loadValues(@NotNull @ProgressTitle String updateMessage,
                         int fromRow,
                         int toRow,
                         int fromCol,
                         int toCol,
                         @NotNull Consumer<? super ArrayChunk> whenLoaded)