Example usage for com.intellij.openapi.ui.popup ListPopupStep ListPopupStep

List of usage examples for com.intellij.openapi.ui.popup ListPopupStep ListPopupStep

Introduction

In this page you can find the example usage for com.intellij.openapi.ui.popup ListPopupStep ListPopupStep.

Prototype

ListPopupStep

Source Link

Usage

From source file:com.mnr.java.intellij.idea.plugin.base64helper.MainActionHandler.java

License:Apache License

private ListPopupStep getStep(final Editor editor) {
    return new ListPopupStep() {
        @NotNull/*from w  w w  .  j  ava2 s  .c om*/
        @Override
        public List getValues() {
            return getPopupItems();
        }

        @Override
        public boolean isSelectable(Object o) {
            return ((PopupItem) o).isSelectable(getEditorSelectedText(editor));
        }

        @Nullable
        @Override
        public Icon getIconFor(Object o) {
            return null;
        }

        @NotNull
        @Override
        public String getTextFor(Object o) {
            return ((PopupItem) o).getText();
        }

        @Nullable
        @Override
        public ListSeparator getSeparatorAbove(Object o) {
            if (o instanceof EncoderPopupItem) {
                return new ListSeparator(ENCODER_SEPARATOR_TITLE);
            } else if (o instanceof HexEncoderPopupItem) {
                return new ListSeparator(HEX_ENCODER_SEPARATOR_STRING);
            }

            return null;
        }

        @Override
        public int getDefaultOptionIndex() {
            return 0;
        }

        @Nullable
        @Override
        public String getTitle() {
            return POPUP_MENU_TITLE;
        }

        @Nullable
        @Override
        public PopupStep onChosen(final Object o, boolean b) {
            processSelection((PopupItem) o, editor);
            return null;
        }

        @Override
        public boolean hasSubstep(Object o) {
            return false;
        }

        @Override
        public void canceled() {
        }

        @Override
        public boolean isMnemonicsNavigationEnabled() {
            return false;
        }

        @Nullable
        @Override
        public MnemonicNavigationFilter getMnemonicNavigationFilter() {
            return null;
        }

        @Override
        public boolean isSpeedSearchEnabled() {
            return false;
        }

        @Nullable
        @Override
        public SpeedSearchFilter getSpeedSearchFilter() {
            return null;
        }

        @Override
        public boolean isAutoSelectionEnabled() {
            return false;
        }

        @Nullable
        @Override
        public Runnable getFinalRunnable() {
            return null;
        }
    };
}

From source file:org.intellij.erlang.quickfixes.ErlangFindIncludeQuickFix.java

License:Apache License

private static void displayPopupListDialog(final Project project, final PsiElement problem,
        final PsiFile[] files, final boolean setDirectHrlLink, final String includeString,
        final String includeFileName) {
    final Editor problemEditor = PsiUtilBase.findEditor(problem);
    if (problemEditor == null) {
        return;//  w  w w.j a  v  a2s  .  c o m
    }
    ListPopup p = JBPopupFactory.getInstance().createListPopup(new ListPopupStep() {

        @NotNull
        @Override
        public List getValues() {
            return Arrays.asList(files);
        }

        @Override
        public boolean isSelectable(Object o) {
            return true;
        }

        @Nullable
        @Override
        public Icon getIconFor(Object o) {
            return ErlangIcons.HEADER;
        }

        @NotNull
        @Override
        public String getTextFor(Object o) {
            //Uses relative path to project root if possible (if not - full path)
            VirtualFile f = ((PsiFile) o).getVirtualFile();
            String projectRootRelativePath = VfsUtilCore.getRelativePath(f, project.getBaseDir(),
                    INCLUDE_STRING_PATH_SEPARATOR);
            return projectRootRelativePath == null ? f.getPath() : projectRootRelativePath;
        }

        @Nullable
        @Override
        public ListSeparator getSeparatorAbove(Object o) {
            return null;
        }

        @Override
        public int getDefaultOptionIndex() {
            return 0;
        }

        @Nullable
        @Override
        public String getTitle() {
            return "Multiple files found";
        }

        @Nullable
        @Override
        public PopupStep onChosen(Object o, boolean b) {
            final PsiFile f = (PsiFile) o;
            CommandProcessor.getInstance().executeCommand(project,
                    () -> ApplicationManager.getApplication().runWriteAction(() -> {
                        fixUsingIncludeFile(problem, f);
                        renameIncludeString(project, problem, setDirectHrlLink, includeString, includeFileName);
                        FileContentUtilCore
                                .reparseFiles(Arrays.asList(problem.getContainingFile().getVirtualFile()));
                    }), "add facet action(find include quick fix)", null, problemEditor.getDocument());

            return null;
        }

        @Override
        public boolean hasSubstep(Object o) {
            return false;
        }

        @Override
        public void canceled() {

        }

        @Override
        public boolean isMnemonicsNavigationEnabled() {
            return false;
        }

        @Nullable
        @Override
        public MnemonicNavigationFilter getMnemonicNavigationFilter() {
            return null;
        }

        @Override
        public boolean isSpeedSearchEnabled() {
            return false;
        }

        @Nullable
        @Override
        public SpeedSearchFilter getSpeedSearchFilter() {
            return null;
        }

        @Override
        public boolean isAutoSelectionEnabled() {
            return false;
        }

        @Nullable
        @Override
        public Runnable getFinalRunnable() {
            return null;
        }
    });
    p.showInBestPositionFor(problemEditor);
}