public static void updateRunConfigurationActions(Project project, ProjectSystemId systemId) {
    final AbstractExternalSystemTaskConfigurationType configurationType =
        ExternalSystemUtil.findConfigurationType(systemId);
    if (configurationType == null) return;

    ActionManager actionManager = ActionManager.getInstance();
    for (String eachAction : actionManager.getActionIds(getActionPrefix(project, null))) {
      AnAction action = actionManager.getAction(eachAction);
      if (action instanceof ExternalSystemRunConfigurationAction) {
        actionManager.unregisterAction(eachAction);
      }
    }

    Set<RunnerAndConfigurationSettings> settings =
        new THashSet<RunnerAndConfigurationSettings>(
            RunManager.getInstance(project).getConfigurationSettingsList(configurationType));

    final ExternalSystemShortcutsManager shortcutsManager =
        ExternalProjectsManager.getInstance(project).getShortcutsManager();
    for (RunnerAndConfigurationSettings configurationSettings : settings) {
      ExternalSystemRunConfigurationAction runConfigurationAction =
          new ExternalSystemRunConfigurationAction(project, configurationSettings);
      String id = runConfigurationAction.getId();
      actionManager.unregisterAction(id);
      if (shortcutsManager.hasShortcuts(id)) {
        actionManager.registerAction(id, runConfigurationAction);
      }
    }
  }
 public static void clearActions(Project project) {
   ActionManager manager = ActionManager.getInstance();
   if (manager != null) {
     for (String each : manager.getActionIds(getActionPrefix(project, null))) {
       manager.unregisterAction(each);
     }
   }
 }
 public static ExternalSystemAction getOrRegisterAction(
     Project project, RunnerAndConfigurationSettings configurationSettings) {
   ActionManager manager = ActionManager.getInstance();
   ExternalSystemRunConfigurationAction runConfigurationAction =
       new ExternalSystemRunConfigurationAction(project, configurationSettings);
   String id = runConfigurationAction.getId();
   manager.unregisterAction(id);
   manager.registerAction(id, runConfigurationAction);
   return runConfigurationAction;
 }
 private static void unregisterAction(String actionId, String groupId) {
   ActionManager actionManager = ActionManager.getInstance();
   AnAction action = actionManager.getAction(actionId);
   if (action != null) {
     AnAction actionGroup = actionManager.getAction(groupId);
     if (actionGroup != null && actionGroup instanceof DefaultActionGroup) {
       ((DefaultActionGroup) actionGroup).remove(action);
       actionManager.unregisterAction(actionId);
     }
   }
 }
 public static ExternalSystemAction getOrRegisterAction(
     Project project, String group, TaskData taskData) {
   ExternalSystemTaskAction action = new ExternalSystemTaskAction(project, group, taskData);
   ActionManager manager = ActionManager.getInstance();
   AnAction anAction = manager.getAction(action.getId());
   if (anAction instanceof ExternalSystemTaskAction && action.equals(anAction)) {
     return (ExternalSystemAction) anAction;
   }
   manager.unregisterAction(action.getId());
   manager.registerAction(action.getId(), action);
   return action;
 }
 public static void clearActions(Project project, Collection<DataNode<TaskData>> taskData) {
   ActionManager actionManager = ActionManager.getInstance();
   if (actionManager != null) {
     for (DataNode<TaskData> each : taskData) {
       for (String eachAction :
           actionManager.getActionIds(
               getActionPrefix(project, each.getData().getLinkedExternalProjectPath()))) {
         AnAction action = actionManager.getAction(eachAction);
         if (!(action instanceof ExternalSystemRunConfigurationAction)) {
           actionManager.unregisterAction(eachAction);
         }
       }
     }
   }
 }
 private static void createActions(Project project, Collection<DataNode<TaskData>> taskNodes) {
   ActionManager actionManager = ActionManager.getInstance();
   final ExternalSystemShortcutsManager shortcutsManager =
       ExternalProjectsManager.getInstance(project).getShortcutsManager();
   if (actionManager != null) {
     for (DataNode<TaskData> each : taskNodes) {
       final DataNode<ModuleData> moduleData =
           ExternalSystemApiUtil.findParent(each, ProjectKeys.MODULE);
       if (moduleData == null || moduleData.isIgnored()) continue;
       TaskData taskData = each.getData();
       ExternalSystemTaskAction eachAction =
           new ExternalSystemTaskAction(project, moduleData.getData().getInternalName(), taskData);
       actionManager.unregisterAction(eachAction.getId());
       if (shortcutsManager.hasShortcuts(
           taskData.getLinkedExternalProjectPath(), taskData.getName())) {
         actionManager.registerAction(eachAction.getId(), eachAction);
       }
     }
   }
 }