From 2ddf48709bc8f1e5b83e4fae04e1e29d08da2f2e Mon Sep 17 00:00:00 2001 From: Vassiliy Kudryashov Date: Wed, 2 May 2012 16:19:53 +0400 Subject: [PATCH] IDEA-73339 Add a 'Restart' button & shortcut to the Run pane --- platform/icons/src/actions/restart.png | Bin 0 -> 639 bytes .../intellij/execution/runners/RestartAction.java | 11 +++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 platform/icons/src/actions/restart.png diff --git a/platform/icons/src/actions/restart.png b/platform/icons/src/actions/restart.png new file mode 100644 index 0000000000000000000000000000000000000000..beb592feb05db60678b1c90a28489346a5552edd GIT binary patch literal 639 zcmV-_0)YLAP)o@VxQNB^sD|F3ZUplJW3YyQNY@L@IirGfEpMdd;n z-!~2ScS!!BX#JOBLXkQ~!ZGMa9{Y}4?o%x9RW0sTEbL7r^n*`5j5zjqN$*}V=|&#t zMjhuu8S;ETJBl@5=0)H+4?NQ~Ima_DlPLR*TH!hn;5ZKMbSgQBG*R9`Ij1ref*2o= zAm>RQ@L)9mt#3DnGDz7xB9|c{k{>C5B>$*x|EFy=hB86cI3tN9{hem_dP^>UE&r)+ z=|~?&z(o9yTO*Gm{E}Y#j$HeQR{O4rMZQG+on`KCHTQN&^lCr%mvBIiIdAMyN4!O# zgGx)hL_?4|c=1+Ax=Lb&J=Jd||EzD|Jq`PjU1jG?RK!d)s5w5eK=$tgJ^%m!6m(Kf zQvl`w{{Hg*0N5t}(k1==0KgdVUNo$7gDzA{e!my;)b}ryMK6GKl24!usfVCx98{g z?|&i`QDF54f}wB(L6BHHL4i1hrZd@GzEGS=q|9|$wN`I5Pfh`gsnhM9odd9k;l(AO Z+5i^Z9L*`J!(0FW002ovPDHLkV1h)uA=v-` literal 0 HcmV?d00001 diff --git a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java index e995243dd5c5..9571d8ca97da 100644 --- a/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java +++ b/platform/lang-impl/src/com/intellij/execution/runners/RestartAction.java @@ -24,6 +24,7 @@ import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.project.DumbAware; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.Messages; +import com.intellij.openapi.util.IconLoader; import javax.swing.*; @@ -31,10 +32,13 @@ import javax.swing.*; * @author dyoma */ public class RestartAction extends AnAction implements DumbAware { + private static final Icon STOP_AND_START_ICON = IconLoader.getIcon("/actions/restart.png"); + private ProcessHandler myProcessHandler; private final ProgramRunner myRunner; private final RunContentDescriptor myDescriptor; private final Executor myExecutor; + private final Icon myIcon; private final ExecutionEnvironment myEnvironment; public RestartAction(final Executor executor, @@ -44,6 +48,7 @@ public class RestartAction extends AnAction implements DumbAware { final RunContentDescriptor descritor, final ExecutionEnvironment env) { super(null, null, icon); + myIcon = icon; myEnvironment = env; getTemplatePresentation().setEnabled(false); myProcessHandler = processHandler; @@ -55,6 +60,7 @@ public class RestartAction extends AnAction implements DumbAware { public void actionPerformed(final AnActionEvent e) { final DataContext dataContext = e.getDataContext(); + ActionManager.getInstance().getAction(IdeActions.ACTION_STOP_PROGRAM).actionPerformed(e); doRestart(dataContext); } @@ -65,7 +71,7 @@ public class RestartAction extends AnAction implements DumbAware { private void doRestart(final DataContext dataContext) { final Project project = PlatformDataKeys.PROJECT.getData(dataContext); if (ExecutorRegistry.getInstance().isStarting(project, myExecutor.getId(), myRunner.getRunnerId())) { - return; + return; } try { final ExecutionEnvironment old = myEnvironment; @@ -86,8 +92,9 @@ public class RestartAction extends AnAction implements DumbAware { if (myProcessHandler != null && !isRunning) { myProcessHandler = null; // already terminated } + presentation.setIcon(isRunning ? STOP_AND_START_ICON : myIcon); - presentation.setEnabled(!isRunning /*&& myRunner.canRun(, myProfile)*/ && !ExecutorRegistry.getInstance().isStarting(myEnvironment.getProject(), myExecutor.getId(), myRunner.getRunnerId())); + presentation.setEnabled(true); } public void registerShortcut(final JComponent component) {