hiding SDK selector if compatible SDK configured for project

This commit is contained in:
Dmitry Avdeev
2012-10-30 19:46:57 +04:00
parent 7905deeba8
commit b9e861fc47
5 changed files with 24 additions and 23 deletions
@@ -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);
}
@@ -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<JavaModuleBuilder> {
@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<SdkTypeId>() {
@Override
public boolean value(SdkTypeId sdk) {
return sdk instanceof JavaSdkType;
}
});
@Override
public boolean value(SdkTypeId sdkType) {
return moduleBuilder.isSuitableSdkType(sdkType);
}
});
}
private static Icon getJavaModuleIcon() {
@@ -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<SdkTypeId>() {
@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();
}
}
@@ -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) {
@@ -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;