Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2018-02-06 12:57:13 +0000
committerStephan Herrmann2018-02-06 14:27:00 +0000
commit5074fefa0fcfa06d0e96907f8568ff2d9769bc45 (patch)
treed9441281714e1ae34f05dfecb77128d01049923c
parentbd89ee55c9defa5b740795c48fe0065aa23073c0 (diff)
downloadeclipse.jdt.ui-5074fefa0fcfa06d0e96907f8568ff2d9769bc45.tar.gz
eclipse.jdt.ui-5074fefa0fcfa06d0e96907f8568ff2d9769bc45.tar.xz
eclipse.jdt.ui-5074fefa0fcfa06d0e96907f8568ff2d9769bc45.zip
Bug 526833 - [9] revisit default set of JDK modules in ModuleDialog
(modular project) Change-Id: I3ca2f273ffe7c00e3464c7c813562649fd8e9cbd
-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..e5687feb97 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++) {
@@ -866,6 +866,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 --------
private abstract class ListAdapter<T extends ModuleEncapsulationDetail> implements IListAdapter<T> {
@@ -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