package org.netbeans.gradle.project.coverage; import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import javax.swing.Action; import org.netbeans.api.project.Project; import org.netbeans.modules.gsf.codecoverage.api.CoverageActionFactory; import org.netbeans.modules.gsf.codecoverage.api.CoverageManager; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; import org.openide.awt.ActionRegistration; import org.openide.awt.DynamicMenuContent; import org.openide.util.ContextAwareAction; import org.openide.util.Lookup; @ActionID(category="Project", id="org.netbeans.gradle.project.coverage.CoveragePopup") @ActionRegistration(displayName="Gradle Coverage", lazy=false) // NOI18N @ActionReference(path="Projects/org.netbeans.gradle.project/Actions", position=1205) public class CoveragePopup extends AbstractAction implements ContextAwareAction { private static final long serialVersionUID = 1L; public CoveragePopup() { putValue(DynamicMenuContent.HIDE_WHEN_DISABLED, true); setEnabled(false); } public @Override void actionPerformed(ActionEvent e) { assert false; } public @Override Action createContextAwareInstance(Lookup ctx) { Project p = ctx.lookup(Project.class); if (p == null) { return this; } if (!CoverageManager.INSTANCE.isEnabled(p)) { // or could show it anyway in case provider is present return this; } return ((ContextAwareAction) CoverageActionFactory.createCollectorAction(null, null)).createContextAwareInstance(ctx); } }