package com.github.masahirosuzuka.PhoneGapIntelliJPlugin.ProjectImporter; import com.github.masahirosuzuka.PhoneGapIntelliJPlugin.icons.PhoneGapIcons; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; import com.intellij.openapi.module.ModuleManager; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import com.intellij.packaging.artifacts.ModifiableArtifactModel; import com.intellij.projectImport.ProjectImportBuilder; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.util.ArrayList; import java.util.List; /** * PhoneGapProjectImportBuilder.java * * Created by Masahiro Suzuka on 2014/04/08. */ public class PhoneGapProjectImportBuilder extends ProjectImportBuilder { @NotNull @Override public String getName() { return "PhoneGap/Cordova"; } @Override public Icon getIcon() { return PhoneGapIcons.get13pxIcon(); } @Override public List getList() { return null; } @Override public boolean isMarked(Object o) { return false; } @Override public void setList(List list) throws ConfigurationException { } @Override public void setOpenProjectSettingsAfter(boolean b) { } @Nullable @Override public List<Module> commit(Project project, ModifiableModuleModel modifiableModuleModel, ModulesProvider modulesProvider, ModifiableArtifactModel modifiableArtifactModel) { List<Module> result = new ArrayList<Module>(); final ModifiableModuleModel model = ModuleManager.getInstance(project).getModifiableModel(); Module module = model.newModule(project.getBasePath() + "/" + "phonegap.iml", "WEB_MODULE"); ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { model.commit(); } }); result.add(module); final ModifiableRootModel rootModel = ModuleRootManager.getInstance(module).getModifiableModel(); rootModel.addContentEntry("file://" + project.getBasePath()); ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { rootModel.commit(); } }); return result; } }