package jetbrains.mps.ide.devkit.actions;

/*Generated by MPS */

import jetbrains.mps.plugins.applicationplugins.BaseApplicationPlugin;
import com.intellij.openapi.extensions.PluginId;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.ide.actions.ProjectNewActions_ActionGroup;
import jetbrains.mps.ide.actions.DebugActions_ActionGroup;
import jetbrains.mps.ide.actions.LanguageNewActions_ActionGroup;
import jetbrains.mps.ide.actions.CommonModuleActions_ActionGroup;
import jetbrains.mps.ide.actions.Goto_ActionGroup;
import jetbrains.mps.ide.actions.AnalyzeModule_ActionGroup;
import jetbrains.mps.ide.actions.Tools_ActionGroup;
import jetbrains.mps.ide.actions.NamespaceNewActions_ActionGroup;
import jetbrains.mps.ide.actions.LanguageActions_ActionGroup;
import jetbrains.mps.ide.actions.DevkitActions_ActionGroup;
import jetbrains.mps.ide.actions.GeneratorActions_ActionGroup;
import jetbrains.mps.ide.actions.SolutionActions_ActionGroup;
import jetbrains.mps.ide.actions.ToolsInternal_ActionGroup;
import jetbrains.mps.ide.actions.NodeActions_ActionGroup;
import java.util.List;
import jetbrains.mps.plugins.actions.BaseKeymapChanges;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;

public class Mpsdevkit_ApplicationPlugin extends BaseApplicationPlugin {
  private final PluginId myId = PluginId.getId("jetbrains.mps.ide.mpsdevkit");

  public Mpsdevkit_ApplicationPlugin() {
  }

  @NotNull
  public PluginId getId() {
    return myId;
  }

  public void createGroups() {
    // actions w/o parameters
    addAction(new AddAccessoryModel_Action());
    addAction(new CalcSNodeStatistic_Action());
    addAction(new CellProperties_Action());
    addAction(new CreateDefaultEditor_Action());
    addAction(new DeleteGenerator_Action());
    addAction(new FindLanguageConceptsUsages_Action());
    addAction(new FindModuleUsage_Action());
    addAction(new FindRootableConceptsWithoutIcons_Action());
    addAction(new FindUnusedAndDeprecatedConcepts_Action());
    addAction(new GoToConceptDeclaration_Action());
    addAction(new GoToEditorDeclaration_Action());
    addAction(new GoToNode_Action());
    addAction(new GoToRule_Action());
    addAction(new GoToRules_Action());
    addAction(new GoToUsageInMappingConfig_Action());
    addAction(new HighlightCellDependencies_Action());
    addAction(new ImplementBehaviorMethod_Action());
    addAction(new InternalReactivateEDTExecutorQueue_Action());
    addAction(new LanguageHierarchy_Action());
    addAction(new NavigateToGeneratedCode_Action());
    addAction(new NewAccessoryModel_Action());
    addAction(new NewDevKit_Action());
    addAction(new NewGenerator_Action());
    addAction(new NewLanguage_Action());
    addAction(new NewRuntimeModule_Action());
    addAction(new OverrideBehaviorMethod_Action());
    addAction(new PrintNodeID_Action());
    addAction(new PullGeneratorUpFromLanguage_Action());
    addAction(new ReloadAll_Action());
    addAction(new ShowCellInExplorer_Action());
    addAction(new ShowEditorMenuItemTrace_Action());
    addAction(new ShowGenerationTrace_Action());
    addAction(new ShowGenerationTraceback_Action());
    addAction(new ShowNodeInExplorer_Action());
    addAction(new ShowOriginNode_Action());
    addAction(new ShowStructure_Action());
    addAction(new ShowTypeSystemTrace_Action());
    // groups
    addGroup(new AccessoriesGroupActions_ActionGroup(this));
    addGroup(new BehaviorCodeOverrideImplementMenuGroup_ActionGroup(this));
    addGroup(new Contribute2ToolsInternalA_ActionGroup(this));
    addGroup(new Contribute2ToolsInternalC_ActionGroup(this));
    addGroup(new ContributeModuleUsage_ActionGroup(this));
    addGroup(new DevKitTools_ActionGroup(this));
    addGroup(new EditorInternalEx_ActionGroup(this));
    addGroup(new FindLanguageUsages_ActionGroup(this));
    addGroup(new GenerateEditorPopup_ActionGroup(this));
    addGroup(new GenerationTraceActions_ActionGroup(this));
    addGroup(new GeneratorActions_Delete_ActionGroup(this));
    addGroup(new GotoConceptAspect_ActionGroup(this));
    addGroup(new IntentionsGroup_ActionGroup(this));
    addGroup(new LanguageActionsEx_ActionGroup(this));
    addGroup(new LanguageNewActionsEx_ActionGroup(this));
    addGroup(new LanguageNewCustomPartActions_ActionGroup(this));
    addGroup(new LanguageNewGenerator_ActionGroup(this));
    addGroup(new NamespaceNewActionsEx_ActionGroup(this));
    addGroup(new ProjectNewActionsEx_ActionGroup(this));
    addGroup(new PullGeneratorUp_Contrib_ActionGroup(this));
    addGroup(new RuntimeFolderActions_ActionGroup(this));
    addGroup(new ShowNodeIn_ActionGroup(this));
    addGroup(new StructureAdditions_ActionGroup(this));
    addGroup(new TraceActions_ActionGroup(this));
  }
  public void adjustRegularGroups() {
    insertGroupIntoAnother(GenerateEditorPopup_ActionGroup.ID, "EditorPopup_ActionGroupgoto", null);
    insertGroupIntoAnother(ProjectNewActionsEx_ActionGroup.ID, ProjectNewActions_ActionGroup.ID, ProjectNewActions_ActionGroup.LABEL_ID_languageExt);
    insertGroupIntoAnother(StructureAdditions_ActionGroup.ID, "Code_ActionGroupstructure", null);
    insertGroupIntoAnother(GenerationTraceActions_ActionGroup.ID, DebugActions_ActionGroup.ID, DebugActions_ActionGroup.LABEL_ID_generator);
    insertGroupIntoAnother(LanguageNewGenerator_ActionGroup.ID, LanguageNewActions_ActionGroup.ID, LanguageNewActions_ActionGroup.LABEL_ID_newSubModule);
    insertGroupIntoAnother(LanguageNewActionsEx_ActionGroup.ID, LanguageNewActions_ActionGroup.ID, LanguageNewActions_ActionGroup.LABEL_ID_newModel);
    insertGroupIntoAnother(BehaviorCodeOverrideImplementMenuGroup_ActionGroup.ID, "Code_ActionGroupoverrideImplement", null);
    insertGroupIntoAnother(GeneratorActions_Delete_ActionGroup.ID, CommonModuleActions_ActionGroup.ID, CommonModuleActions_ActionGroup.LABEL_ID_delete);
    insertGroupIntoAnother(GotoConceptAspect_ActionGroup.ID, Goto_ActionGroup.ID, Goto_ActionGroup.LABEL_ID_gotoConceptAspects);
    insertGroupIntoAnother(GotoConceptAspect_ActionGroup.ID, "GoToEditorPopupAddition_ActionGroupother", null);
    insertGroupIntoAnother(LanguageActionsEx_ActionGroup.ID, AnalyzeModule_ActionGroup.ID, null);
    insertGroupIntoAnother(IntentionsGroup_ActionGroup.ID, "jetbrains.mps.ide.editor.actions.ActionsAsIntentions_ActionGroup", null);
    insertGroupIntoAnother(DevKitTools_ActionGroup.ID, Tools_ActionGroup.ID, Tools_ActionGroup.LABEL_ID_devkitTools);
    insertGroupIntoAnother(EditorInternalEx_ActionGroup.ID, DebugActions_ActionGroup.ID, DebugActions_ActionGroup.LABEL_ID_editor);
    insertGroupIntoAnother(AccessoriesGroupActions_ActionGroup.ID, LanguageNewActionsEx_ActionGroup.ID, LanguageNewActionsEx_ActionGroup.LABEL_ID_accessory);
    insertGroupIntoAnother(LanguageNewCustomPartActions_ActionGroup.ID, LanguageNewActions_ActionGroup.ID, LanguageNewActions_ActionGroup.LABEL_ID_newAspect);
    insertGroupIntoAnother(NamespaceNewActionsEx_ActionGroup.ID, NamespaceNewActions_ActionGroup.ID, null);
    insertGroupIntoAnother(FindLanguageUsages_ActionGroup.ID, LanguageActions_ActionGroup.ID, LanguageActions_ActionGroup.LABEL_ID_find_usages);
    insertGroupIntoAnother(ContributeModuleUsage_ActionGroup.ID, DevkitActions_ActionGroup.ID, DevkitActions_ActionGroup.LABEL_ID_find_usages);
    insertGroupIntoAnother(ContributeModuleUsage_ActionGroup.ID, GeneratorActions_ActionGroup.ID, GeneratorActions_ActionGroup.LABEL_ID_find_usages);
    insertGroupIntoAnother(ContributeModuleUsage_ActionGroup.ID, SolutionActions_ActionGroup.ID, SolutionActions_ActionGroup.LABEL_ID_find_usages);
    insertGroupIntoAnother(PullGeneratorUp_Contrib_ActionGroup.ID, CommonModuleActions_ActionGroup.ID, CommonModuleActions_ActionGroup.LABEL_ID_refactoring);
    insertGroupIntoAnother(Contribute2ToolsInternalC_ActionGroup.ID, ToolsInternal_ActionGroup.ID, ToolsInternal_ActionGroup.LABEL_ID_C);
    insertGroupIntoAnother(Contribute2ToolsInternalA_ActionGroup.ID, ToolsInternal_ActionGroup.ID, ToolsInternal_ActionGroup.LABEL_ID_A);
    insertGroupIntoAnother(TraceActions_ActionGroup.ID, DebugActions_ActionGroup.ID, DebugActions_ActionGroup.LABEL_ID_trace);
    insertGroupIntoAnother(ShowNodeIn_ActionGroup.ID, NodeActions_ActionGroup.ID, NodeActions_ActionGroup.LABEL_ID_showIn);
    insertGroupIntoAnother(ShowNodeIn_ActionGroup.ID, "EditorPopup_ActionGroupshowIn", null);
  }
  public List<BaseKeymapChanges> initKeymaps() {
    List<BaseKeymapChanges> res = ListSequence.fromList(new ArrayList<BaseKeymapChanges>());
    ListSequence.fromList(res).addElement(new DefaultForGNOME_KeymapChanges());
    ListSequence.fromList(res).addElement(new Default_KeymapChanges());
    ListSequence.fromList(res).addElement(new MacOSX105_KeymapChanges());
    ListSequence.fromList(res).addElement(new Mac_KeymapChanges());
    ListSequence.fromList(res).addElement(new TraceActions_KeymapChanges());
    ListSequence.fromList(res).addElement(new Trace_KeymapChanges());
    return res;
  }
}
