[auto-import] removed auto-import check box

GitOrigin-RevId: 3459e79f831aeb49738f9e0c7a880b19674b015d
This commit is contained in:
Sergei Vorobyov
2019-11-29 17:10:20 +03:00
committed by intellij-monorepo-bot
parent 48366b0e87
commit cf89d3392c
23 changed files with 91 additions and 207 deletions

View File

@@ -19,6 +19,7 @@ import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.service.execution.ProgressExecutionMode;
import com.intellij.openapi.externalSystem.service.project.ExternalProjectRefreshCallback;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -38,7 +39,12 @@ public interface ImportSpec {
boolean isForceWhenUptodate();
boolean whenAutoImportEnabled();
/**
* @deprecated see {@link com.intellij.openapi.externalSystem.settings.ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
default boolean whenAutoImportEnabled() { return false; }
@Nullable
ExternalProjectRefreshCallback getCallback();

View File

@@ -22,7 +22,6 @@ public class ImportSpecBuilder {
@NotNull private final ProjectSystemId myExternalSystemId;
@NotNull private ProgressExecutionMode myProgressExecutionMode;
private boolean myForceWhenUptodate;
private boolean myWhenAutoImportEnabled;
@Nullable private ExternalProjectRefreshCallback myCallback;
private boolean isPreviewMode;
private boolean isReportRefreshError = true;
@@ -42,8 +41,12 @@ public class ImportSpecBuilder {
apply(importSpec);
}
/**
* @deprecated see {@link com.intellij.openapi.externalSystem.settings.ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public ImportSpecBuilder whenAutoImportEnabled() {
myWhenAutoImportEnabled = true;
return this;
}
@@ -109,7 +112,6 @@ public class ImportSpecBuilder {
public ImportSpec build() {
ImportSpecImpl mySpec = new ImportSpecImpl(myProject, myExternalSystemId);
mySpec.setWhenAutoImportEnabled(myWhenAutoImportEnabled);
mySpec.setProgressExecutionMode(myProgressExecutionMode);
mySpec.setForceWhenUptodate(myForceWhenUptodate);
mySpec.setCreateDirectoriesForEmptyContentRoots(myCreateDirectoriesForEmptyContentRoots);
@@ -123,7 +125,6 @@ public class ImportSpecBuilder {
}
private void apply(ImportSpec spec) {
myWhenAutoImportEnabled = spec.whenAutoImportEnabled();
myProgressExecutionMode = spec.getProgressExecutionMode();
myForceWhenUptodate = spec.isForceWhenUptodate();
myCreateDirectoriesForEmptyContentRoots = spec.shouldCreateDirectoriesForEmptyContentRoots();

View File

@@ -32,7 +32,6 @@ public class ImportSpecImpl implements ImportSpec {
@NotNull private final ProjectSystemId myExternalSystemId;
@NotNull private ProgressExecutionMode myProgressExecutionMode;
private boolean forceWhenUptodate;
private boolean whenAutoImportEnabled;
@Nullable private ExternalProjectRefreshCallback myCallback;
private boolean isPreviewMode;
private boolean createDirectoriesForEmptyContentRoots;
@@ -78,14 +77,12 @@ public class ImportSpecImpl implements ImportSpec {
this.forceWhenUptodate = forceWhenUptodate;
}
@Override
public boolean whenAutoImportEnabled() {
return whenAutoImportEnabled;
}
public void setWhenAutoImportEnabled(boolean whenAutoImportEnabled) {
this.whenAutoImportEnabled = whenAutoImportEnabled;
}
/**
* @deprecated see {@link com.intellij.openapi.externalSystem.settings.ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public void setWhenAutoImportEnabled(boolean whenAutoImportEnabled) { }
public void setCallback(@Nullable ExternalProjectRefreshCallback callback) {
myCallback = callback;

View File

@@ -172,12 +172,6 @@ public abstract class AbstractExternalSystemSettings<
added.add(current);
}
else {
if (current.isUseAutoImport() != old.isUseAutoImport()) {
if (listener != null) {
listener.onUseAutoImportChange(current.isUseAutoImport(), current.getExternalProjectPath());
}
getPublisher().onUseAutoImportChange(current.isUseAutoImport(), current.getExternalProjectPath());
}
checkSettings(old, current);
}
}

View File

@@ -46,11 +46,6 @@ public class DelegatingExternalSystemSettingsListener<S extends ExternalProjectS
myDelegate.onProjectsUnlinked(linkedProjectPaths);
}
@Override
public void onUseAutoImportChange(boolean currentValue, @NotNull String linkedProjectPath) {
myDelegate.onUseAutoImportChange(currentValue, linkedProjectPath);
}
@Override
public void onBulkChangeStart() {
myDelegate.onBulkChangeStart();

View File

@@ -1,7 +1,9 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.externalSystem.settings;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -19,7 +21,9 @@ import static com.intellij.util.PlatformUtils.isIntelliJ;
*/
public abstract class ExternalProjectSettings implements Comparable<ExternalProjectSettings>, Cloneable {
private String myExternalProjectPath;
private static Logger LOG = Logger.getInstance("#com.intellij.openapi.externalSystem.autoimport");
private String myExternalProjectPath;
@Nullable private Set<String> myModules = new HashSet<>();
@NotNull
@@ -31,7 +35,6 @@ public abstract class ExternalProjectSettings implements Comparable<ExternalProj
this.myModules = modules;
}
private boolean myUseAutoImport;
private boolean myUseQualifiedModuleNames = !isIntelliJ() && !"AndroidStudio".equals(getPlatformPrefix()); // backward-compatible defaults
/**
@@ -54,12 +57,23 @@ public abstract class ExternalProjectSettings implements Comparable<ExternalProj
myExternalProjectPath = externalProjectPath;
}
/**
* @deprecated see {@link ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public boolean isUseAutoImport() {
return myUseAutoImport;
return true;
}
public void setUseAutoImport(boolean useAutoImport) {
myUseAutoImport = useAutoImport;
/**
* @deprecated Auto-import cannot be disabled
* @see com.intellij.openapi.externalSystem.autoimport.ExternalSystemProjectTracker for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public void setUseAutoImport(@SuppressWarnings("unused") boolean useAutoImport) {
LOG.error("Auto-import cannot be disabled");
}
/**
@@ -118,7 +132,6 @@ public abstract class ExternalProjectSettings implements Comparable<ExternalProj
protected void copyTo(@NotNull ExternalProjectSettings receiver) {
receiver.myExternalProjectPath = myExternalProjectPath;
receiver.myModules = myModules != null ? new HashSet<>(myModules) : new HashSet<>();
receiver.myUseAutoImport = myUseAutoImport;
receiver.myCreateEmptyContentRootDirectories = myCreateEmptyContentRootDirectories;
receiver.myUseQualifiedModuleNames = myUseQualifiedModuleNames;
}

View File

@@ -32,17 +32,21 @@ public interface ExternalSystemSettingsListener<S extends ExternalProjectSetting
/**
* This method is present here only because IJ platform doesn't has corresponding messaging set up for 'project rename' event.
*
*
* @param oldName old project name
* @param newName new project name
*/
void onProjectRenamed(@NotNull String oldName, @NotNull String newName);
void onProjectsLinked(@NotNull Collection<S> settings);
void onProjectsUnlinked(@NotNull Set<String> linkedProjectPaths);
void onUseAutoImportChange(boolean currentValue, @NotNull String linkedProjectPath);
/**
* @deprecated see {@link ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
default void onUseAutoImportChange(boolean currentValue, @NotNull String linkedProjectPath) {}
/**
* External system settings changes might affect project structure, e.g. switching from one external system version to another

View File

@@ -37,10 +37,6 @@ public abstract class ExternalSystemSettingsListenerAdapter<S extends ExternalPr
public void onProjectsUnlinked(@NotNull Set<String> linkedProjectPaths) {
}
@Override
public void onUseAutoImportChange(boolean currentValue, @NotNull String linkedProjectPath) {
}
@Override
public void onBulkChangeStart() {
}

View File

@@ -1,73 +0,0 @@
// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.externalSystem.action;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.externalSystem.model.ExternalSystemDataKeys;
import com.intellij.openapi.externalSystem.model.ProjectSystemId;
import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemSettings;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.statistics.ExternalSystemActionsCollector;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle;
import com.intellij.openapi.externalSystem.view.ProjectNode;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author Vladislav.Soroka
*/
public class ToggleAutoImportAction extends ExternalSystemToggleAction {
public ToggleAutoImportAction() {
getTemplatePresentation().setText(ExternalSystemBundle.message("action.refresh.project.auto.text"));
getTemplatePresentation().setDescription(ExternalSystemBundle.message("action.refresh.project.auto.description"));
}
@Override
protected boolean isEnabled(@NotNull AnActionEvent e) {
if (!super.isEnabled(e)) return false;
if (getSystemId(e) == null) return false;
return e.getData(ExternalSystemDataKeys.SELECTED_PROJECT_NODE) != null;
}
@Override
protected boolean isVisible(@NotNull AnActionEvent e) {
if (!super.isVisible(e)) return false;
if (getSystemId(e) == null) return false;
return e.getData(ExternalSystemDataKeys.SELECTED_PROJECT_NODE) != null;
}
@Override
protected boolean doIsSelected(@NotNull AnActionEvent e) {
final ExternalProjectSettings projectSettings = getProjectSettings(e);
return projectSettings != null && projectSettings.isUseAutoImport();
}
@Override
public void setSelected(@NotNull AnActionEvent e, boolean state) {
final ExternalProjectSettings projectSettings = getProjectSettings(e);
if (projectSettings != null) {
if (state != projectSettings.isUseAutoImport()) {
Project project = getProject(e);
ProjectSystemId systemId = getSystemId(e);
ExternalSystemActionsCollector.trigger(project, systemId, this, e);
projectSettings.setUseAutoImport(state);
ExternalSystemApiUtil.getSettings(project, systemId).getPublisher()
.onUseAutoImportChange(state, projectSettings.getExternalProjectPath());
}
}
}
@Nullable
private ExternalProjectSettings getProjectSettings(@NotNull AnActionEvent e) {
final ProjectNode projectNode = e.getData(ExternalSystemDataKeys.SELECTED_PROJECT_NODE);
if (projectNode == null || projectNode.getData() == null) return null;
final AbstractExternalSystemSettings externalSystemSettings = ExternalSystemApiUtil.getSettings(getProject(e), getSystemId(e));
return externalSystemSettings.getLinkedProjectSettings(projectNode.getData().getLinkedExternalProjectPath());
}
}

View File

@@ -17,41 +17,44 @@ package com.intellij.openapi.externalSystem.service.settings;
import com.intellij.ide.util.projectWizard.WizardContext;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.util.ExternalSystemBundle;
import com.intellij.openapi.externalSystem.util.ExternalSystemSettingsControl;
import com.intellij.openapi.externalSystem.util.ExternalSystemUiUtil;
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
import com.intellij.openapi.project.Project;
import com.intellij.ui.components.JBCheckBox;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Templates class for managing single external project settings (single ide project might contain multiple bindings to external
* projects, e.g. one module is backed by a single external project and couple of others are backed by a single external multi-project).
*
*
* @author Denis Zhdanov
*/
public abstract class AbstractExternalProjectSettingsControl<S extends ExternalProjectSettings>
extends AbstractSettingsControl
implements ExternalSystemSettingsControl<S>
{
implements ExternalSystemSettingsControl<S> {
@NotNull private final S myInitialSettings;
@Nullable private JBCheckBox myUseAutoImportBox;
@NotNull private final ExternalSystemSettingsControlCustomizer myCustomizer;
protected AbstractExternalProjectSettingsControl(@NotNull S initialSettings) {
this(null, initialSettings, null);
this(null, initialSettings);
}
protected AbstractExternalProjectSettingsControl(@Nullable Project project, @NotNull S initialSettings) {
super(project);
myInitialSettings = initialSettings;
}
/**
* @deprecated see {@link ExternalSystemSettingsControlCustomizer} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
protected AbstractExternalProjectSettingsControl(@Nullable Project project,
@NotNull S initialSettings,
@Nullable ExternalSystemSettingsControlCustomizer controlCustomizer) {
super(project);
myInitialSettings = initialSettings;
myCustomizer = controlCustomizer == null ? new ExternalSystemSettingsControlCustomizer() : controlCustomizer;
this(project, initialSettings);
}
@NotNull
@@ -61,11 +64,6 @@ public abstract class AbstractExternalProjectSettingsControl<S extends ExternalP
@Override
public void fillUi(@NotNull PaintAwarePanel canvas, int indentLevel) {
if (!myCustomizer.isUseAutoImportBoxHidden()) {
myUseAutoImportBox = new JBCheckBox(ExternalSystemBundle.message("settings.label.use.auto.import"));
canvas.add(myUseAutoImportBox, ExternalSystemUiUtil.getFillLineConstraints(indentLevel));
}
fillExtraControls(canvas, indentLevel);
}
@@ -73,11 +71,7 @@ public abstract class AbstractExternalProjectSettingsControl<S extends ExternalP
@Override
public boolean isModified() {
boolean result = false;
if (!myCustomizer.isUseAutoImportBoxHidden() && myUseAutoImportBox != null) {
result = myUseAutoImportBox.isSelected() != getInitialSettings().isUseAutoImport();
}
return result || isExtraSettingModified();
return isExtraSettingModified();
}
protected abstract boolean isExtraSettingModified();
@@ -103,9 +97,6 @@ public abstract class AbstractExternalProjectSettingsControl<S extends ExternalP
public void reset(boolean isDefaultModuleCreation, @Nullable WizardContext wizardContext, @Nullable Project project) {
super.reset(wizardContext, project);
if (!myCustomizer.isUseAutoImportBoxHidden() && myUseAutoImportBox != null) {
myUseAutoImportBox.setSelected(getInitialSettings().isUseAutoImport());
}
resetExtraSettings(isDefaultModuleCreation, wizardContext);
}
@@ -118,10 +109,6 @@ public abstract class AbstractExternalProjectSettingsControl<S extends ExternalP
@Override
public void apply(@NotNull S settings) {
settings.setModules(myInitialSettings.getModules());
if (!myCustomizer.isUseAutoImportBoxHidden() && myUseAutoImportBox != null) {
settings.setUseAutoImport(myUseAutoImportBox.isSelected());
}
if (myInitialSettings.getExternalProjectPath() != null) {
settings.setExternalProjectPath(myInitialSettings.getExternalProjectPath());
}
@@ -141,10 +128,6 @@ public abstract class AbstractExternalProjectSettingsControl<S extends ExternalP
}
public void updateInitialSettings() {
if (!myCustomizer.isUseAutoImportBoxHidden() && myUseAutoImportBox != null) {
myInitialSettings.setUseAutoImport(myUseAutoImportBox.isSelected());
}
updateInitialExtraSettings();
}

View File

@@ -15,9 +15,14 @@
*/
package com.intellij.openapi.externalSystem.service.settings;
import org.jetbrains.annotations.ApiStatus;
/**
* @author Vladislav.Soroka
* @deprecated Useless class
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public class ExternalSystemSettingsControlCustomizer {
private boolean hideUseAutoImportBox;
@@ -27,13 +32,11 @@ public class ExternalSystemSettingsControlCustomizer {
public ExternalSystemSettingsControlCustomizer() {
}
@Deprecated
public ExternalSystemSettingsControlCustomizer(boolean hideUseAutoImportBox,
boolean hideCreateEmptyContentRootDirectoriesBox) {
this(hideUseAutoImportBox);
}
@Deprecated
public ExternalSystemSettingsControlCustomizer(boolean hideUseAutoImportBox,
boolean hideCreateEmptyContentRootDirectoriesBox,
boolean hideModulesGroupingOptionPanel) {
@@ -41,19 +44,20 @@ public class ExternalSystemSettingsControlCustomizer {
}
public ExternalSystemSettingsControlCustomizer(boolean hideUseAutoImportBox) {
this.hideUseAutoImportBox = hideUseAutoImportBox;
}
public boolean isUseAutoImportBoxHidden() {
return hideUseAutoImportBox;
}
/**
* @deprecated see {@link com.intellij.openapi.externalSystem.settings.ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
public boolean isUseAutoImportBoxHidden() {
return true;
}
public boolean isCreateEmptyContentRootDirectoriesBoxHidden() {
return false;
}
@Deprecated
public boolean isModulesGroupingOptionPanelHidden() {
return false;
}

View File

@@ -26,7 +26,6 @@ class ExternalSystemSettingsCollector : ProjectUsagesCollector() {
addWithSystemId(newCounterMetric("numberOfLinkedProject", projects.size))
for (projectsSetting in projects) {
addWithSystemId(newBooleanMetric("autoImport", projectsSetting.isUseAutoImport))
addWithSystemId(newBooleanMetric("useQualifiedModuleNames", projectsSetting.isUseQualifiedModuleNames))
addWithSystemId(newCounterMetric("modules.count", projectsSetting.modules.size))
}

View File

@@ -269,8 +269,6 @@ public class ExternalSystemUtil {
Set<String> toRefresh = new HashSet<>();
for (ExternalProjectSettings setting : projectsSettings) {
// don't refresh project when auto-import is disabled if such behavior needed (e.g. on project opening when auto-import is disabled)
if (!setting.isUseAutoImport() && spec.whenAutoImportEnabled()) continue;
toRefresh.add(setting.getExternalProjectPath());
}

View File

@@ -233,23 +233,6 @@ public class ExternalProjectsViewImpl extends SimpleToolWindowPanel implements D
}
});
ExternalSystemApiUtil.subscribe(myProject, myExternalSystemId, new ExternalSystemSettingsListenerAdapter() {
@Override
public void onUseAutoImportChange(boolean currentValue, @NotNull final String linkedProjectPath) {
scheduleStructureRequest(() -> {
assert myStructure != null;
final List<ProjectNode> projectNodes = myStructure.getNodes(ProjectNode.class);
for (ProjectNode projectNode : projectNodes) {
final ProjectData projectData = projectNode.getData();
if (projectData != null && projectData.getLinkedExternalProjectPath().equals(linkedProjectPath)) {
projectNode.updateProject();
break;
}
}
});
}
});
myToolWindow.setAdditionalGearActions(createAdditionalGearActionsGroup());
scheduleStructureUpdate();

View File

@@ -4,9 +4,6 @@ package com.intellij.openapi.externalSystem.view;
import com.intellij.ide.projectView.PresentationData;
import com.intellij.openapi.externalSystem.model.DataNode;
import com.intellij.openapi.externalSystem.model.project.ProjectData;
import com.intellij.openapi.externalSystem.settings.AbstractExternalSystemSettings;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NonNls;
@@ -67,17 +64,7 @@ public class ProjectNode extends ExternalSystemNode<ProjectData> {
@Override
protected void doUpdate() {
String autoImportHint = null;
final ProjectData projectData = getData();
if (projectData != null) {
final AbstractExternalSystemSettings externalSystemSettings =
ExternalSystemApiUtil.getSettings(getExternalProjectsView().getProject(), getData().getOwner());
final ExternalProjectSettings projectSettings =
externalSystemSettings.getLinkedProjectSettings(projectData.getLinkedExternalProjectPath());
if (projectSettings != null && projectSettings.isUseAutoImport()) autoImportHint = "auto-import enabled";
}
setNameAndTooltip(getName(), myTooltipCache, autoImportHint);
setNameAndTooltip(getName(), myTooltipCache);
}
private String makeDescription() {

View File

@@ -20,10 +20,6 @@
icon="AllIcons.General.Settings">
</action>
<action id="ExternalSystem.ToggleAutoImport"
class="com.intellij.openapi.externalSystem.action.ToggleAutoImportAction">
</action>
<action id="ExternalSystem.OpenTasksActivationManager"
class="com.intellij.openapi.externalSystem.action.OpenTasksActivationManagerAction">
</action>
@@ -104,7 +100,6 @@
<reference ref="ExternalSystem.OpenConfig"/>
<separator/>
<reference id="ExternalSystem.RefreshProject"/>
<reference id="ExternalSystem.ToggleAutoImport"/>
<separator/>
<reference id="ExternalSystem.DetachProject"/>
<reference id="ExternalSystem.IgnoreProject"/>

View File

@@ -69,7 +69,6 @@ abstract class GradleCreateProjectTestCase : GradleImportingTestCase() {
val settings = getSettings(this, GradleConstants.SYSTEM_ID) as GradleSettings
val projectSettings = settings.getLinkedProjectSettings(externalProjectPath)!!
assertEquals(projectSettings.externalProjectPath, externalProjectPath)
assertEquals(projectSettings.isUseAutoImport, false)
assertEquals(projectSettings.isUseQualifiedModuleNames, true)
assertEquals(settings.storeProjectFilesExternally, true)
}

View File

@@ -195,7 +195,6 @@ public class GradleProjectOpenProcessorTest extends GradleImportingTestCase {
assertTrue(fooSettings.isResolveExternalAnnotations());
assertTrue(fooSettings.getDelegatedBuild());
assertEquals(TestRunner.GRADLE, fooSettings.getTestRunner());
assertFalse(fooSettings.isUseAutoImport());
assertTrue(fooSettings.isUseQualifiedModuleNames());
}
finally {

View File

@@ -45,7 +45,6 @@ class GradleSetupProjectTest : ExternalSystemSetupProjectTest, GradleImportingTe
val settings = ExternalSystemApiUtil.getSettings(project, SYSTEM_ID) as GradleSettings
val projectSettings = settings.getLinkedProjectSettings(externalProjectPath)!!
assertEquals(projectSettings.externalProjectPath, externalProjectPath)
assertEquals(projectSettings.isUseAutoImport, false)
assertEquals(projectSettings.isUseQualifiedModuleNames, true)
assertEquals(settings.storeProjectFilesExternally, true)
}

View File

@@ -85,7 +85,6 @@ internal class GradleOpenProjectProvider : AbstractOpenProjectProvider() {
private fun GradleProjectSettings.setupGradleProjectSettings(projectDirectory: String, project: Project, projectSdk: Sdk? = null) {
externalProjectPath = projectDirectory
isUseAutoImport = false
isUseQualifiedModuleNames = true
distributionType = GradleEnvironment.Headless.GRADLE_DISTRIBUTION_TYPE?.let(DistributionType::valueOf)
?: DistributionType.DEFAULT_WRAPPED

View File

@@ -21,7 +21,7 @@ public class GradleProjectSettingsControl extends AbstractExternalProjectSetting
}
public GradleProjectSettingsControl(@NotNull GradleProjectSettingsControlBuilder builder) {
super(null, builder.getInitialSettings(), builder.getExternalSystemSettingsControlCustomizer());
super(null, builder.getInitialSettings());
myBuilder = builder;
}

View File

@@ -20,6 +20,7 @@ import com.intellij.openapi.externalSystem.service.settings.ExternalSystemSettin
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
import com.intellij.openapi.options.ConfigurationException;
import com.intellij.openapi.project.Project;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.settings.GradleProjectSettings;
@@ -75,8 +76,15 @@ public interface GradleProjectSettingsControlBuilder {
void update(String linkedProjectPath, GradleProjectSettings settings, boolean isDefaultModuleCreation);
/**
* @deprecated see {@link ExternalSystemSettingsControlCustomizer} for details
*/
@Nullable
ExternalSystemSettingsControlCustomizer getExternalSystemSettingsControlCustomizer();
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
default ExternalSystemSettingsControlCustomizer getExternalSystemSettingsControlCustomizer() {
return new ExternalSystemSettingsControlCustomizer();
}
void disposeUIResources();
}

View File

@@ -12,8 +12,8 @@ import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.externalSystem.model.settings.LocationSettingType;
import com.intellij.openapi.externalSystem.service.execution.ExternalSystemJdkUtil;
import com.intellij.openapi.externalSystem.service.settings.ExternalSystemSettingsControlCustomizer;
import com.intellij.openapi.externalSystem.service.ui.ExternalSystemJdkComboBox;
import com.intellij.openapi.externalSystem.settings.ExternalProjectSettings;
import com.intellij.openapi.externalSystem.util.ExternalSystemUiUtil;
import com.intellij.openapi.externalSystem.util.PaintAwarePanel;
import com.intellij.openapi.options.ConfigurationException;
@@ -44,6 +44,7 @@ import com.intellij.util.ui.accessibility.ScreenReader;
import com.intellij.xml.util.XmlStringUtil;
import one.util.streamex.StreamEx;
import org.gradle.util.GradleVersion;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.gradle.service.GradleInstallationManager;
@@ -91,8 +92,6 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet
private LocationSettingType myGradleHomeSettingType = LocationSettingType.UNKNOWN;
private boolean myShowBalloonIfNecessary;
private boolean dropUseAutoImportBox;
@Nullable
private TextFieldWithBrowseButton myGradleHomePathField;
@@ -187,8 +186,12 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet
return this;
}
/**
* @deprecated see {@link ExternalProjectSettings#setUseAutoImport} for details
*/
@Deprecated
@ApiStatus.ScheduledForRemoval(inVersion = "2021.1")
public IdeaGradleProjectSettingsControlBuilder dropUseAutoImportBox() {
dropUseAutoImportBox = true;
return this;
}
@@ -249,11 +252,6 @@ public class IdeaGradleProjectSettingsControlBuilder implements GradleProjectSet
return myInitialSettings;
}
@Override
public ExternalSystemSettingsControlCustomizer getExternalSystemSettingsControlCustomizer() {
return new ExternalSystemSettingsControlCustomizer(dropUseAutoImportBox);
}
@Override
public void createAndFillControls(PaintAwarePanel content, int indentLevel) {
content.setPaintCallback(graphics -> showBalloonIfNecessary());