use of com.intellij.openapi.projectRoots.Sdk in project intellij-community by JetBrains.
the class ClasspathPanelImpl method navigate.
@Override
public void navigate(boolean openLibraryEditor) {
final OrderEntry entry = getSelectedEntry();
final ProjectStructureConfigurable rootConfigurable = ProjectStructureConfigurable.getInstance(myState.getProject());
if (entry instanceof ModuleOrderEntry) {
Module module = ((ModuleOrderEntry) entry).getModule();
if (module != null) {
rootConfigurable.select(module.getName(), null, true);
}
} else if (entry instanceof LibraryOrderEntry) {
if (!openLibraryEditor && !((LibraryOrderEntry) entry).getLibraryLevel().equals(LibraryTableImplUtil.MODULE_LEVEL)) {
rootConfigurable.select((LibraryOrderEntry) entry, true);
} else {
doEdit();
}
} else if (entry instanceof JdkOrderEntry) {
Sdk jdk = ((JdkOrderEntry) entry).getJdk();
if (jdk != null) {
rootConfigurable.select(jdk, true);
}
}
}
use of com.intellij.openapi.projectRoots.Sdk in project intellij-community by JetBrains.
the class ReplaceAddAllArrayToCollectionFix method isAvailable.
@Override
public boolean isAvailable(@NotNull final Project project, final Editor editor, final PsiFile file) {
if (!myMethodCall.isValid())
return false;
final Module module = ModuleUtilCore.findModuleForPsiElement(file);
if (module == null)
return false;
final Sdk jdk = ModuleRootManager.getInstance(module).getSdk();
if (jdk == null || !JavaSdk.getInstance().isOfVersionOrHigher(jdk, JavaSdkVersion.JDK_1_5))
return false;
final PsiReferenceExpression expression = myMethodCall.getMethodExpression();
final PsiElement element = expression.resolve();
if (element instanceof PsiMethod) {
final PsiMethod method = (PsiMethod) element;
final JavaPsiFacade psiFacade = JavaPsiFacade.getInstance(project);
final PsiClass collectionsClass = psiFacade.findClass("java.util.Collection", GlobalSearchScope.allScope(project));
if (collectionsClass != null && InheritanceUtil.isInheritorOrSelf(method.getContainingClass(), collectionsClass, true)) {
if (Comparing.strEqual(method.getName(), "addAll") && PsiType.BOOLEAN.equals(method.getReturnType())) {
final PsiParameter[] psiParameters = method.getParameterList().getParameters();
if (psiParameters.length == 1 && psiParameters[0].getType() instanceof PsiClassType && InheritanceUtil.isInheritorOrSelf(((PsiClassType) psiParameters[0].getType()).resolve(), collectionsClass, true)) {
final PsiExpressionList list = myMethodCall.getArgumentList();
final PsiExpression[] expressions = list.getExpressions();
if (expressions.length == 1) {
if (expressions[0].getType() instanceof PsiArrayType) {
return true;
}
}
}
}
}
}
return false;
}
use of com.intellij.openapi.projectRoots.Sdk in project intellij-community by JetBrains.
the class SdkSetupNotificationTestBase method tearDown.
@Override
protected void tearDown() throws Exception {
FileEditorManagerEx.getInstanceEx(getProject()).closeAllFiles();
final Sdk[] jdks = ReadAction.compute(() -> ProjectJdkTable.getInstance().getAllJdks());
try {
for (Sdk jdk : jdks) {
WriteAction.run(() -> ProjectJdkTable.getInstance().removeJdk(jdk));
}
} finally {
super.tearDown();
}
}
use of com.intellij.openapi.projectRoots.Sdk in project intellij-community by JetBrains.
the class JavaParameters method getJdkToRunModule.
@Nullable
public static Sdk getJdkToRunModule(Module module, boolean productionOnly) {
final Sdk moduleSdk = ModuleRootManager.getInstance(module).getSdk();
if (moduleSdk == null) {
return null;
}
final Set<Sdk> sdksFromDependencies = new LinkedHashSet<>();
OrderEnumerator enumerator = OrderEnumerator.orderEntries(module).runtimeOnly().recursively();
if (productionOnly) {
enumerator = enumerator.productionOnly();
}
enumerator.forEachModule(module1 -> {
Sdk sdk = ModuleRootManager.getInstance(module1).getSdk();
if (sdk != null && sdk.getSdkType().equals(moduleSdk.getSdkType())) {
sdksFromDependencies.add(sdk);
}
return true;
});
return findLatestVersion(moduleSdk, sdksFromDependencies);
}
use of com.intellij.openapi.projectRoots.Sdk in project intellij-community by JetBrains.
the class JavaParametersUtil method createAlternativeJdk.
private static Sdk createAlternativeJdk(@NotNull String jreHome) throws CantRunException {
final Sdk configuredJdk = ProjectJdkTable.getInstance().findJdk(jreHome);
if (configuredJdk != null) {
return configuredJdk;
}
if (!JdkUtil.checkForJre(jreHome) && !JdkUtil.checkForJdk(jreHome)) {
throw new CantRunException(ExecutionBundle.message("jre.path.is.not.valid.jre.home.error.message", jreHome));
}
final JavaSdk javaSdk = JavaSdk.getInstance();
final String versionString = javaSdk.getVersionString(jreHome);
final Sdk jdk = javaSdk.createJdk(versionString != null ? versionString : "", jreHome);
if (jdk == null)
throw CantRunException.noJdkConfigured();
return jdk;
}
Aggregations