JComponent () { ToolbarDecorator decorator = ToolbarDecorator.createDecorator(myList) .setToolbarPosition(ActionToolbarPosition.TOP) .setPanelBorder(JBUI.Borders.empty()) .disableUpDownActions(); decorator.setAddAction(new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { List<RunConfiguration> configurations = new ArrayList<>(); for (RunnerAndConfigurationSettings settings : myRunManager.getAllSettings()) { RunConfiguration configuration = settings.getConfiguration(); if (!mySnapshot.getConfigurationsWithTargets(myRunManager).containsKey(configuration) && canBeAdded(configuration, mySnapshot)) { configurations.add(configuration); } } ConfigurationSelectionUtil.createPopup(myProject, myRunManager, configurations, (selectedConfigs, selectedTarget) -> { for (RunConfiguration each : selectedConfigs) { myModel.add(Pair.create(each, selectedTarget)); } }).showUnderneathOf(decorator.getActionsPanel()); } }).setEditAction(new AnActionButtonRunnable() { @Override public void run(AnActionButton button) { int index = myList.getSelectedIndex(); if (index == -1) return; RunConfiguration configuration = myModel.get(index).first; RunConfigurationSelector selector = RunConfigurationSelector.KEY.getData(DataManager.getInstance().getDataContext(button.getContextComponent())); if (selector != null) { selector.select(configuration); } } }); return decorator.createPanel(); }