diff options
Diffstat (limited to 'plugins/terminal/src/org/jetbrains')
3 files changed, 21 insertions, 71 deletions
diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java index caaa54166e7d..f67f84412a02 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/LocalTerminalDirectRunner.java @@ -16,6 +16,7 @@ import com.jediterm.pty.PtyProcessTtyConnector; import com.jediterm.terminal.TtyConnector; import com.pty4j.PtyProcess; import com.pty4j.util.PtyUtil; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; @@ -63,6 +64,11 @@ public class LocalTerminalDirectRunner extends AbstractTerminalRunner<PtyProcess return null; } + @NotNull + public static LocalTerminalDirectRunner createTerminalRunner(Project project) { + return new LocalTerminalDirectRunner(project); + } + @Override protected PtyProcess createProcess(@Nullable String directory) throws ExecutionException { Map<String, String> envs = new HashMap<String, String>(System.getenv()); @@ -77,10 +83,14 @@ public class LocalTerminalDirectRunner extends AbstractTerminalRunner<PtyProcess } private String currentProjectFolder() { - for (VirtualFile vf : ProjectRootManager.getInstance(myProject).getContentRoots()) { - return vf.getCanonicalPath(); + final ProjectRootManager projectRootManager = ProjectRootManager.getInstance(myProject); + + final VirtualFile[] roots = projectRootManager.getContentRoots(); + if (roots.length == 1) { + roots[0].getCanonicalPath(); } - return null; + final VirtualFile baseDir = myProject.getBaseDir(); + return baseDir == null ? null : baseDir.getCanonicalPath(); } @Override diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/OpenLocalTerminalAction.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/OpenLocalTerminalAction.java deleted file mode 100644 index 4d93dd9fc46e..000000000000 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/OpenLocalTerminalAction.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.jetbrains.plugins.terminal; - -import com.intellij.openapi.actionSystem.AnAction; -import com.intellij.openapi.actionSystem.AnActionEvent; -import com.intellij.openapi.actionSystem.CommonDataKeys; -import com.intellij.openapi.project.DumbAware; -import com.intellij.openapi.project.Project; -import com.intellij.openapi.wm.ToolWindow; -import com.intellij.openapi.wm.ToolWindowManager; -import icons.TerminalIcons; -import org.jetbrains.annotations.NotNull; - -/** - * @author traff - */ -public class OpenLocalTerminalAction extends AnAction implements DumbAware { - public OpenLocalTerminalAction() { - super("Open Terminal...", null, TerminalIcons.OpenTerminal); - } - - @Override - public void update(final AnActionEvent e) { - e.getPresentation().setVisible(true); - e.getPresentation().setEnabled(true); - } - - public void actionPerformed(final AnActionEvent e) { - runLocalTerminal(e); - } - - public void runLocalTerminal(AnActionEvent event) { - final Project project = event.getData(CommonDataKeys.PROJECT); - runLocalTerminal(project); - } - - public static void runLocalTerminal(final Project project) { - ToolWindow terminal = ToolWindowManager.getInstance(project).getToolWindow("Terminal"); - if (terminal.isActive()) { - TerminalView.getInstance(project).openLocalSession(project, terminal); - } - terminal.activate(new Runnable() { - @Override - public void run() { - - } - }, true); - } - - @NotNull - public static LocalTerminalDirectRunner createTerminalRunner(Project project) { - return new LocalTerminalDirectRunner(project); - } -} diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalView.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalView.java index 14b992a7c143..32b7c9b13c06 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalView.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/TerminalView.java @@ -1,7 +1,6 @@ package org.jetbrains.plugins.terminal; import com.intellij.icons.AllIcons; -import com.intellij.notification.EventLog; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.project.DumbAwareAction; @@ -23,7 +22,6 @@ import com.intellij.util.ui.UIUtil; import com.jediterm.terminal.ui.JediTermWidget; import com.jediterm.terminal.ui.TabbedTerminalWidget; import com.jediterm.terminal.ui.TerminalWidget; -import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.terminal.vfs.TerminalSessionVirtualFileImpl; @@ -54,7 +52,7 @@ public class TerminalView { public void initTerminal(final ToolWindow toolWindow) { - LocalTerminalDirectRunner terminalRunner = OpenLocalTerminalAction.createTerminalRunner(myProject); + LocalTerminalDirectRunner terminalRunner = LocalTerminalDirectRunner.createTerminalRunner(myProject); toolWindow.setToHideOnEmptyContent(true); @@ -99,14 +97,9 @@ public class TerminalView { } } - private Content createTerminalInContentPanel(@Nullable LocalTerminalDirectRunner terminalRunner, + private Content createTerminalInContentPanel(@NotNull AbstractTerminalRunner terminalRunner, final @NotNull ToolWindow toolWindow) { - SimpleToolWindowPanel panel = new SimpleToolWindowPanel(false, true) { - @Override - public Object getData(@NonNls String dataId) { - return PlatformDataKeys.HELP_ID.is(dataId) ? EventLog.HELP_ID : super.getData(dataId); - } - }; + SimpleToolWindowPanel panel = new SimpleToolWindowPanel(false, true); final Content content = ContentFactory.SERVICE.getInstance().createContent(panel, "", false); content.setCloseable(true); @@ -162,14 +155,14 @@ public class TerminalView { } public void openLocalSession(Project project, ToolWindow terminal) { - LocalTerminalDirectRunner terminalRunner = OpenLocalTerminalAction.createTerminalRunner(project); + LocalTerminalDirectRunner terminalRunner = LocalTerminalDirectRunner.createTerminalRunner(project); openSession(terminal, terminalRunner); } private void openSession(@NotNull ToolWindow toolWindow, @NotNull AbstractTerminalRunner terminalRunner) { if (myTerminalWidget == null) { toolWindow.getContentManager().removeAllContents(true); - final Content content = createTerminalInContentPanel(null, toolWindow); + final Content content = createTerminalInContentPanel(terminalRunner, toolWindow); toolWindow.getContentManager().addContent(content); } else { @@ -184,7 +177,7 @@ public class TerminalView { }, true); } - private ActionToolbar createToolbar(@Nullable final LocalTerminalDirectRunner terminalRunner, + private ActionToolbar createToolbar(@Nullable final AbstractTerminalRunner terminalRunner, @NotNull final JBTabbedTerminalWidget terminal, @NotNull ToolWindow toolWindow) { DefaultActionGroup group = new DefaultActionGroup(); @@ -215,10 +208,10 @@ public class TerminalView { private static class NewSession extends DumbAwareAction { - private final LocalTerminalDirectRunner myTerminalRunner; + private final AbstractTerminalRunner myTerminalRunner; private final TerminalWidget myTerminal; - public NewSession(@NotNull LocalTerminalDirectRunner terminalRunner, @NotNull TerminalWidget terminal) { + public NewSession(@NotNull AbstractTerminalRunner terminalRunner, @NotNull TerminalWidget terminal) { super("New Session", "Create New Terminal Session", AllIcons.General.Add); myTerminalRunner = terminalRunner; myTerminal = terminal; |