mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-94042 Create Project From Template: the SDK set as default one is not applied while creating projects from template
This commit is contained in:
@@ -27,6 +27,7 @@ import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.ui.components.JBCheckBox;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -46,7 +47,7 @@ public class JavaSettingsStep extends SdkSettingsStep {
|
||||
private TextFieldWithBrowseButton mySourcePath;
|
||||
private JPanel myPanel;
|
||||
|
||||
public JavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, Condition<SdkTypeId> sdkFilter) {
|
||||
public JavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, @NotNull Condition<SdkTypeId> sdkFilter) {
|
||||
super(settingsStep, moduleBuilder, sdkFilter);
|
||||
myModuleBuilder = moduleBuilder;
|
||||
|
||||
|
||||
+2
-1
@@ -27,6 +27,7 @@ import com.intellij.openapi.roots.ui.configuration.projectRoot.LibrariesContaine
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -140,7 +141,7 @@ public class ProjectWizardStepFactoryImpl extends ProjectWizardStepFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModuleWizardStep createJavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, Condition<SdkTypeId> sdkFilter) {
|
||||
public ModuleWizardStep createJavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, @NotNull Condition<SdkTypeId> sdkFilter) {
|
||||
return new JavaSettingsStep(settingsStep, moduleBuilder, sdkFilter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,12 +17,14 @@ package com.intellij.ide.util.projectWizard;
|
||||
|
||||
import com.intellij.openapi.options.ConfigurationException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectManager;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SdkTypeId;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.ui.configuration.JdkComboBox;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
@@ -36,7 +38,7 @@ public class SdkSettingsStep extends ModuleWizardStep {
|
||||
protected final WizardContext myWizardContext;
|
||||
protected final ProjectSdksModel myModel;
|
||||
|
||||
public SdkSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, Condition<SdkTypeId> sdkFilter) {
|
||||
public SdkSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, @NotNull Condition<SdkTypeId> sdkFilter) {
|
||||
|
||||
myWizardContext = settingsStep.getContext();
|
||||
myModel = new ProjectSdksModel();
|
||||
@@ -48,10 +50,18 @@ public class SdkSettingsStep extends ModuleWizardStep {
|
||||
if (project != null) {
|
||||
Sdk sdk = ProjectRootManager.getInstance(project).getProjectSdk();
|
||||
if (sdk != null && moduleBuilder.isSuitableSdkType(sdk.getSdkType())) {
|
||||
// use default project SDK
|
||||
// use project SDK
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// set default project SDK
|
||||
Project defaultProject = ProjectManager.getInstance().getDefaultProject();
|
||||
Sdk sdk = ProjectRootManager.getInstance(defaultProject).getProjectSdk();
|
||||
if (sdk != null && sdkFilter.value(sdk.getSdkType())) {
|
||||
myJdkComboBox.setSelectedJdk(sdk);
|
||||
}
|
||||
}
|
||||
|
||||
JButton button = new JButton("\u001BNew...");
|
||||
myJdkComboBox.setSetupButton(button, project, myModel,
|
||||
|
||||
@@ -234,7 +234,8 @@ public class JdkComboBox extends ComboBoxWithWidePopup {
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (jdk.equals(elementAt.getJdk())) {
|
||||
Sdk elementAtJdk = elementAt.getJdk();
|
||||
if (elementAtJdk != null && jdk.getName().equals(elementAtJdk.getName())) {
|
||||
return idx;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-5
@@ -47,10 +47,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
public class ProjectJdksConfigurable extends MasterDetailsComponent {
|
||||
|
||||
@@ -99,7 +96,7 @@ public class ProjectJdksConfigurable extends MasterDetailsComponent {
|
||||
myProjectJdksModel.reset(myProject);
|
||||
|
||||
myRoot.removeAllChildren();
|
||||
final HashMap<Sdk, Sdk> sdks = myProjectJdksModel.getProjectSdks();
|
||||
final Map<Sdk, Sdk> sdks = myProjectJdksModel.getProjectSdks();
|
||||
for (Sdk sdk : sdks.keySet()) {
|
||||
final JdkConfigurable configurable = new JdkConfigurable((ProjectJdkImpl)sdks.get(sdk), myProjectJdksModel, TREE_UPDATER, myHistory, myProject);
|
||||
addNode(new MyNode(configurable), myRoot);
|
||||
|
||||
+2
-2
@@ -40,8 +40,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class JdkListConfigurable extends BaseStructureConfigurable {
|
||||
private final ProjectSdksModel myJdksTreeModel;
|
||||
@@ -123,7 +123,7 @@ public class JdkListConfigurable extends BaseStructureConfigurable {
|
||||
|
||||
@Override
|
||||
protected void loadTree() {
|
||||
final HashMap<Sdk,Sdk> sdks = myJdksTreeModel.getProjectSdks();
|
||||
final Map<Sdk,Sdk> sdks = myJdksTreeModel.getProjectSdks();
|
||||
for (Sdk sdk : sdks.keySet()) {
|
||||
final JdkConfigurable configurable = new JdkConfigurable((ProjectJdkImpl)sdks.get(sdk), myJdksTreeModel, TREE_UPDATER, myHistory,
|
||||
myProject);
|
||||
|
||||
@@ -23,6 +23,7 @@ import com.intellij.openapi.roots.ui.configuration.ModulesProvider;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -73,5 +74,5 @@ public abstract class ProjectWizardStepFactory {
|
||||
@Nullable
|
||||
public abstract ModuleWizardStep createSupportForFrameworksStep(WizardContext context, ModuleBuilder builder, ModulesProvider modulesProvider);
|
||||
|
||||
public abstract ModuleWizardStep createJavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, Condition<SdkTypeId> sdkFilter);
|
||||
public abstract ModuleWizardStep createJavaSettingsStep(SettingsStep settingsStep, ModuleBuilder moduleBuilder, @NotNull Condition<SdkTypeId> sdkFilter);
|
||||
}
|
||||
|
||||
+1
-1
@@ -191,7 +191,7 @@ public class ProjectJdkTableImpl extends ProjectJdkTable implements PersistentSt
|
||||
|
||||
((ProjectJdkImpl)modifiedJdk).copyTo((ProjectJdkImpl)originalJdk);
|
||||
|
||||
if (previousName != null ? !previousName.equals(newName) : newName != null) {
|
||||
if (!previousName.equals(newName)) {
|
||||
// fire changes because after renaming JDK its name may match the associated jdk name of modules/project
|
||||
myMessageBus.syncPublisher(JDK_TABLE_TOPIC).jdkNameChanged(originalJdk, previousName);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user