package com.lightd.ideap.maven.actions; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.CommonDataKeys; import com.intellij.openapi.actionSystem.Presentation; import com.intellij.openapi.project.Project; import com.lightd.ideap.maven.MvnRunConfigurationType; import org.jetbrains.idea.maven.execution.MavenRunnerParameters; import org.jetbrains.idea.maven.execution.MavenRunnerSettings; import org.jetbrains.idea.maven.model.MavenExplicitProfiles; import org.jetbrains.idea.maven.project.MavenGeneralSettings; import org.jetbrains.idea.maven.project.MavenProject; import org.jetbrains.idea.maven.utils.MavenPluginInfo; import java.util.Arrays; class MvnGoalAction extends MvnModuleContextAction { private final MavenPluginInfo.Mojo mojo; private final boolean withPrefix; public MvnGoalAction(MavenPluginInfo.Mojo mojo, boolean withPrefix) { this.withPrefix = withPrefix; this.mojo = mojo; } @Override public void actionPerformed(AnActionEvent e) { Project project = e.getRequiredData(CommonDataKeys.PROJECT); final MavenProject mavenProject = getProject(e.getDataContext()); MavenRunnerParameters parameters = createParameters(mavenProject); MavenGeneralSettings settings = getGeneralSettings(e.getProject()); MavenRunnerSettings runnerSettings = createRunnerSettings(e.getProject()); MvnRunConfigurationType.runConfiguration(project, parameters, settings, runnerSettings); } @Override public void update(AnActionEvent e) { super.update(e); Presentation presentation = e.getPresentation(); presentation.setText(withPrefix ? mojo.getDisplayName() : mojo.getGoal()); } private MavenRunnerParameters createParameters(MavenProject project) { return new MavenRunnerParameters(true, project.getDirectory(), Arrays.asList(mojo.getDisplayName()), MavenExplicitProfiles.NONE); } }