package jetbrains.mps.migration.workbench.plugin;

/*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.ToolsInternal_ActionGroup;

public class Workbench_ApplicationPlugin extends BaseApplicationPlugin {
  private final PluginId myId = PluginId.getId("jetbrains.mps.migration.workbench");

  public Workbench_ApplicationPlugin() {
  }

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

  public void createGroups() {
    // actions w/o parameters
    addAction(new ExecuteRerunnableMigrations_Action());
    addAction(new FindDeprecatedCodeWithNoUsages_Action());
    addAction(new FindDeprecatedCode_Action());
    addAction(new FindUsagesOfDeprecated_Action());
    addAction(new RunMigrationAssistant_Action());
    addAction(new RunPreUpdateCheck_Action());
    addAction(new TestMigrationWizard_Action());
    // groups
    addGroup(new LanguageMigrations_ActionGroup(this));
    addGroup(new MigrationsMenuLegacyCode_ActionGroup(this));
    addGroup(new MigrationsMenu_ActionGroup(this));
    addGroup(new Migrations_ActionGroup(this));
    addGroup(new ProjectMigrations_ActionGroup(this));
    addGroup(new ToolsInternalAddition_ActionGroup(this));
  }
  public void adjustInterfaceGroups() {
  }
  public void adjustRegularGroups() {
    insertGroupIntoAnother(LanguageMigrations_ActionGroup.ID, Migrations_ActionGroup.ID, Migrations_ActionGroup.LABEL_ID_languageMigrations);
    insertGroupIntoAnother(ProjectMigrations_ActionGroup.ID, Migrations_ActionGroup.ID, Migrations_ActionGroup.LABEL_ID_projectMigrations);
    insertGroupIntoAnother(MigrationsMenu_ActionGroup.ID, "Migration", null);
    insertGroupIntoAnother(Migrations_ActionGroup.ID, MigrationsMenu_ActionGroup.ID, MigrationsMenu_ActionGroup.LABEL_ID_migrations);
    insertGroupIntoAnother(ToolsInternalAddition_ActionGroup.ID, ToolsInternal_ActionGroup.ID, null);
  }
}
