From 452de9c6a5f8fdf7a40d95609da160ef794847c4 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Mon, 20 May 2013 16:53:42 +0400 Subject: [PATCH] Autoselect maven project when ExecuteGoalDialog opens first time --- .../actions/MavenExecuteGoalAction.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/actions/MavenExecuteGoalAction.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/actions/MavenExecuteGoalAction.java index cee1c2edb0a0..beab3bcabf2c 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/actions/MavenExecuteGoalAction.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/navigator/actions/MavenExecuteGoalAction.java @@ -20,14 +20,17 @@ import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.PlatformDataKeys; import com.intellij.openapi.project.DumbAwareAction; import com.intellij.openapi.project.Project; +import org.jetbrains.annotations.NotNull; import org.jetbrains.idea.maven.execution.*; import org.jetbrains.idea.maven.project.MavenGeneralSettings; +import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.project.MavenProjectsManager; import org.jetbrains.idea.maven.utils.MavenUtil; import java.io.File; import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; /** * @author Sergey Evdokimov @@ -40,7 +43,13 @@ public class MavenExecuteGoalAction extends DumbAwareAction { ExecuteMavenGoalHistoryService historyService = ExecuteMavenGoalHistoryService.getInstance(project); MavenExecuteGoalDialog dialog = new MavenExecuteGoalDialog(project, historyService.getHistory()); - dialog.setWorkDirectory(historyService.getWorkDirectory()); + + String lastWorkingDirectory = historyService.getWorkDirectory(); + if (lastWorkingDirectory.length() == 0) { + lastWorkingDirectory = obtainAppropriateWorkingDirectory(project); + } + + dialog.setWorkDirectory(lastWorkingDirectory); dialog.show(); if (!dialog.isOK()) { @@ -77,6 +86,13 @@ public class MavenExecuteGoalAction extends DumbAwareAction { MavenRunConfigurationType.runConfiguration(project, parameters, generalSettings, runnerSettings, null); } + private static String obtainAppropriateWorkingDirectory(@NotNull Project project) { + List rootProjects = MavenProjectsManager.getInstance(project).getRootProjects(); + if (rootProjects.isEmpty()) return ""; + + return rootProjects.get(0).getDirectory(); + } + @Override public void update(AnActionEvent e) { Project project = e.getData(PlatformDataKeys.PROJECT);