Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2018-02-06 12:57:13 +0000
committerStephan Herrmann2018-02-06 12:57:13 +0000
commite29dc152e158cd79f23d84733a79358941655537 (patch)
treeea37db98c44e0c626b6f7e4df37a798ba7115f6c
parent21d2769ae725b8461e97d180a7a981b4272a6444 (diff)
downloadeclipse.jdt.ui-e29dc152e158cd79f23d84733a79358941655537.tar.gz
eclipse.jdt.ui-e29dc152e158cd79f23d84733a79358941655537.tar.xz
eclipse.jdt.ui-e29dc152e158cd79f23d84733a79358941655537.zip
Bug 526833 - [9] revisit default set of JDK modules in ModuleDialog
(modular project) Change-Id: Ie149e61e9b964dc45b29b2044ee3d419efa94dae
-rw-r--r--org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java31
1 files changed, 23 insertions, 8 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java
index 66eaa813b0..818375fd40 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDialog.java
@@ -681,8 +681,8 @@ public class ModuleDialog extends StatusDialog {
includedNames.addAll(limitModules.fExplicitlyIncludedModules);
availableNames.removeAll(limitModules.fExplicitlyIncludedModules);
}
- } else if (isJava9JRE) {
- includedNames= defaultIncludedModuleNames();
+ } else if (isJava9JRE && isUnnamedModule()) {
+ includedNames= defaultIncludedModuleNamesForUnnamedModule();
availableNames.removeAll(includedNames);
} else {
includedNames= availableNames;
@@ -774,7 +774,7 @@ public class ModuleDialog extends StatusDialog {
return fModuleNames= moduleNames;
}
- private List<String> defaultIncludedModuleNames() {
+ private List<String> defaultIncludedModuleNamesForUnnamedModule() {
if (fJavaElements != null) {
List<IPackageFragmentRoot> roots= new ArrayList<>();
for (int i= 0; i < fJavaElements.length; i++) {
@@ -865,6 +865,16 @@ public class ModuleDialog extends StatusDialog {
}
return module != null ? module.getElementName() : JavaModelUtil.ALL_UNNAMED;
}
+
+ private boolean isUnnamedModule() {
+ IModuleDescription module= null;
+ try {
+ module= fCurrCPElement.getJavaProject().getModuleDescription();
+ } catch (JavaModelException e) {
+ JavaPlugin.log(e);
+ }
+ return module == null;
+ }
// -------- TypeRestrictionAdapter --------
@@ -985,12 +995,17 @@ public class ModuleDialog extends StatusDialog {
if (fModuleLists[IDX_AVAILABLE].fNames.isEmpty() && fModuleLists[IDX_IMPLICITLY_INCLUDED].fNames.isEmpty()) {
return false; // all modules are "included" - this includes the single-module case.
}
- Set<String> initialNames = new HashSet<>(defaultIncludedModuleNames());
- for (String name : fModuleLists[IDX_INCLUDED].fNames) {
- if (!initialNames.remove(name))
- return true;
+ if (isUnnamedModule()) {
+ // for an unnamed module we need to compare current selection state against defaults per JEP 261:
+ Set<String> initialNames = new HashSet<>(defaultIncludedModuleNamesForUnnamedModule());
+ for (String name : fModuleLists[IDX_INCLUDED].fNames) {
+ if (!initialNames.remove(name))
+ return true;
+ }
+ return !initialNames.isEmpty();
+ } else {
+ return true;
}
- return !initialNames.isEmpty();
}
/*

Back to the top