Skip to content

Commit

Permalink
#93 toolbar actions visibility fix
Browse files Browse the repository at this point in the history
  • Loading branch information
krasa committed Jul 31, 2022
1 parent 8f8680e commit 7b7c698
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 66 deletions.
22 changes: 6 additions & 16 deletions src/main/java/krasa/mavenhelper/action/CreateCustomGoalAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@

import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.ide.util.PropertiesComponent;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import krasa.mavenhelper.MavenHelperApplicationService;
Expand All @@ -17,7 +18,7 @@
import org.jetbrains.idea.maven.project.MavenProjectsManager;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;

public class CreateCustomGoalAction extends AnAction implements DumbAware {
public class CreateCustomGoalAction extends MyAnAction {
@Nullable
protected MavenProjectInfo mavenProject;
private boolean runGoal = true;
Expand Down Expand Up @@ -70,20 +71,9 @@ protected RunGoalAction getRunGoalAction(Goal goal, MavenProjectInfo mavenProjec
return RunGoalAction.create(goal, MyIcons.PLUGIN_GOAL, false, mavenProject1);
}

@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isAvailable(e) && isVisible(e));
// p.setVisible(isVisible(e));
}


protected boolean isAvailable(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext());
}

protected boolean isVisible(AnActionEvent e) {
@Override
protected boolean isEnabled(AnActionEvent e) {
return MavenProjectInfo.get(mavenProject, e).mavenProject != null;
}

Expand Down
46 changes: 46 additions & 0 deletions src/main/java/krasa/mavenhelper/action/MyAnAction.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package krasa.mavenhelper.action;

import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.util.NlsActions;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;

import javax.swing.*;

public abstract class MyAnAction extends DumbAwareAction {

public MyAnAction() {
}

public MyAnAction(@Nullable @NlsActions.ActionText String text, @Nullable @NlsActions.ActionDescription String description, @Nullable Icon icon) {
super(text, description, icon);
}


public MyAnAction(@Nullable Icon icon) {
super(icon);
}

public MyAnAction(@Nullable @NlsActions.ActionText String text) {
super(text);
}


@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isEnabled(e));
p.setVisible(isVisible(e));
}

protected boolean isVisible(AnActionEvent e) {
return MavenActionUtil.isMavenizedProject(e.getDataContext());
}

protected boolean isEnabled(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext()) && MavenActionUtil.getMavenProject(e.getDataContext()) != null;
}
}
18 changes: 3 additions & 15 deletions src/main/java/krasa/mavenhelper/action/OpenTerminalAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@

import com.intellij.ide.plugins.IdeaPluginDescriptor;
import com.intellij.ide.plugins.PluginManager;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.extensions.PluginId;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;
import org.jetbrains.plugins.terminal.TerminalView;

public class OpenTerminalAction extends AnAction implements DumbAware {
public class OpenTerminalAction extends MyAnAction {

private boolean pluginEnabled;

Expand All @@ -34,18 +31,9 @@ public void actionPerformed(AnActionEvent e) {

@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isAvailable(e));
p.setVisible(isVisible(e));
}

protected boolean isAvailable(AnActionEvent e) {
return pluginEnabled && MavenActionUtil.hasProject(e.getDataContext());
}

protected boolean isVisible(AnActionEvent e) {
return pluginEnabled && MavenActionUtil.getMavenProject(e.getDataContext()) != null;
p.setEnabled(pluginEnabled && isEnabled(e));
p.setVisible(pluginEnabled && isVisible(e));
}

private boolean isPluginEnabled() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.execution.MavenGoalLocation;
import org.jetbrains.idea.maven.project.MavenProject;
import org.jetbrains.idea.maven.utils.actions.MavenActionUtil;

import javax.swing.*;
Expand Down Expand Up @@ -66,21 +65,21 @@ protected AnAction createGoalRunAction(Goal goal, final Icon icon, boolean plugi
}
}

@Override
public @NotNull ActionUpdateThread getActionUpdateThread() {
return ActionUpdateThread.BGT; //MavenActionUtil.getMavenProject(e.getDataContext()) does not work on EDT
}

@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isAvailable(e));
p.setVisible(isVisible(e));
}

protected boolean isAvailable(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext());
p.setEnabled(isEnabled(e));
p.setVisible(MavenActionUtil.isMavenizedProject(e.getDataContext()));
}

protected boolean isVisible(AnActionEvent e) {
MavenProject mavenProject = MavenActionUtil.getMavenProject(e.getDataContext()); //todo does not work
return mavenProject != null;
private boolean isEnabled(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext()) && MavenActionUtil.getMavenProject(e.getDataContext()) != null;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package krasa.mavenhelper.action;

import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.project.Project;
Expand Down Expand Up @@ -37,13 +39,6 @@ protected AnAction createGoalRunAction(Goal goal, final Icon icon, boolean plugi
}
}

@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isAvailable(e));
p.setVisible(isVisible(e));
}

@Override
protected JBPopupFactory.ActionSelectionAid getAidMethod() {
Expand Down
21 changes: 6 additions & 15 deletions src/main/java/krasa/mavenhelper/action/RunGoalAction.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package krasa.mavenhelper.action;

import com.intellij.execution.actions.ConfigurationContext;
import com.intellij.openapi.actionSystem.*;
import com.intellij.openapi.project.DumbAware;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiFile;
import krasa.mavenhelper.model.ApplicationSettings;
Expand All @@ -15,7 +16,7 @@
import javax.swing.*;
import java.util.List;

public class RunGoalAction extends AnAction implements DumbAware {
public class RunGoalAction extends MyAnAction {

private final Goal goal;
@Nullable
Expand Down Expand Up @@ -67,18 +68,8 @@ protected void run(MavenRunnerParameters params, Project project) {
}

@Override
public void update(AnActionEvent e) {
super.update(e);
Presentation p = e.getPresentation();
p.setEnabled(isAvailable(e) && isVisible(e));
// p.setVisible(isVisible(e));
}

protected boolean isAvailable(AnActionEvent e) {
return MavenActionUtil.hasProject(e.getDataContext());
}

protected boolean isVisible(AnActionEvent e) {
protected boolean isEnabled(AnActionEvent e) {
return MavenProjectInfo.get(mavenProject, e).mavenProject != null;
}

}
5 changes: 5 additions & 0 deletions src/main/java/krasa/mavenhelper/action/RunTestFileAction.java
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,11 @@ public void update(AnActionEvent e) {
p.setVisible(false);
return;
}
if (!MavenActionUtil.isMavenizedProject(e.getDataContext())) {
Presentation p = e.getPresentation();
p.setVisible(false);
return;
}

//TODO #71 perhaps by com.intellij.execution.actions.BaseRunConfigurationAction.fullUpdate
PsiFile psiFile = PlatformDataKeys.PSI_FILE.getData(e.getDataContext());
Expand Down
4 changes: 2 additions & 2 deletions src/main/resources/META-INF/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<id>MavenRunHelper</id>
<name>Maven Helper</name>
<version>4.21.213.3714.0</version>
<version>4.21.222.2964.0</version>

<vendor url="https://github.com/krasa/MavenHelper" email="[email protected]">Vojtech Krasa</vendor>

Expand Down Expand Up @@ -140,7 +140,7 @@
]]>
</change-notes>

<idea-version since-build="213.3714.440"/>
<idea-version since-build="222.2964.55"/>

<application-components>
</application-components>
Expand Down

0 comments on commit 7b7c698

Please sign in to comment.