package jetbrains.mps.lang.script.pluginSolution.plugin; /*Generated by MPS */ import java.util.List; import jetbrains.mps.smodel.Language; import org.jetbrains.mps.openapi.model.SNode; import jetbrains.mps.project.MPSProject; import jetbrains.mps.internal.collections.runtime.ListSequence; import java.util.ArrayList; import jetbrains.mps.smodel.ModuleRepositoryFacade; import java.util.Comparator; import jetbrains.mps.ide.script.plugin.ScriptsActionGroupHelper; import jetbrains.mps.workbench.action.BaseGroup; /*package*/ final class ScriptsMenuBuilder { private boolean applyToSelection; private List<Language> allLanguages; private List<SNode> allScripts; public ScriptsMenuBuilder(MPSProject mpsProject, boolean applyToSelection) { this.applyToSelection = applyToSelection; this.allLanguages = ListSequence.fromListWithValues(new ArrayList<Language>(), ModuleRepositoryFacade.getInstance().getAllModules(Language.class)); ListSequence.fromList(this.allLanguages).sort(new Comparator<Language>() { public int compare(Language l1, Language l2) { return l1.getModuleName().compareTo(l2.getModuleName()); } }, true); this.allScripts = ScriptsActionGroupHelper.getMigrationScripts(this.allLanguages); } public BaseGroup create_ByCategoryPopup() { BaseGroup byCategoryGroup = new BaseGroup("By Category"); byCategoryGroup.setPopup(true); ScriptsActionGroupHelper.populateByCategoryGroup(this.allScripts, byCategoryGroup, this.applyToSelection); return byCategoryGroup; } /*package*/ boolean isSelectionOnly() { return applyToSelection; } public List<SNode> getAllScripts() { return this.allScripts; } }