Example usage for com.intellij.openapi.ui.popup JBPopupFactory createActionGroupPopup

List of usage examples for com.intellij.openapi.ui.popup JBPopupFactory createActionGroupPopup

Introduction

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

Prototype

@NotNull
    public abstract ListPopup createActionGroupPopup(@Nls(capitalization = Nls.Capitalization.Title) String title,
            @NotNull ActionGroup actionGroup, @NotNull DataContext dataContext, ActionSelectionAid aid,
            boolean showDisabledActions, @Nullable Runnable disposeCallback, int maxRowCount,
            @Nullable Condition<? super AnAction> preselectActionCondition, @Nullable String actionPlace);

Source Link

Usage

From source file:com.intellij.execution.impl.BeforeRunStepsPanel.java

License:Apache License

void doAddAction(AnActionButton button) {
    if (isUnknown()) {
        return;//from  w  w w. j  av a2  s. c  om
    }

    final JBPopupFactory popupFactory = JBPopupFactory.getInstance();
    final BeforeRunTaskProvider<BeforeRunTask>[] providers = Extensions
            .getExtensions(BeforeRunTaskProvider.EXTENSION_POINT_NAME, myRunConfiguration.getProject());
    Set<Key> activeProviderKeys = getActiveProviderKeys();

    DefaultActionGroup actionGroup = new DefaultActionGroup(null, false);
    for (final BeforeRunTaskProvider<BeforeRunTask> provider : providers) {
        if (provider.createTask(myRunConfiguration) == null)
            continue;
        if (activeProviderKeys.contains(provider.getId()) && provider.isSingleton())
            continue;
        AnAction providerAction = new AnAction(provider.getName(), null, provider.getIcon()) {
            @Override
            public void actionPerformed(AnActionEvent e) {
                BeforeRunTask task = provider.createTask(myRunConfiguration);
                if (task != null) {
                    provider.configureTask(myRunConfiguration, task);
                    if (!provider.canExecuteTask(myRunConfiguration, task))
                        return;
                } else {
                    return;
                }
                task.setEnabled(true);

                Set<RunConfiguration> configurationSet = new HashSet<RunConfiguration>();
                getAllRunBeforeRuns(task, configurationSet);
                if (configurationSet.contains(myRunConfiguration)) {
                    JOptionPane.showMessageDialog(BeforeRunStepsPanel.this,
                            ExecutionBundle.message("before.launch.panel.cyclic_dependency_warning",
                                    myRunConfiguration.getName(), provider.getDescription(task)),
                            ExecutionBundle.message("warning.common.title"), JOptionPane.WARNING_MESSAGE);
                    return;
                }
                addTask(task);
                myListener.fireStepsBeforeRunChanged();
            }
        };
        actionGroup.add(providerAction);
    }
    final ListPopup popup = popupFactory.createActionGroupPopup(
            ExecutionBundle.message("add.new.run.configuration.acrtion.name"), actionGroup,
            SimpleDataContext.getProjectContext(myRunConfiguration.getProject()), false, false, false, null, -1,
            Condition.TRUE);
    popup.show(button.getPreferredPopupPoint());
}