diff options
author | cletavernie | 2013-03-01 16:22:06 +0000 |
---|---|---|
committer | cletavernie | 2013-03-01 16:22:06 +0000 |
commit | 9e757c68b1cf72b3ebbd72a4ccb558b8d0e60183 (patch) | |
tree | 3050a2c2052d1ea4b16179e617dc64fa7f5bb9ca /plugins/customization | |
parent | 604dd014a6716f8f23cb2aefea00b0ad8b1c5cab (diff) | |
download | org.eclipse.papyrus-9e757c68b1cf72b3ebbd72a4ccb558b8d0e60183.tar.gz org.eclipse.papyrus-9e757c68b1cf72b3ebbd72a4ccb558b8d0e60183.tar.xz org.eclipse.papyrus-9e757c68b1cf72b3ebbd72a4ccb558b8d0e60183.zip |
402155: [Properties View Customization] Using the Properties View Editor freezes the whole Eclipse UI
https://bugs.eclipse.org/bugs/show_bug.cgi?id=402155
Diffstat (limited to 'plugins/customization')
3 files changed, 15 insertions, 2 deletions
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/Activator.java b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/Activator.java index 0f0fe5920e8..af0a299af31 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/Activator.java +++ b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/Activator.java @@ -95,6 +95,18 @@ public class Activator extends AbstractUIPlugin { try { List<MetamodelView> registryDefaultCustomizations = CustomizationsCatalog.getInstance().getRegistryDefaultCustomizations(); for(MetamodelView metamodelView : registryDefaultCustomizations) { + //FIXME: One of the default uiCustom files in Papyrus has a side effect to call resolveAll on the resource set. While this is generally not a problem in Papyrus, + //it becomes critical with the properties view customization, as the resource set contains hundreds of proxies to xwt files (Which are really expensive to load) + //It seems that this uiCustom query cannot be easily fixed, so we disable it in this context. + //The query which tries to (indirectly) resolve all: org.eclipse.papyrus.infra.gmfdiag.modelexplorer.queries.IsDiagramContainer + //Used by: PapyrusNotationFacet.querySet -> PapyrusNotationFacet.uiCustom + if("PapyrusNotationFacet".equals(metamodelView.getName())) { + System.out.println("Disable " + metamodelView.getName()); + continue; //Disable this specific uiCustom + } + + System.out.println("Add " + metamodelView.getName()); + customizationManager.registerCustomization(metamodelView); } diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/AbstractContextualContentProvider.java b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/AbstractContextualContentProvider.java index b905edac67b..af60b730643 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/AbstractContextualContentProvider.java +++ b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/AbstractContextualContentProvider.java @@ -17,6 +17,7 @@ import java.util.List; import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.papyrus.customization.properties.Activator;
import org.eclipse.papyrus.infra.emf.providers.strategy.SemanticEMFContentProvider;
import org.eclipse.papyrus.infra.tools.util.ListHelper;
import org.eclipse.papyrus.infra.widgets.providers.IStaticContentProvider;
@@ -46,7 +47,7 @@ public abstract class AbstractContextualContentProvider extends SemanticEMFConte * The EObject used to retrieve the available contexts
*/
protected AbstractContextualContentProvider(EObject source) {
- super(findContexts(source).toArray(new Context[0]));
+ super(findContexts(source).toArray(new Context[0]), Activator.getDefault().getCustomizationManager());
contexts = ListHelper.asList((Context[])roots);
}
diff --git a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/EnvironmentContentProvider.java b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/EnvironmentContentProvider.java index 65a4255405b..a1a2565786e 100644 --- a/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/EnvironmentContentProvider.java +++ b/plugins/customization/org.eclipse.papyrus.customization.properties/src/org/eclipse/papyrus/customization/properties/providers/EnvironmentContentProvider.java @@ -38,7 +38,7 @@ public class EnvironmentContentProvider extends SemanticEMFContentProvider imple * different environments.
*/
public EnvironmentContentProvider(EStructuralFeature feature) {
- super(null, feature, getRoots(feature));
+ super(null, feature, getRoots(feature), Activator.getDefault().getCustomizationManager());
}
private static EObject[] getRoots(EStructuralFeature feature) {
|