AppCode: filtering devices in the list by deployment target

Platform: fixes in target selection
This commit is contained in:
Anton Makeev
2012-06-30 19:13:49 +02:00
parent 19b9a27508
commit 5c0919f55f
4 changed files with 19 additions and 16 deletions
@@ -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<ExecutionTarget>(eachTarget, isFirst) {
@Override
public Icon getIcon() {
@@ -769,7 +769,7 @@ public class ChooseRunConfigurationAction extends AnAction {
final boolean dynamic) {
final List<ActionWrapper> result = new ArrayList<ActionWrapper>();
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);
@@ -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();
}
@@ -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<Boolean, Boolean> b = isEnabledAndVisible(context);
presentation.setEnabled(b);
presentation.setVisible(b);
presentation.setEnabled(b.first);
presentation.setVisible(b.second);
}
private boolean isEnabled(ConfigurationContext context) {
private Pair<Boolean, Boolean> 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);
}
}
@@ -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;