diff --git a/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationAction.java b/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationAction.java index 63c763cb04db..22a56caba91d 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationAction.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/ChooseRunConfigurationAction.java @@ -479,7 +479,7 @@ public class ChooseRunConfigurationAction extends AnAction { if (selectedConfiguration != null) { boolean isFirst = true; - for (final ExecutionTarget eachTarget : ExecutionTargetManager.getTargetsFor(project, selectedConfiguration)) { + for (final ExecutionTarget eachTarget : ExecutionTargetManager.getTargetsToChooseFor(project, selectedConfiguration)) { result.add(new ItemWrapper(eachTarget, isFirst) { @Override public Icon getIcon() { @@ -769,7 +769,7 @@ public class ChooseRunConfigurationAction extends AnAction { final boolean dynamic) { final List result = new ArrayList(); - for (final ExecutionTarget eachTarget : ExecutionTargetManager.getTargetsFor(project, settings)) { + for (final ExecutionTarget eachTarget : ExecutionTargetManager.getTargetsToChooseFor(project, settings)) { result.add(new ActionWrapper(eachTarget.getDisplayName(), eachTarget.getIcon()) { @Override public void perform() { @@ -799,7 +799,7 @@ public class ChooseRunConfigurationAction extends AnAction { } } - result.add(new ActionWrapper("Edit...", EDIT_ICON) { + result.add(new ActionWrapper("Edit...", EDIT_ICON, true) { @Override public void perform() { final RunManagerEx manager = RunManagerEx.getInstanceEx(project); diff --git a/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java b/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java index 3aa96f71ef5b..dcbe8ffe8b2e 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/RunConfigurationsComboBoxAction.java @@ -21,7 +21,6 @@ import com.intellij.execution.configurations.ConfigurationType; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.icons.AllIcons; import com.intellij.ide.DataManager; -import com.intellij.ide.actions.ShowPopupMenuAction; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.actionSystem.ex.ComboBoxAction; import com.intellij.openapi.diagnostic.Logger; @@ -187,7 +186,6 @@ public class RunConfigurationsComboBoxAction extends ComboBoxAction implements D //} } - actionGroup.add(new ShowPopupMenuAction()); allActionsGroup.add(actionGroup); allActionsGroup.addSeparator(); } diff --git a/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java b/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java index 4d6e03656b99..aa976b9d77bc 100644 --- a/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java +++ b/platform/lang-impl/src/com/intellij/execution/actions/RunContextAction.java @@ -20,6 +20,7 @@ import com.intellij.execution.*; import com.intellij.execution.configurations.RunConfiguration; import com.intellij.execution.runners.ProgramRunner; import com.intellij.openapi.actionSystem.Presentation; +import com.intellij.openapi.util.Pair; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -60,23 +61,23 @@ public class RunContextAction extends BaseRunConfigurationAction { protected void updatePresentation(final Presentation presentation, final String actionText, final ConfigurationContext context) { presentation.setText(myExecutor.getStartActionText(actionText), true); - boolean b = isEnabled(context); + Pair b = isEnabledAndVisible(context); - presentation.setEnabled(b); - presentation.setVisible(b); + presentation.setEnabled(b.first); + presentation.setVisible(b.second); } - private boolean isEnabled(ConfigurationContext context) { + private Pair isEnabledAndVisible(ConfigurationContext context) { RunnerAndConfigurationSettings configuration = context.findExisting(); if (configuration == null) { configuration = context.getConfiguration(); } - if (configuration == null) return false; + if (configuration == null) return Pair.create(false, false); final ProgramRunner runner = getRunner(configuration.getConfiguration()); - if (runner == null) return false; + if (runner == null) return Pair.create(false, false); - return ExecutorRegistry.getInstance().isStarting(context.getProject(), myExecutor.getId(), runner.getRunnerId()); + return Pair.create(!ExecutorRegistry.getInstance().isStarting(context.getProject(), myExecutor.getId(), runner.getRunnerId()), true); } } diff --git a/platform/platform-impl/src/com/intellij/ui/popup/list/GroupedItemsListRenderer.java b/platform/platform-impl/src/com/intellij/ui/popup/list/GroupedItemsListRenderer.java index 9959a322f857..314a7857d0e2 100644 --- a/platform/platform-impl/src/com/intellij/ui/popup/list/GroupedItemsListRenderer.java +++ b/platform/platform-impl/src/com/intellij/ui/popup/list/GroupedItemsListRenderer.java @@ -16,6 +16,7 @@ package com.intellij.ui.popup.list; import com.intellij.openapi.ui.popup.ListItemDescriptor; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.ui.ErrorLabel; import com.intellij.ui.GroupedElementsRenderer; import com.intellij.ui.components.panels.OpaquePanel; @@ -40,10 +41,13 @@ public class GroupedItemsListRenderer extends GroupedElementsRenderer.List imple } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - final JComponent result = - configureComponent(myDescriptor.getTextFor(value), myDescriptor.getTooltipFor(value), myDescriptor.getIconFor(value), - myDescriptor.getIconFor(value), isSelected, myDescriptor.hasSeparatorAboveOf(value), - myDescriptor.getCaptionAboveOf(value), -1); + String caption = myDescriptor.getCaptionAboveOf(value); + boolean hasSeparator = myDescriptor.hasSeparatorAboveOf(value); + if (index == 0 && StringUtil.isEmptyOrSpaces(caption)) hasSeparator = false; + + final JComponent result = configureComponent(myDescriptor.getTextFor(value), myDescriptor.getTooltipFor(value), + myDescriptor.getIconFor(value), myDescriptor.getIconFor(value), isSelected, hasSeparator, + caption, -1); customizeComponent(list, value, isSelected); return result;