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.";
}
}