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

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

Introduction

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

Prototype

public ListSeparator(String aText) 

Source Link

Usage

From source file:com.intellij.tasks.actions.SwitchTaskAction.java

License:Apache License

public static ListPopupImpl createPopup(final DataContext dataContext, @Nullable final Runnable onDispose,
        boolean withTitle) {
    final Project project = dataContext.getData(CommonDataKeys.PROJECT);
    final Ref<Boolean> shiftPressed = Ref.create(false);
    final Ref<JComponent> componentRef = Ref.create();
    List<TaskListItem> items = project == null ? Collections.<TaskListItem>emptyList()
            : createPopupActionGroup(project, shiftPressed,
                    dataContext.getData(PlatformDataKeys.CONTEXT_COMPONENT));
    final String title = withTitle ? "Switch to Task" : null;
    ListPopupStep<TaskListItem> step = new MultiSelectionListPopupStep<TaskListItem>(title, items) {
        @Override//from  w  ww.jav  a 2s  .  c o m
        public PopupStep<?> onChosen(List<TaskListItem> selectedValues, boolean finalChoice) {
            if (finalChoice) {
                selectedValues.get(0).select();
                return FINAL_CHOICE;
            }
            ActionGroup group = createActionsStep(selectedValues, project, shiftPressed);
            return JBPopupFactory.getInstance().createActionsStep(group,
                    DataManager.getInstance().getDataContext(componentRef.get()), false, false, null, null,
                    true);
        }

        @Override
        public Icon getIconFor(TaskListItem aValue) {
            return TargetAWT.to(aValue.getIcon());
        }

        @Nonnull
        @Override
        public String getTextFor(TaskListItem value) {
            return value.getText();
        }

        @Nullable
        @Override
        public ListSeparator getSeparatorAbove(TaskListItem value) {
            return value.getSeparator() == null ? null : new ListSeparator(value.getSeparator());
        }

        @Override
        public boolean hasSubstep(List<TaskListItem> selectedValues) {
            return selectedValues.size() > 1 || selectedValues.get(0).getTask() != null;
        }
    };

    final ListPopupImpl popup = (ListPopupImpl) JBPopupFactory.getInstance().createListPopup(step);
    if (onDispose != null) {
        Disposer.register(popup, new Disposable() {
            @Override
            public void dispose() {
                onDispose.run();
            }
        });
    }
    componentRef.set(popup.getComponent());
    if (items.size() <= 2) {
        return popup;
    }

    popup.setAdText("Press SHIFT to merge with current context");

    popup.registerAction("shiftPressed", KeyStroke.getKeyStroke("shift pressed SHIFT"), new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            shiftPressed.set(true);
            popup.setCaption("Merge with Current Context");
        }
    });
    popup.registerAction("shiftReleased", KeyStroke.getKeyStroke("released SHIFT"), new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            shiftPressed.set(false);
            popup.setCaption("Switch to Task");
        }
    });
    popup.registerAction("invoke", KeyStroke.getKeyStroke("shift ENTER"), new AbstractAction() {
        public void actionPerformed(ActionEvent e) {
            popup.handleSelect(true);
        }
    });
    return popup;
}

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 ww.  j  a va  2s. co  m*/
        @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;
        }
    };
}