List of usage examples for com.intellij.openapi.ui.popup ListSeparator ListSeparator
public ListSeparator(String aText)
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; } }; }