import com.intellij.ui.CheckBoxList;
import com.intellij.ui.IdeBorderFactory;
import com.intellij.ui.components.JBScrollPane;
-import com.intellij.util.*;
+import com.intellij.util.ArrayUtil;
+import com.intellij.util.Consumer;
+import com.intellij.util.Function;
+import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.ContainerUtilRt;
import org.jetbrains.annotations.NotNull;
if (!toCreate.isEmpty()) {
createModules(toCreate, modelsProvider, project);
}
+
for (DataNode<E> node : toImport) {
Module module = node.getUserData(MODULE_KEY);
if (module != null) {
setModuleOptions(module, node);
-
- final ModifiableModuleModel modifiableModel = modelsProvider.getModifiableModuleModel();
- modifiableModel.setModuleGroupPath(module, node.getData().getIdeModuleGroup());
ModifiableRootModel modifiableRootModel = modelsProvider.getModifiableRootModel(module);
syncPaths(module, modifiableRootModel, node.getData());
setLanguageLevel(modifiableRootModel, node.getData());
}
}
+
+ final boolean isOneToOneMapping = projectData != null && ExternalSystemApiUtil.isOneToOneMapping(project, projectData);
+ for (DataNode<E> node : toImport) {
+ Module module = node.getUserData(MODULE_KEY);
+ if (module != null) {
+ final String[] groupPath;
+ if (isOneToOneMapping || projectData == null) {
+ groupPath = node.getData().getIdeModuleGroup();
+ }
+ else {
+ final String externalProjectGroup = projectData.getInternalName() + " modules";
+ groupPath = node.getData().getIdeModuleGroup() == null
+ ? new String[]{externalProjectGroup}
+ : ArrayUtil.prepend(externalProjectGroup, node.getData().getIdeModuleGroup());
+ }
+ final ModifiableModuleModel modifiableModel = modelsProvider.getModifiableModuleModel();
+ modifiableModel.setModuleGroupPath(module, groupPath);
+ }
+ }
}
private void createModules(@NotNull Collection<DataNode<E>> toCreate,
ModuleData data = module.getData();
final Module created = modelsProvider.newModule(data.getModuleFilePath(), data.getModuleTypeId());
module.putUserData(MODULE_KEY, created);
+ String productionModuleId = data.getProductionModuleId();
+ if (productionModuleId != null) {
+ modelsProvider.setTestModuleProperties(created, productionModuleId);
+ }
Set<String> orphanFiles = project.getUserData(ORPHAN_MODULE_FILES);
- if(orphanFiles != null) {
+ if (orphanFiles != null) {
orphanFiles.remove(created.getModuleFilePath());
}
@Override
public void onSuccessImport(@NotNull Project project) {
final Set<String> orphanFiles = project.getUserData(ORPHAN_MODULE_FILES);
- if(orphanFiles != null && !orphanFiles.isEmpty()) {
+ if (orphanFiles != null && !orphanFiles.isEmpty()) {
ExternalSystemApiUtil.executeOnEdt(false, new Runnable() {
@Override
public void run() {