package jetbrains.mps.ide.ui.dialogs.properties.creators;
/*Generated by MPS */
import jetbrains.mps.util.Computable;
import java.util.List;
import org.jetbrains.mps.openapi.model.SModelReference;
import jetbrains.mps.project.Project;
import jetbrains.mps.smodel.ModelAccessHelper;
import org.jetbrains.mps.openapi.model.SModel;
import jetbrains.mps.FilteredGlobalScope;
import jetbrains.mps.internal.collections.runtime.Sequence;
import jetbrains.mps.internal.collections.runtime.ISelector;
import jetbrains.mps.ide.ui.dialogs.properties.choosers.CommonChoosers;
import jetbrains.mps.ide.project.ProjectHelper;
public class ModelChooser implements Computable<List<SModelReference>> {
private Project myProject;
public ModelChooser(Project project) {
myProject = project;
}
@Override
public List<SModelReference> compute() {
List<SModelReference> models = new ModelAccessHelper(myProject.getModelAccess()).runReadAction(new Computable<List<SModelReference>>() {
@Override
public List<SModelReference> compute() {
Iterable<SModel> descriptors = new FilteredGlobalScope().getModels();
return Sequence.fromIterable(descriptors).select(new ISelector<SModel, SModelReference>() {
public SModelReference select(SModel it) {
return it.getReference();
}
}).toListSequence();
}
});
return CommonChoosers.showDialogModelCollectionChooser(ProjectHelper.toIdeaProject(myProject), models, null);
}
}