mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-188581 Project Structure: SDK: two JDKs in Add new SDK list
This commit is contained in:
@@ -22,7 +22,6 @@ import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SdkType;
|
||||
import com.intellij.openapi.projectRoots.SdkTypeId;
|
||||
import com.intellij.openapi.projectRoots.SimpleJavaSdkType;
|
||||
import com.intellij.openapi.roots.ui.OrderEntryAppearanceService;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.JdkListConfigurable;
|
||||
import com.intellij.openapi.roots.ui.configuration.projectRoot.ProjectSdksModel;
|
||||
@@ -46,6 +45,8 @@ import java.awt.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import static com.intellij.openapi.projectRoots.SimpleJavaSdkType.notSimpleJavaSdkType;
|
||||
|
||||
/**
|
||||
* @author Eugene Zhuravlev
|
||||
* @since May 18, 2005
|
||||
@@ -126,7 +127,7 @@ public class JdkComboBox extends ComboBoxWithWidePopup<JdkComboBox.JdkComboBoxIt
|
||||
|
||||
@NotNull
|
||||
private static Condition<SdkTypeId> getCreationFilter(@Nullable Condition<SdkTypeId> creationFilter) {
|
||||
return sdkTypeId -> !(sdkTypeId instanceof SimpleJavaSdkType) && (creationFilter == null || creationFilter.value(sdkTypeId));
|
||||
return notSimpleJavaSdkType(creationFilter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-1
@@ -42,6 +42,8 @@ import javax.swing.tree.DefaultMutableTreeNode;
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
|
||||
import static com.intellij.openapi.projectRoots.SimpleJavaSdkType.notSimpleJavaSdkType;
|
||||
|
||||
public class ProjectJdksConfigurable extends MasterDetailsComponent {
|
||||
private final ProjectSdksModel myProjectJdksModel;
|
||||
private final Project myProject;
|
||||
@@ -154,7 +156,7 @@ public class ProjectJdksConfigurable extends MasterDetailsComponent {
|
||||
myProjectJdksModel.createAddActions(group, myTree, projectJdk -> {
|
||||
addNode(new MyNode(new JdkConfigurable(((ProjectJdkImpl)projectJdk), myProjectJdksModel, TREE_UPDATER, myHistory, myProject), false), myRoot);
|
||||
selectNodeInTree(findNodeByObject(myRoot, projectJdk));
|
||||
});
|
||||
}, notSimpleJavaSdkType());
|
||||
actions.add(new MyActionGroupWrapper(group));
|
||||
actions.add(new MyDeleteAction(Conditions.alwaysTrue()));
|
||||
return actions;
|
||||
|
||||
+3
-3
@@ -12,7 +12,6 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.SdkModel;
|
||||
import com.intellij.openapi.projectRoots.SimpleJavaSdkType;
|
||||
import com.intellij.openapi.projectRoots.impl.ProjectJdkImpl;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.roots.ui.configuration.ProjectStructureConfigurable;
|
||||
@@ -28,6 +27,8 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.swing.tree.TreePath;
|
||||
import java.util.*;
|
||||
|
||||
import static com.intellij.openapi.projectRoots.SimpleJavaSdkType.notSimpleJavaSdkType;
|
||||
|
||||
public class JdkListConfigurable extends BaseStructureConfigurable {
|
||||
@NotNull
|
||||
private final ProjectSdksModel myJdksTreeModel;
|
||||
@@ -164,8 +165,7 @@ public class JdkListConfigurable extends BaseStructureConfigurable {
|
||||
@Override
|
||||
public AnAction[] getChildren(@Nullable final AnActionEvent e) {
|
||||
DefaultActionGroup group = new DefaultActionGroup(ProjectBundle.message("add.new.jdk.text"), true);
|
||||
myJdksTreeModel.createAddActions(group, myTree, projectJdk -> addJdkNode(projectJdk, true),
|
||||
sdkTypeId -> !(sdkTypeId instanceof SimpleJavaSdkType));
|
||||
myJdksTreeModel.createAddActions(group, myTree, projectJdk -> addJdkNode(projectJdk, true), notSimpleJavaSdkType());
|
||||
return group.getChildren(null);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -5,10 +5,12 @@ package com.intellij.openapi.projectRoots;
|
||||
|
||||
import com.intellij.openapi.project.ProjectBundle;
|
||||
import com.intellij.openapi.projectRoots.impl.SdkVersionUtil;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.util.lang.JavaVersion;
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jps.model.java.JdkVersionDetector;
|
||||
|
||||
import java.io.File;
|
||||
@@ -95,4 +97,14 @@ public class SimpleJavaSdkType extends SdkType implements JavaSdkType {
|
||||
JdkVersionDetector.JdkVersionInfo jdkInfo = SdkVersionUtil.getJdkVersionInfo(sdkHome);
|
||||
return jdkInfo != null ? JdkVersionDetector.formatVersionString(jdkInfo.version) : null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Condition<SdkTypeId> notSimpleJavaSdkType() {
|
||||
return sdkTypeId -> !(sdkTypeId instanceof SimpleJavaSdkType);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Condition<SdkTypeId> notSimpleJavaSdkType(@Nullable Condition<SdkTypeId> condition) {
|
||||
return sdkTypeId -> notSimpleJavaSdkType().value(sdkTypeId) && (condition == null || condition.value(sdkTypeId));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user