maven: check for existing project in maven actions. It possible to process actions without an open project

related issue - https://youtrack.jetbrains.com/issue/IDEA-132152
This commit is contained in:
Vladislav.Soroka
2014-11-05 15:40:19 +04:00
parent e148515226
commit 1e16e2154b
28 changed files with 142 additions and 55 deletions
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class AlwaysShowArtifactIdAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getAlwaysShowArtifactId();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setAlwaysShowArtifactId(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class GroupProjectsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getGroupModules();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setGroupModules(value);
}
}
@@ -16,6 +16,8 @@
package org.jetbrains.idea.maven.navigator.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
@@ -23,19 +25,24 @@ import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public abstract class MavenProjectsNavigatorAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return isSelected(getNavigator(e));
final MavenProjectsNavigator navigator = getNavigator(e);
return navigator!= null && isSelected(navigator);
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
setSelected(getNavigator(e), state);
final MavenProjectsNavigator navigator = getNavigator(e);
if (navigator != null) {
setSelected(navigator, state);
}
}
private MavenProjectsNavigator getNavigator(AnActionEvent e) {
@Nullable
private static MavenProjectsNavigator getNavigator(AnActionEvent e) {
return MavenProjectsNavigator.getInstance(MavenActionUtil.getProject(e.getDataContext()));
}
protected abstract boolean isSelected(MavenProjectsNavigator navigator);
protected abstract boolean isSelected(@NotNull MavenProjectsNavigator navigator);
protected abstract void setSelected(MavenProjectsNavigator navigator, boolean value);
protected abstract void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value);
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowBasicPhasesOnlyAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowBasicPhasesOnly();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowBasicPhasesOnly(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowIgnoredProjectsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowIgnored();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowIgnored(value);
}
}
@@ -15,16 +15,17 @@
*/
package org.jetbrains.idea.maven.navigator.actions;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.navigator.MavenProjectsNavigator;
public class ShowVersionsAction extends MavenProjectsNavigatorAction {
@Override
public boolean isSelected(MavenProjectsNavigator navigator) {
public boolean isSelected(@NotNull MavenProjectsNavigator navigator) {
return navigator.getShowVersions();
}
@Override
public void setSelected(MavenProjectsNavigator navigator, boolean value) {
public void setSelected(@NotNull MavenProjectsNavigator navigator, boolean value) {
navigator.setShowVersions(value);
}
}
@@ -18,7 +18,6 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.PlatformDataKeys;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -32,7 +31,9 @@ public class AddFileAsMavenProjectAction extends MavenAction {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(context);
manager.addManagedFilesOrUnignore(Collections.singletonList(getSelectedFile(context)));
if (manager != null) {
manager.addManagedFilesOrUnignore(Collections.singletonList(getSelectedFile(context)));
}
}
@Override
@@ -51,7 +52,7 @@ public class AddFileAsMavenProjectAction extends MavenAction {
private static boolean isExistingProjectFile(DataContext context, VirtualFile file) {
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(context);
return manager.findProject(file) != null;
return manager != null && manager.findProject(file) != null;
}
@Nullable
@@ -32,6 +32,7 @@ public class AddManagedFilesAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
final MavenProjectsManager manager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(manager == null) return;
FileChooserDescriptor singlePomSelection = new FileChooserDescriptor(true, false, false, false, false, true) {
@Override
public boolean isFileSelectable(VirtualFile file) {
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.project.DumbAware;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
public class DownloadActionGroup extends DefaultActionGroup implements DumbAware {
@@ -28,7 +29,8 @@ public class DownloadActionGroup extends DefaultActionGroup implements DumbAware
}
private static boolean isEnabled(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext())
&& MavenActionUtil.getProjectsManager(e.getDataContext()).isMavenizedProject();
if(!MavenActionUtil.hasProject(e.getDataContext())) return false;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.isMavenizedProject();
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenArtifact;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -49,7 +50,7 @@ public class DownloadSelectedSourcesAndDocsAction extends MavenProjectsAction {
return result == null ? Collections.<MavenArtifact>emptyList() : result;
}
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.scheduleArtifactsDownloading(mavenProjects, getDependencies(e), mySources, myDocs, null);
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.utils.MavenSettings;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -28,7 +29,7 @@ public class EditSettingsAction extends MavenAction {
showSettingsFor(MavenActionUtil.getProject(e.getDataContext()));
}
protected static void showSettingsFor(Project project) {
protected static void showSettingsFor(@Nullable Project project) {
ShowSettingsUtil.getInstance().showSettingsDialog(project, MavenSettings.DISPLAY_NAME);
}
}
@@ -17,6 +17,7 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -33,8 +34,10 @@ public abstract class MavenProjectsAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
perform(MavenActionUtil.getProjectsManager(context), MavenActionUtil.getMavenProjects(context), e);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
perform(projectsManager, MavenActionUtil.getMavenProjects(context), e);
}
protected abstract void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e);
protected abstract void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e);
}
@@ -28,7 +28,9 @@ public abstract class MavenProjectsManagerAction extends MavenAction {
@Override
protected boolean isAvailable(AnActionEvent e) {
return super.isAvailable(e) && MavenActionUtil.getProjectsManager(e.getDataContext()).isMavenizedProject();
if(!super.isAvailable(e)) return false;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.isMavenizedProject();
}
protected abstract void perform(MavenProjectsManager manager);
@@ -101,7 +101,7 @@ public class MavenShowEffectivePom extends AnAction implements DumbAware {
}
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(dataContext);
if(manager == null) return null;
MavenProject mavenProject = manager.findProject(file);
if (mavenProject == null) return null;
@@ -111,6 +111,7 @@ public class MavenShowEffectivePom extends AnAction implements DumbAware {
@Override
public void actionPerformed(AnActionEvent event) {
final Project project = MavenActionUtil.getProject(event.getDataContext());
if(project == null) return;
final VirtualFile file = findPomXml(event.getDataContext());
if (file == null) return;
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenFileTemplateGroupFactory;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -25,7 +26,9 @@ import java.util.List;
public class OpenOrCreateSettingsXmlAction extends MavenOpenOrCreateFilesAction {
protected List<File> getFiles(AnActionEvent e) {
File file = MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().getEffectiveUserSettingsIoFile();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(projectsManager == null) return Collections.<File>emptyList();
File file = projectsManager.getGeneralSettings().getEffectiveUserSettingsIoFile();
return file != null ? Collections.singletonList(file) : Collections.<File>emptyList();
}
@@ -16,13 +16,14 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import java.util.List;
public class ReimportProjectAction extends MavenProjectsAction {
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.forceUpdateProjects(mavenProjects);
}
}
@@ -41,6 +41,7 @@ public class RemoveManagedFilesAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<VirtualFile> selectedFiles = MavenActionUtil.getMavenProjectsFiles(context);
List<VirtualFile> removableFiles = new ArrayList<VirtualFile>();
@@ -17,10 +17,12 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import org.jetbrains.idea.maven.execution.MavenRunConfigurationType;
import org.jetbrains.idea.maven.execution.MavenRunnerParameters;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenDataKeys;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
@@ -42,18 +44,22 @@ public class RunBuildAction extends MavenAction {
final List<String> goals = MavenDataKeys.MAVEN_GOALS.getData(context);
if (goals == null || goals.isEmpty()) return false;
final MavenProject project = MavenActionUtil.getMavenProject(context);
if (project == null) return false;
final Project project = MavenActionUtil.getProject(context);
if(project == null) return false;
final MavenProject mavenProject = MavenActionUtil.getMavenProject(context);
if (mavenProject == null) return false;
if (!perform) return true;
MavenExplicitProfiles explicitProfiles = MavenActionUtil.getProjectsManager(context).getExplicitProfiles();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return false;
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
final MavenRunnerParameters params = new MavenRunnerParameters(true,
project.getDirectory(),
mavenProject.getDirectory(),
goals,
explicitProfiles.getEnabledProfiles(),
explicitProfiles.getDisabledProfiles());
MavenRunConfigurationType.runConfiguration(MavenActionUtil.getProject(context), params, null);
MavenRunConfigurationType.runConfiguration(project, params, null);
return true;
}
@@ -18,6 +18,8 @@ package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.options.ShowSettingsUtil;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenIgnoredFilesConfigurable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -35,6 +37,7 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
if (isIgnoredInSettings(projectsManager, projects)) {
@@ -54,6 +57,7 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return false;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
if (projects == null || projects.isEmpty()) return false;
@@ -74,11 +78,11 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
(ignoredStatesCount == 0 || ignoredStatesCount == projects.size());
}
private static boolean isIgnored(MavenProjectsManager projectsManager, List<MavenProject> projects) {
private static boolean isIgnored(@NotNull MavenProjectsManager projectsManager, List<MavenProject> projects) {
return projectsManager.getIgnoredState(projects.get(0));
}
private static boolean isIgnoredInSettings(MavenProjectsManager projectsManager, List<MavenProject> projects) {
private static boolean isIgnoredInSettings(@NotNull MavenProjectsManager projectsManager, List<MavenProject> projects) {
return projectsManager.isIgnored(projects.get(0)) && !isIgnored(projectsManager, projects);
}
@@ -86,11 +90,15 @@ public class ToggleIgnoredProjectsAction extends MavenAction {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
List<MavenProject> projects = MavenActionUtil.getMavenProjects(context);
final Project project = MavenActionUtil.getProject(context);
if(project == null) return;
if (isIgnoredInSettings(projectsManager, projects)) {
ShowSettingsUtil.getInstance()
.editConfigurable(MavenActionUtil.getProject(context), new MavenIgnoredFilesConfigurable(MavenActionUtil.getProject(context)));
.editConfigurable(project, new MavenIgnoredFilesConfigurable(project));
}
else {
projectsManager.setIgnoredState(projects, !isIgnored(projectsManager, projects));
@@ -16,17 +16,22 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public class ToggleOfflineAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().isWorkOffline();
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
return projectsManager != null && projectsManager.getGeneralSettings().isWorkOffline();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
MavenActionUtil.getProjectsManager(e.getDataContext()).getGeneralSettings().setWorkOffline(state);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if (projectsManager != null) {
projectsManager.getGeneralSettings().setWorkOffline(state);
}
}
}
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.model.MavenProfileKind;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
@@ -61,10 +62,11 @@ public class ToggleProfileAction extends MavenAction {
if (selectedProfiles == null || selectedProfiles.isEmpty()) return null;
MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(projectsManager == null) return null;
return getTargetState(projectsManager, selectedProfiles);
}
private static MavenProfileKind getTargetState(MavenProjectsManager projectsManager, Map<String, MavenProfileKind> profiles) {
private static MavenProfileKind getTargetState(@NotNull MavenProjectsManager projectsManager, Map<String, MavenProfileKind> profiles) {
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
MavenProfileKind targetState = null;
// all profiles should target to the same state
@@ -108,6 +110,7 @@ public class ToggleProfileAction extends MavenAction {
@Override
public void actionPerformed(AnActionEvent e) {
MavenProjectsManager manager = MavenActionUtil.getProjectsManager(e.getDataContext());
if(manager == null) return;
Map<String, MavenProfileKind> selectedProfiles = e.getData(MavenDataKeys.MAVEN_PROFILES);
Set<String> selectedProfileIds = selectedProfiles.keySet();
@@ -16,6 +16,7 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.project.Project;
import org.jetbrains.idea.maven.execution.MavenRunner;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
@@ -23,11 +24,15 @@ import org.jetbrains.idea.maven.utils.actions.MavenToggleAction;
public class ToggleSkipTestsAction extends MavenToggleAction {
@Override
protected boolean doIsSelected(AnActionEvent e) {
return MavenRunner.getInstance(MavenActionUtil.getProject(e.getDataContext())).getState().isSkipTests();
final Project project = MavenActionUtil.getProject(e.getDataContext());
if(project == null) return false;
return MavenRunner.getInstance(project).getState().isSkipTests();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
final Project project = MavenActionUtil.getProject(e.getDataContext());
if(project == null) return;
MavenRunner.getInstance(MavenActionUtil.getProject(e.getDataContext())).getState().setSkipTests(state);
}
}
@@ -16,13 +16,14 @@
package org.jetbrains.idea.maven.project.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import java.util.List;
public class UpdateFoldersForProjectAction extends MavenProjectsAction {
protected void perform(MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
protected void perform(@NotNull MavenProjectsManager manager, List<MavenProject> mavenProjects, AnActionEvent e) {
manager.scheduleFoldersResolve(mavenProjects);
}
}
@@ -30,6 +30,7 @@ import org.jetbrains.idea.maven.model.MavenConstants;
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.model.MavenPlugin;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.MavenArtifactUtil;
import org.jetbrains.idea.maven.utils.MavenPluginInfo;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -177,13 +178,18 @@ public class MavenKeymapExtension implements KeymapExtension {
public void actionPerformed(AnActionEvent e) {
final DataContext context = e.getDataContext();
MavenExplicitProfiles explicitProfiles = MavenActionUtil.getProjectsManager(context).getExplicitProfiles();
final Project project = MavenActionUtil.getProject(context);
if (project == null) return;
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
if(projectsManager == null) return;
MavenExplicitProfiles explicitProfiles = projectsManager.getExplicitProfiles();
MavenRunnerParameters params = new MavenRunnerParameters(true,
myMavenProject.getDirectory(),
Arrays.asList(myGoal),
explicitProfiles.getEnabledProfiles(),
explicitProfiles.getDisabledProfiles());
MavenRunConfigurationType.runConfiguration(MavenActionUtil.getProject(context), params, null);
MavenRunConfigurationType.runConfiguration(project, params, null);
}
public MavenProject getMavenProject() {
@@ -18,8 +18,10 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.keymap.impl.ui.EditKeymapsDialog;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.tasks.MavenShortcutsManager;
import org.jetbrains.idea.maven.utils.MavenDataKeys;
import org.jetbrains.idea.maven.utils.actions.MavenAction;
@@ -37,7 +39,8 @@ public class AssignShortcutAction extends MavenAction {
private static boolean isIgnoredProject(DataContext context) {
final MavenProject project = MavenActionUtil.getMavenProject(context);
if (project == null) return false;
return MavenActionUtil.getProjectsManager(context).isIgnored(project);
final MavenProjectsManager projectsManager = MavenActionUtil.getProjectsManager(context);
return projectsManager != null && projectsManager.isIgnored(project);
}
public void actionPerformed(AnActionEvent e) {
@@ -60,11 +63,15 @@ public class AssignShortcutAction extends MavenAction {
String goal = goals.get(0);
return getShortcutsManager(context).getActionId(project.getPath(), goal);
final MavenShortcutsManager shortcutsManager = getShortcutsManager(context);
return shortcutsManager != null ? shortcutsManager.getActionId(project.getPath(), goal) : null;
}
@Nullable
protected static MavenShortcutsManager getShortcutsManager(DataContext context) {
return MavenShortcutsManager.getInstance(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return MavenShortcutsManager.getInstance(project);
}
}
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.execution.RunManagerEx;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Pair;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
@@ -40,7 +41,9 @@ public class ToggleBeforeRunTaskAction extends MavenToggleAction {
final DataContext context = e.getDataContext();
final Pair<MavenProject, String> desc = getTaskDesc(context);
if (desc != null) {
for (MavenBeforeRunTask each : getRunManager(context).getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) {
final RunManagerEx runManager = getRunManager(context);
if(runManager == null) return false;
for (MavenBeforeRunTask each : runManager.getBeforeRunTasks(MavenBeforeRunTasksProvider.ID)) {
if (each.isFor(desc.first, desc.second)) return true;
}
}
@@ -68,7 +71,10 @@ public class ToggleBeforeRunTaskAction extends MavenToggleAction {
return Pair.create(mavenProject, goals.get(0));
}
@Nullable
private static RunManagerEx getRunManager(DataContext context) {
return RunManagerEx.getInstanceEx(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return RunManagerEx.getInstanceEx(project);
}
}
@@ -17,6 +17,8 @@ package org.jetbrains.idea.maven.tasks.actions;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.tasks.MavenCompilerTask;
import org.jetbrains.idea.maven.tasks.MavenTasksManager;
@@ -50,12 +52,14 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
@Override
public void setSelected(AnActionEvent e, boolean state) {
final DataContext context = e.getDataContext();
final MavenTasksManager tasksManager = getTasksManager(context);
List<MavenCompilerTask> tasks = getTasks(context);
if(tasksManager == null) return;
if (state) {
addTasks(getTasksManager(context), tasks);
addTasks(tasksManager, tasks);
}
else {
removeTasks(getTasksManager(context), tasks);
removeTasks(tasksManager, tasks);
}
}
@@ -73,7 +77,8 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
return result;
}
protected boolean hasTask(MavenTasksManager manager, MavenCompilerTask task) {
protected boolean hasTask(@Nullable MavenTasksManager manager, MavenCompilerTask task) {
if(manager == null) return false;
return manager.isCompileTaskOfPhase(task, myPhase);
}
@@ -85,7 +90,10 @@ public abstract class ToggleCompilerTasksAction extends MavenToggleAction {
manager.removeCompileTasks(tasks, myPhase);
}
@Nullable
private static MavenTasksManager getTasksManager(DataContext context) {
return MavenTasksManager.getInstance(MavenActionUtil.getProject(context));
final Project project = MavenActionUtil.getProject(context);
if(project == null) return null;
return MavenTasksManager.getInstance(project);
}
}
@@ -41,7 +41,7 @@ public class MavenActionUtil {
return CommonDataKeys.PROJECT.getData(context) != null;
}
@NotNull
@Nullable
public static Project getProject(DataContext context) {
return CommonDataKeys.PROJECT.getData(context);
}
@@ -55,6 +55,7 @@ public class MavenActionUtil {
public static MavenProject getMavenProject(DataContext context) {
MavenProject result;
final MavenProjectsManager manager = getProjectsManager(context);
if(manager == null) return null;
final VirtualFile file = CommonDataKeys.VIRTUAL_FILE.getData(context);
if (file != null) {
@@ -77,9 +78,11 @@ public class MavenActionUtil {
return module != null ? module : DataKeys.MODULE_CONTEXT.getData(context);
}
@NotNull
@Nullable
public static MavenProjectsManager getProjectsManager(DataContext context) {
return MavenProjectsManager.getInstance(getProject(context));
final Project project = getProject(context);
if(project == null) return null;
return MavenProjectsManager.getInstance(project);
}
public static boolean isMavenProjectFile(VirtualFile file) {