diff options
author | Stephan Herrmann | 2019-05-28 21:01:40 +0000 |
---|---|---|
committer | Noopur Gupta | 2019-05-29 08:49:24 +0000 |
commit | 7bac3c186d92b7885ccc834b271de73c51e8d1ef (patch) | |
tree | 5a8bb92d15ae5cabc90b17ba1af87d480abdbd3c | |
parent | 2c33b032e8fc597a6d0fe59928a594ed261771dc (diff) | |
download | eclipse.jdt.ui-7bac3c186d92b7885ccc834b271de73c51e8d1ef.tar.gz eclipse.jdt.ui-7bac3c186d92b7885ccc834b271de73c51e8d1ef.tar.xz eclipse.jdt.ui-7bac3c186d92b7885ccc834b271de73c51e8d1ef.zip |
Bug 546790 - [9][build path] synchronize data on different tabs of JavaI20190529-0600
Build Path
Change-Id: I5ff459233512adf0f2a50545c5a6c99537b1a785
Signed-off-by: Stephan Herrmann <stephan.herrmann@berlin.de>
5 files changed, 28 insertions, 4 deletions
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.java index 0c55a6f4e9..3a66ae56ed 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.java @@ -521,6 +521,7 @@ public final class NewWizardMessages extends NLS { public static String ModuleDependenciesPage_addSystemModule_button; public static String ModuleDependenciesPage_details_label; public static String ModuleDependenciesPage_nonModularProject_dummy; + public static String ModuleDependenciesPage_outOfSync_warning; // buttons: public static String ModuleDependenciesPage_modules_remove_button; public static String ModuleDependenciesPage_modules_read_button; diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.properties b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.properties index 3ee6f27c0a..feb30bc627 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.properties +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/NewWizardMessages.properties @@ -558,6 +558,9 @@ ModuleDependenciesPage_modules_label=All Modules ModuleDependenciesPage_addSystemModule_button=Add S&ystem Module... ModuleDependenciesPage_details_label=Details ModuleDependenciesPage_nonModularProject_dummy=Non-modular Project + +ModuleDependenciesPage_outOfSync_warning=Not all modules could be found. Click Apply to synchronize. + # buttons ModuleDependenciesPage_modules_remove_button=&Remove ModuleDependenciesPage_modules_read_button=Rea&d Module... diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java index 8bb52abe54..3fec77d579 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/BuildPathsBlock.java @@ -366,7 +366,7 @@ public class BuildPathsBlock { fSourceContainerPage.init(fCurrJProject); fProjectsPage.init(fCurrJProject); fLibrariesPage.init(fCurrJProject); - fModulesPage.init(fCurrJProject); + // fModulesPage will be unconditionally initialized in updateUI() below fIs9OrHigher= JavaModelUtil.is9OrHigher(fCurrJProject); } @@ -402,9 +402,9 @@ public class BuildPathsBlock { // update the library and project page if fis9OrHigher changed fLibrariesPage.init(fCurrJProject); fProjectsPage.init(fCurrJProject); - fModulesPage.init(fCurrJProject); fIs9OrHigher= is9OrHigherAfter; } + fModulesPage.init(fCurrJProject); // always update, Apply might have made more modules visible doStatusLineUpdate(); } diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesList.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesList.java index c85126b78c..56fd9a0adb 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesList.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesList.java @@ -137,6 +137,15 @@ class ModuleDependenciesList { fViewer= tableViewer; } + public void clear() { + fNames.clear(); + fModule2Element.clear(); + fInitialNames.clear(); + fElem2ModName.clear(); + fModules.clear(); + fKinds.clear(); + } + private boolean hasConfiguredDetails(String module) { CPListElement element= fModule2Element.get(module); if (element == null) diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java index 97fa75b20d..ccc5c3317a 100644 --- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java +++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/wizards/buildpaths/ModuleDependenciesPage.java @@ -38,6 +38,7 @@ import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; +import org.eclipse.swt.widgets.TabFolder; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; @@ -62,6 +63,7 @@ import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.corext.util.JavaModelUtil; import org.eclipse.jdt.internal.ui.JavaPlugin; +import org.eclipse.jdt.internal.ui.dialogs.StatusInfo; import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener; import org.eclipse.jdt.internal.ui.wizards.NewWizardMessages; import org.eclipse.jdt.internal.ui.wizards.buildpaths.ModuleDependenciesList.ModuleKind; @@ -242,6 +244,10 @@ public class ModuleDependenciesPage extends BuildPathBasePage { fDetailsList.setViewerComparator(new CPListElementSorter()); + ((TabFolder) parent).addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> { + if (e.item.getData() == this && fCurrJProject != null) + init(fCurrJProject); + })); fSWTControl= composite; return composite; @@ -270,7 +276,7 @@ public class ModuleDependenciesPage extends BuildPathBasePage { } protected void scanModules() { - fModuleList.fNames.clear(); + fModuleList.clear(); if (!JavaModelUtil.is9OrHigher(fCurrJProject)) { fModuleList.fNames.add(NewWizardMessages.ModuleDependenciesPage_nonModularProject_dummy); fModuleList.refresh(); @@ -365,7 +371,12 @@ public class ModuleDependenciesPage extends BuildPathBasePage { } break; default: // LIBRARY & VARIABLE: - for (IPackageFragmentRoot packageRoot : fCurrJProject.findPackageFragmentRoots(cpe.getClasspathEntry())) { + IPackageFragmentRoot[] roots= fCurrJProject.findPackageFragmentRoots(cpe.getClasspathEntry()); + if (roots.length == 0) { + fContext.statusChanged(new StatusInfo(IStatus.WARNING, NewWizardMessages.ModuleDependenciesPage_outOfSync_warning)); + break; + } + for (IPackageFragmentRoot packageRoot : roots) { IModuleDescription module= packageRoot.getModuleDescription(); kind= ModuleKind.Normal; if (module == null) { |