package jetbrains.mps.ide.devkit.actions; /*Generated by MPS */ import jetbrains.mps.workbench.action.BaseAction; import javax.swing.Icon; import com.intellij.openapi.actionSystem.AnActionEvent; import java.util.Map; import jetbrains.mps.ide.actions.MPSCommonDataKeys; import jetbrains.mps.smodel.Generator; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.SModelStereotype; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import org.jetbrains.annotations.NotNull; import com.intellij.openapi.project.Project; import com.intellij.openapi.actionSystem.CommonDataKeys; import org.jetbrains.mps.openapi.module.SModule; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.ide.findusages.findalgorithm.finders.specific.MappingConfigFinder; import jetbrains.mps.ide.findusages.view.UsageToolOptions; import jetbrains.mps.ide.findusages.view.UsagesViewTool; import jetbrains.mps.ide.findusages.view.FindUtils; import jetbrains.mps.ide.findusages.model.SearchQuery; public class GoToUsageInMappingConfig_Action extends BaseAction { private static final Icon ICON = null; public GoToUsageInMappingConfig_Action() { super("Go to Mapping Config", "", ICON); this.setIsAlwaysVisible(false); this.setExecuteOutsideCommand(false); } @Override public boolean isDumbAware() { return true; } @Override public boolean isApplicable(AnActionEvent event, final Map<String, Object> _params) { if (!(event.getData(MPSCommonDataKeys.CONTEXT_MODULE) instanceof Generator)) { return false; } if (SNodeOperations.getModel(event.getData(MPSCommonDataKeys.NODE)) == null || !(SModelStereotype.isGeneratorModel(SNodeOperations.getModel(event.getData(MPSCommonDataKeys.NODE))))) { return false; } if ((SNodeOperations.getContainingRoot(event.getData(MPSCommonDataKeys.NODE)) == null)) { return false; } if (SNodeOperations.isInstanceOf(SNodeOperations.getContainingRoot(event.getData(MPSCommonDataKeys.NODE)), MetaAdapterFactory.getConcept(0xb401a68083254110L, 0x8fd384331ff25befL, 0xff0bea0475L, "jetbrains.mps.lang.generator.structure.MappingConfiguration"))) { return false; } return true; } @Override public void doUpdate(@NotNull AnActionEvent event, final Map<String, Object> _params) { this.setEnabledState(event.getPresentation(), this.isApplicable(event, _params)); } @Override protected boolean collectActionData(AnActionEvent event, final Map<String, Object> _params) { if (!(super.collectActionData(event, _params))) { return false; } { Project p = event.getData(CommonDataKeys.PROJECT); if (p == null) { return false; } } { SModule p = event.getData(MPSCommonDataKeys.CONTEXT_MODULE); if (p == null) { return false; } } { SNode node = event.getData(MPSCommonDataKeys.NODE); if (node == null) { return false; } } return true; } @Override public void doExecute(@NotNull final AnActionEvent event, final Map<String, Object> _params) { MappingConfigFinder finder = new MappingConfigFinder(((Generator) event.getData(MPSCommonDataKeys.CONTEXT_MODULE)), SNodeOperations.getContainingRoot(event.getData(MPSCommonDataKeys.NODE))); UsageToolOptions opt = new UsageToolOptions().allowRunAgain(false).navigateIfSingle(true).forceNewTab(false); UsagesViewTool.showUsages(event.getData(CommonDataKeys.PROJECT), FindUtils.makeProvider(finder), new SearchQuery(null), opt); } }