private static void navigate(MouseEvent e, @NotNull PsiMethod method, Supplier<Collection<PsiMethod>> supplier) {
    new PsiTargetNavigator<>(supplier)
      .tabTitle(DaemonBundle.message("navigation.findUsages.title.super.method", method.getName()))
      .elementsConsumer((methods, navigator) -> {
        if (!methods.isEmpty()) {
          boolean showMethodNames = !PsiUtil.allMethodsHaveSameSignature(methods.toArray(PsiMethod.EMPTY_ARRAY));
          navigator.presentationProvider(element -> {
            if (element instanceof PsiCompiledElement) {
              ((PsiCompiledElement)element).getMirror(); // load decompiler in background thread
            }
            return GotoTargetHandler.computePresentation(element, showMethodNames);
          });
        }
      })
      .navigate(e, DaemonBundle.message("navigation.title.super.method", method.getName()), method.getProject());
  }
private static void navigate(MouseEvent e, @NotNull PsiMethod method, Supplier<Collection<PsiMethod>> supplier)