@Override
  public @Nullable Object getData(@NonNls @NotNull String dataId) {
    if (FRAMES_LIST.is(dataId)) {
      return this;
    }
    // Because of the overridden locationToIndex(), the default logic of retrieving the context menu point doesn't work.
    // Here, were mimic the way PopupFactoryImpl.guessBestPopupLocation(JComponent) calculates it for JLists.
    if (PlatformDataKeys.CONTEXT_MENU_POINT.is(dataId)) {
      int index = getSelectedIndex();
      if (index != -1) {
        Rectangle cellBounds = getCellBounds(index, index);
        if (cellBounds != null) {
          Rectangle visibleRect = getVisibleRect();
          return new Point(visibleRect.x + visibleRect.width / 4, cellBounds.y + cellBounds.height - 1);
        }
      }
      return null;
    }
    if (PlatformCoreDataKeys.BGT_DATA_PROVIDER.is(dataId)) {
      XStackFrame frame = getSelectedFrame();
      if (frame != null) {
        return (DataProvider)realDataId -> getSlowData(frame, realDataId);
      }
    }
    return null;
  }
@Override
  public @Nullable Object getData(@NonNls @NotNull String dataId)