package jetbrains.mps.ide.newModuleDialogs; /*Generated by MPS */ import jetbrains.mps.smodel.Language; import org.apache.log4j.Logger; import org.apache.log4j.LogManager; import jetbrains.mps.project.MPSProject; import org.jetbrains.annotations.Nullable; import jetbrains.mps.ide.newSolutionDialog.NewModuleUtil; import jetbrains.mps.project.StandaloneMPSProject; import jetbrains.mps.ide.ui.dialogs.modules.NewLanguageSettings; import jetbrains.mps.project.Solution; import java.io.IOException; import org.apache.log4j.Level; import jetbrains.mps.project.MPSExtentions; public class NewLanguageDialog extends AbstractModuleCreationDialog<Language> { private static final Logger LOG = LogManager.getLogger(NewLanguageDialog.class); public NewLanguageDialog(MPSProject project, @Nullable String virtualFolder) { super(project, virtualFolder); setTitle("New Language"); init(); } @Override protected void runCreation() { // TODO: reuse runnable in DefaultLanguageProjectTemplate Language language = NewModuleUtil.createLanguage(mySettings.getModuleName(), mySettings.getModuleLocation(), (MPSProject) myProject); ((StandaloneMPSProject) myProject).setFolderFor(language, myVirtualFolder); try { if (as_xpx6i8_a0a0a5a4(mySettings, NewLanguageSettings.class).isRuntimeSolutionNeeded()) { Solution runtimeSolution = NewModuleUtil.createRuntimeSolution(language, mySettings.getModuleLocation(), (MPSProject) myProject); ((StandaloneMPSProject) myProject).setFolderFor(runtimeSolution, myVirtualFolder); language.getModuleDescriptor().getRuntimeModules().add(runtimeSolution.getModuleReference()); } if (as_xpx6i8_a0a1a5a4(mySettings, NewLanguageSettings.class).isSandBoxSolutionNeeded()) { Solution sandboxSolution = NewModuleUtil.createSandboxSolution(language, mySettings.getModuleLocation(), (MPSProject) myProject); ((StandaloneMPSProject) myProject).setFolderFor(sandboxSolution, myVirtualFolder); } } catch (IOException e) { // todo: ! if (LOG.isEnabledFor(Level.ERROR)) { LOG.error("Cannot create runtime / sandbox module", e); } } myResult = language; } @Override protected String getExtension() { return MPSExtentions.DOT_LANGUAGE; } @Override protected NewLanguageSettings createSettingsInstance() { return new NewLanguageSettings(getProjectPath()); } private static <T> T as_xpx6i8_a0a0a5a4(Object o, Class<T> type) { return (type.isInstance(o) ? (T) o : null); } private static <T> T as_xpx6i8_a0a1a5a4(Object o, Class<T> type) { return (type.isInstance(o) ? (T) o : null); } }