Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarsten Thoms2014-09-23 08:51:17 +0000
committerKarsten Thoms2014-09-23 08:51:17 +0000
commit304cb0ab4f78f87cf8db8eadbf8dff9f49303ee0 (patch)
tree2916bb1dd437f27584742fcbe2d1196ca31ac947
parent21997b8c663f808a309b328eecda8ce532f6dfce (diff)
downloadorg.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
-rw-r--r--plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/EmfToolsPlugin.java4
-rw-r--r--plugins/org.eclipse.xtend.typesystem.emf.ui/src/org/eclipse/xtend/typesystem/emf/ui/ProjectAnalyzer.java20
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

Back to the top