void setFrameItems(@NotNull List<? extends StackFrameItem> items, Runnable onDone) {
    clear();
    if (!items.isEmpty()) {
      myDebugProcess.getManagerThread().schedule(new DebuggerCommandImpl() {
        @Override
        protected void action() {
          boolean separator = false;
          for (StackFrameItem frameInfo : items) {
            if (frameInfo == null) {
              separator = true;
            }
            else {
              XStackFrame frame = frameInfo.createFrame(myDebugProcess);
              if (separator) {
                StackFrameItem.setWithSeparator(frame);
              }
              DebuggerUIUtil.invokeLater(() -> getModel().add(frame));
              separator = false;
            }
          }
          if (onDone != null) {
            onDone.run();
          }
        }
      });
    }
  }
void setFrameItems(@NotNull List<? extends StackFrameItem> items, Runnable onDone)