package com.intellij.execution.executors; import com.intellij.execution.Executor; import com.intellij.icons.AllIcons; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.wm.ToolWindowId; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.ruby.ruby.codeInsight.SignatureService; import javax.swing.*; public class CollectTypeExecutor extends Executor { @NotNull public static final String EXECUTOR_ID = "CollectType"; @NotNull private final Icon myIcon; public CollectTypeExecutor() { // final URL iconURL = CollectTypeExecutor.class.getClassLoader().getResource("runCollectType.png"); // final Icon icon = IconLoader.findIcon(iconURL); // myIcon = icon != null ? icon : AllIcons.General.Error myIcon = AllIcons.General.Error; ServiceManager.getService(SignatureService.class); } @Override public String getToolWindowId() { return ToolWindowId.RUN; } @Override public Icon getToolWindowIcon() { return myIcon; } @NotNull @Override public Icon getIcon() { return myIcon; } @Nullable @Override public Icon getDisabledIcon() { return null; } @NotNull @Override public String getDescription() { return "Run selected configuration with collecting type info"; } @NotNull @Override public String getActionName() { return "CollectType"; } @NotNull @Override public String getId() { return EXECUTOR_ID; } @NotNull public String getStartActionText() { return "Run with Collecting Type Info"; } @NotNull @Override public String getContextActionId() { return "RunCollectType"; } @Nullable @Override public String getHelpId() { return null; } @NotNull @Override public String getStartActionText(@Nullable final String configurationName) { final String name = configurationName != null ? escapeMnemonicsInConfigurationName(StringUtil.first(configurationName, 30, true)) : null; return "Run" + (StringUtil.isEmpty(name) ? "" : " '" + name + "'") + " with Collecting Type Info"; } @NotNull private static String escapeMnemonicsInConfigurationName(@NotNull final String configurationName) { return configurationName.replace("_", "__"); } }