@Override
  protected @Nullable Object getSlowDataFromSelection(@Nullable Object @NotNull [] selectedUserObjects,
                                                      @Nullable Object @Nullable [] singleSelectedPathUserObjects,
                                                      @NotNull String dataId) {
    if (PlatformDataKeys.DELETE_ELEMENT_PROVIDER.is(dataId)) {
      Object o = selectedUserObjects.length != 1 ? null : getValueFromNode(selectedUserObjects[0]);
      if (o instanceof PackageElement) {
        return myDeletePSIElementProvider;
      }
    }
    if (PackageElement.DATA_KEY.is(dataId)) {
      Object o = selectedUserObjects.length != 1 ? null : getValueFromNode(selectedUserObjects[0]);
      return o instanceof PackageElement ? o : null;
    }
    if (PlatformCoreDataKeys.MODULE.is(dataId)) {
      Object o = selectedUserObjects.length != 1 ? null : getValueFromNode(selectedUserObjects[0]);
      if (o instanceof PackageElement) {
        return ((PackageElement)o).getModule();
      }
    }
    return super.getSlowDataFromSelection(selectedUserObjects, singleSelectedPathUserObjects, dataId);
  }
@Override
  protected @Nullable Object getSlowDataFromSelection(@Nullable Object @NotNull [] selectedUserObjects,
                                                      @Nullable Object @Nullable [] singleSelectedPathUserObjects,
                                                      @NotNull String dataId)