From b9e861fc4725ca8b04b36ae31f207b56659d1052 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Tue, 30 Oct 2012 19:39:46 +0400 Subject: [PATCH] hiding SDK selector if compatible SDK configured for project --- .../util/projectWizard/SdkSettingsStep.java | 2 +- .../openapi/module/JavaModuleType.java | 23 ++++++++++++++----- .../util/projectWizard/JavaModuleBuilder.java | 15 +----------- .../util/projectWizard/ProjectBuilder.java | 2 +- .../intellij/openapi/module/ModuleType.java | 5 +++- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java b/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java index 317f76df5832..f43edac46008 100644 --- a/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java +++ b/java/idea-ui/src/com/intellij/ide/util/projectWizard/SdkSettingsStep.java @@ -52,7 +52,7 @@ public class SdkSettingsStep extends ModuleWizardStep { JPanel jdkPanel = new JPanel(new BorderLayout(4, 0)); jdkPanel.add(myJdkComboBox); jdkPanel.add(button, BorderLayout.EAST); - settingsStep.addSettingsField("Project \u001BSDK:", jdkPanel); + settingsStep.addSettingsField((project == null ? "Project" : "Module") + " \u001BSDK:", jdkPanel); } diff --git a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java index 9739599a3623..388cc7fa2fc2 100644 --- a/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java +++ b/java/java-impl/src/com/intellij/openapi/module/JavaModuleType.java @@ -17,9 +17,11 @@ package com.intellij.openapi.module; import com.intellij.icons.AllIcons; import com.intellij.ide.util.projectWizard.*; +import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectBundle; import com.intellij.openapi.projectRoots.*; import com.intellij.openapi.roots.ModuleRootManager; +import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import com.intellij.openapi.util.Computable; import com.intellij.openapi.util.Condition; @@ -102,13 +104,22 @@ public class JavaModuleType extends ModuleType { @Nullable @Override - public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder) { + public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep, final ModuleBuilder moduleBuilder) { + Project project = settingsStep.getContext().getProject(); + if (project != null) { + Sdk sdk = ProjectRootManager.getInstance(project).getProjectSdk(); + if (sdk != null && moduleBuilder.isSuitableSdkType(sdk.getSdkType())) { + // use default project SDK +// context.setProjectJdk(sdk); + return null; + } + } return ProjectWizardStepFactory.getInstance().createJavaSettingsStep(settingsStep, moduleBuilder, new Condition() { - @Override - public boolean value(SdkTypeId sdk) { - return sdk instanceof JavaSdkType; - } - }); + @Override + public boolean value(SdkTypeId sdkType) { + return moduleBuilder.isSuitableSdkType(sdkType); + } + }); } private static Icon getJavaModuleIcon() { diff --git a/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java b/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java index 6d4d1e2715df..6c012755c716 100644 --- a/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java +++ b/java/openapi/src/com/intellij/ide/util/projectWizard/JavaModuleBuilder.java @@ -19,16 +19,13 @@ package com.intellij.ide.util.projectWizard; import com.intellij.openapi.module.ModuleType; import com.intellij.openapi.module.StdModuleTypes; import com.intellij.openapi.options.ConfigurationException; -import com.intellij.openapi.projectRoots.JavaSdk; import com.intellij.openapi.projectRoots.Sdk; -import com.intellij.openapi.projectRoots.SdkTypeId; import com.intellij.openapi.roots.CompilerModuleExtension; import com.intellij.openapi.roots.ContentEntry; import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; import com.intellij.openapi.roots.libraries.LibraryTable; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; @@ -83,12 +80,7 @@ public class JavaModuleBuilder extends ModuleBuilder implements SourcePathsBuild @Nullable @Override public ModuleWizardStep modifySettingsStep(SettingsStep settingsStep) { - return ProjectWizardStepFactory.getInstance().createJavaSettingsStep(settingsStep, this, new Condition() { - @Override - public boolean value(SdkTypeId sdkType) { - return isSuitableSdkType(sdkType); - } - }); + return StdModuleTypes.JAVA.modifySettingsStep(settingsStep, this); } public void setupRootModel(ModifiableRootModel rootModel) throws ConfigurationException { @@ -167,9 +159,4 @@ public class JavaModuleBuilder extends ModuleBuilder implements SourcePathsBuild protected static String getPathForOutputPathStep() { return null; } - - @Override - public boolean isSuitableSdkType(SdkTypeId sdkType) { - return sdkType == JavaSdk.getInstance(); - } } diff --git a/platform/lang-api/src/com/intellij/ide/util/projectWizard/ProjectBuilder.java b/platform/lang-api/src/com/intellij/ide/util/projectWizard/ProjectBuilder.java index fa81be96d9f4..8644e9756b6b 100644 --- a/platform/lang-api/src/com/intellij/ide/util/projectWizard/ProjectBuilder.java +++ b/platform/lang-api/src/com/intellij/ide/util/projectWizard/ProjectBuilder.java @@ -61,7 +61,7 @@ public abstract class ProjectBuilder { */ @Deprecated public boolean isSuitableSdk(Sdk sdk) { - return true; + return isSuitableSdkType(sdk.getSdkType()); } public boolean isSuitableSdkType(SdkTypeId sdkType) { diff --git a/platform/lang-api/src/com/intellij/openapi/module/ModuleType.java b/platform/lang-api/src/com/intellij/openapi/module/ModuleType.java index 05bb5b25181a..bd8e056bdf23 100644 --- a/platform/lang-api/src/com/intellij/openapi/module/ModuleType.java +++ b/platform/lang-api/src/com/intellij/openapi/module/ModuleType.java @@ -15,7 +15,10 @@ */ package com.intellij.openapi.module; -import com.intellij.ide.util.projectWizard.*; +import com.intellij.ide.util.projectWizard.ModuleBuilder; +import com.intellij.ide.util.projectWizard.ModuleWizardStep; +import com.intellij.ide.util.projectWizard.SettingsStep; +import com.intellij.ide.util.projectWizard.WizardContext; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import org.jetbrains.annotations.NonNls;