diff options
author | Karsten Thoms | 2014-09-23 08:51:17 +0000 |
---|---|---|
committer | Karsten Thoms | 2014-09-23 08:51:17 +0000 |
commit | 304cb0ab4f78f87cf8db8eadbf8dff9f49303ee0 (patch) | |
tree | 2916bb1dd437f27584742fcbe2d1196ca31ac947 | |
parent | 21997b8c663f808a309b328eecda8ce532f6dfce (diff) | |
download | org.eclipse.xpand-304cb0ab4f78f87cf8db8eadbf8dff9f49303ee0.tar.gz org.eclipse.xpand-304cb0ab4f78f87cf8db8eadbf8dff9f49303ee0.tar.xz org.eclipse.xpand-304cb0ab4f78f87cf8db8eadbf8dff9f49303ee0.zip |
[444766] Applied patch from Nirmal Sasidharan
Schedule ProjectAnalyzer only if EmfMetamodelContributor is available
2 files changed, 23 insertions, 1 deletions
diff --git a/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/EmfToolsPlugin.java b/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/EmfToolsPlugin.java index ca1548f7..1842e709 100644 --- a/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/EmfToolsPlugin.java +++ b/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/EmfToolsPlugin.java @@ -157,7 +157,9 @@ public class EmfToolsPlugin extends AbstractUIPlugin { for (final IProject p : workspace.getRoot().getProjects()) { if (Activator.getExtXptModelManager().findProject(p) != null) { final ProjectAnalyzer pa = getProjectAnalyzer(p); - if (pa != null) { + //bug:444766 + //schedule only if EmfMetamodelContributor is available and is active + if (pa != null && pa.isEnabled()) { if (pa.getState() != Job.WAITING) { pa.schedule(); } diff --git a/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/ProjectAnalyzer.java b/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/ProjectAnalyzer.java index 831b914d..9dfa65cd 100644 --- a/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/ProjectAnalyzer.java +++ b/plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/ProjectAnalyzer.java @@ -15,6 +15,7 @@ import java.util.Collection; import java.util.Collections; import java.util.Enumeration; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -43,9 +44,11 @@ import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.core.ExternalPackageFragmentRoot; import org.eclipse.jdt.internal.core.JarPackageFragmentRoot; import org.eclipse.xtend.shared.ui.Activator; +import org.eclipse.xtend.shared.ui.MetamodelContributor; import org.eclipse.xtend.shared.ui.core.IModelManager; import org.eclipse.xtend.shared.ui.core.internal.JDTUtil; import org.eclipse.xtend.shared.ui.core.internal.ResourceID; +import org.eclipse.xtend.shared.ui.core.metamodel.MetamodelContributorRegistry; import org.eclipse.xtend.typesystem.emf.ui.internal.EmfToolsLog; /** @@ -241,4 +244,21 @@ final class ProjectAnalyzer extends Job { } return Collections.unmodifiableMap(this.packages); } + + /** + * Checks if {@link EmfMetamodelContributor} is activated either in project property or in preference + * + * @return true if {@link EmfMetamodelContributor} is available and active, else false + */ + public boolean isEnabled() { + List<? extends MetamodelContributor> activeMetamodelContributors = + MetamodelContributorRegistry.getActiveMetamodelContributors(this.project); + for (MetamodelContributor metamodelContributor : activeMetamodelContributors) { + if (metamodelContributor instanceof EmfMetamodelContributor) { + return true; + } + } + return false; + } + }
\ No newline at end of file |