package jetbrains.mps.build.mps.pluginSolution.plugin; /*Generated by MPS */ import org.jetbrains.mps.openapi.module.SModule; import jetbrains.mps.project.Project; import jetbrains.mps.project.MPSProject; import jetbrains.mps.project.Solution; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.IWhereFilter; import jetbrains.mps.internal.collections.runtime.ISelector; public class SolutionStep extends TwoOptionsStep<SModule> { private final Project myMpsProject; public SolutionStep(Project project, AbstractBuildGenerator generator, IErrorHandler handler) { super(((MPSProject) project).getProject(), generator, handler); this.myMpsProject = project; } @Override public String getDescription() { return "Select a solution to create a new build script."; } @Override protected void setChecked(boolean checked) { this.myGenerator.setCreateSolution(checked); } @Override protected boolean getChecked() { return this.myGenerator.getCreateSolution(); } @Override protected String getComboBoxName() { return "Use existing solution:"; } @Override protected String getVariantName(final SModule module) { return module.toString(); } @Override protected String getTextFieldText() { return this.myGenerator.getNewSolutionName(); } @Override protected void setTextFieldText(String text) { this.myGenerator.setNewSolutionName(text); } @Override protected String getCheckBoxName() { return "Create new solution"; } @Override protected void setVariant(SModule m) { this.myGenerator.setSolution((Solution) m); } @Override protected String getTextFieldName() { return "New solution name:"; } @Override protected SModule[] getVariants() { return Sequence.fromIterable(((Iterable<SModule>) this.myMpsProject.getProjectModules())).where(new IWhereFilter<SModule>() { public boolean accept(SModule it) { return it instanceof Solution; } }).select(new ISelector<SModule, SModule>() { public SModule select(SModule it) { return it; } }).toGenericArray(SModule.class); } @Override protected boolean isCheckBoxEnabled() { return true; } @Override protected boolean isValid(String text) { return this.myGenerator.isValidSolutionName(text); } @Override protected String getWarningText(String text) { if (text.equals("")) { return "Empty solution name not allowed."; } return "Module " + text + " already exists, choose another name."; } }