IDEA-175047 External System: import modules dialog

This commit is contained in:
Vladislav.Soroka
2017-06-27 13:46:42 +03:00
parent 0a8fae822a
commit 9eeae05a56
3 changed files with 9 additions and 2 deletions
@@ -22,6 +22,7 @@ import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.service.execution.ProgressExecutionMode;
import com.intellij.openapi.externalSystem.service.project.manage.ExternalProjectsManager;
import com.intellij.openapi.project.Project;
import com.intellij.util.SystemProperties;
import com.intellij.util.containers.ContainerUtilRt;
import com.intellij.util.messages.Topic;
import org.jetbrains.annotations.NotNull;
@@ -69,6 +70,10 @@ public abstract class AbstractExternalSystemSettings<
return myProject;
}
public boolean showSelectiveImportDialogOnInitialImport() {
return SystemProperties.is("external.system.show.selective.import.dialog");
}
/**
* Every time particular external system setting is changed corresponding message is sent via ide
* <a href="https://confluence.jetbrains.com/display/IDEADEV/IntelliJ+IDEA+Messaging+infrastructure">messaging sub-system</a>.
@@ -183,7 +183,7 @@ public abstract class AbstractExternalProjectImportBuilder<C extends AbstractImp
systemSettings.setLinkedProjectsSettings(projects);
if (externalProjectNode != null) {
if(!ApplicationManager.getApplication().isHeadlessEnvironment()) {
if (systemSettings.showSelectiveImportDialogOnInitialImport() && !ApplicationManager.getApplication().isHeadlessEnvironment()) {
ExternalProjectDataSelectorDialog dialog = new ExternalProjectDataSelectorDialog(
project, new InternalExternalProjectInfo(myExternalSystemId, projectSettings.getExternalProjectPath(), externalProjectNode));
if (dialog.hasMultipleDataToSelect()) {
@@ -41,6 +41,7 @@ import icons.GradleIcons;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.service.settings.ImportFromGradleControl;
import org.jetbrains.plugins.gradle.settings.GradleSettings;
import org.jetbrains.plugins.gradle.util.GradleBundle;
import org.jetbrains.plugins.gradle.util.GradleConstants;
@@ -113,7 +114,8 @@ public class GradleProjectImportBuilder extends AbstractExternalProjectImportBui
Runnable importTask = () -> ServiceManager.getService(ProjectDataManager.class).importData(externalProject, project, false);
if (!ApplicationManager.getApplication().isHeadlessEnvironment()) {
boolean showSelectiveImportDialog = GradleSettings.getInstance(project).showSelectiveImportDialogOnInitialImport();
if (showSelectiveImportDialog && !ApplicationManager.getApplication().isHeadlessEnvironment()) {
ApplicationManager.getApplication().invokeLater(() -> {
selectDataTask.run();
ApplicationManager.getApplication().executeOnPooledThread(importTask);