mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
external system: rename newly created module if it has not expected name
This commit is contained in:
+16
@@ -20,9 +20,11 @@ import com.intellij.facet.FacetModel;
|
||||
import com.intellij.facet.FacetTypeId;
|
||||
import com.intellij.facet.ModifiableFacetModel;
|
||||
import com.intellij.openapi.application.ModalityState;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.externalSystem.model.project.LibraryData;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleWithNameAlreadyExists;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.*;
|
||||
import com.intellij.openapi.roots.ex.ProjectRootManagerEx;
|
||||
@@ -33,6 +35,7 @@ import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar;
|
||||
import com.intellij.openapi.roots.ui.configuration.FacetsProvider;
|
||||
import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.packaging.artifacts.ArtifactModel;
|
||||
import com.intellij.packaging.artifacts.ModifiableArtifactModel;
|
||||
@@ -47,11 +50,14 @@ import gnu.trove.THashMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.isRelated;
|
||||
|
||||
public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProviderImpl implements IdeModifiableModelsProvider {
|
||||
private static final Logger LOG = Logger.getInstance(AbstractIdeModifiableModelsProvider.class);
|
||||
|
||||
private ModifiableModuleModel myModifiableModuleModel;
|
||||
private Map<Module, ModifiableRootModel> myModifiableRootModels = new THashMap<Module, ModifiableRootModel>();
|
||||
private Map<Module, ModifiableFacetModel> myModifiableFacetModels = new THashMap<Module, ModifiableFacetModel>();
|
||||
@@ -108,6 +114,16 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi
|
||||
@Override
|
||||
public Module newModule(@NotNull final String filePath, final String moduleTypeId) {
|
||||
Module module = getModifiableModuleModel().newModule(filePath, moduleTypeId);
|
||||
final String moduleName = FileUtil.getNameWithoutExtension(new File(filePath));
|
||||
if (!module.getName().equals(moduleName)) {
|
||||
try {
|
||||
getModifiableModuleModel().renameModule(module, moduleName);
|
||||
}
|
||||
catch (ModuleWithNameAlreadyExists exists) {
|
||||
LOG.warn(exists);
|
||||
}
|
||||
}
|
||||
|
||||
// set module type id explicitly otherwise it can not be set if there is an existing module (with the same filePath) and w/o 'type' attribute
|
||||
module.setOption(Module.ELEMENT_TYPE, moduleTypeId);
|
||||
return module;
|
||||
|
||||
-10
@@ -128,16 +128,6 @@ public abstract class AbstractModuleDataService<E extends ModuleData> extends Ab
|
||||
for (final DataNode<E> module : toCreate) {
|
||||
ModuleData data = module.getData();
|
||||
final Module created = modelsProvider.newModule(data.getModuleFilePath(), data.getModuleTypeId());
|
||||
final String moduleName = FileUtil.getNameWithoutExtension(new File(data.getModuleFilePath()));
|
||||
if (!created.getName().equals(moduleName)) {
|
||||
try {
|
||||
modelsProvider.getModifiableModuleModel().renameModule(created, moduleName);
|
||||
}
|
||||
catch (ModuleWithNameAlreadyExists exists) {
|
||||
LOG.warn(exists);
|
||||
}
|
||||
}
|
||||
|
||||
module.putUserData(MODULE_KEY, created);
|
||||
Set<String> orphanFiles = project.getUserData(ORPHAN_MODULE_FILES);
|
||||
if (orphanFiles != null) {
|
||||
|
||||
Reference in New Issue
Block a user