Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Schnekenburger2015-05-06 10:42:10 +0000
committerRemi Schnekenburger2015-05-06 12:52:32 +0000
commit39d7aa757396e5288eccf33c6661ffa4fcae0add (patch)
tree224fd2e0023848f3ee2639cdfd4c41e676611f74 /plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src
parentdf2cb98a440a93cdd0a19a2a49412f3f49e2a60b (diff)
downloadorg.eclipse.papyrus-39d7aa757396e5288eccf33c6661ffa4fcae0add.tar.gz
org.eclipse.papyrus-39d7aa757396e5288eccf33c6661ffa4fcae0add.tar.xz
org.eclipse.papyrus-39d7aa757396e5288eccf33c6661ffa4fcae0add.zip
Bug 463564 - [Performances] Opening a menu in the ModelExplorer takes
several seconds (Mars M6) https://bugs.eclipse.org/bugs/show_bug.cgi?id=463564 - define a cache registry for type and advices - update the profile research for Stereotype dependent advice
Diffstat (limited to 'plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src')
-rw-r--r--plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DefaultEditHelper.java18
1 files changed, 16 insertions, 2 deletions
diff --git a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DefaultEditHelper.java b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DefaultEditHelper.java
index baf4c3d6f2c..d1d47838967 100644
--- a/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DefaultEditHelper.java
+++ b/plugins/infra/gmfdiag/org.eclipse.papyrus.infra.gmfdiag.common/src/org/eclipse/papyrus/infra/gmfdiag/common/helper/DefaultEditHelper.java
@@ -40,6 +40,7 @@ import org.eclipse.papyrus.commands.DestroyElementPapyrusCommand;
import org.eclipse.papyrus.infra.emf.commands.UnsetValueCommand;
import org.eclipse.papyrus.infra.emf.requests.UnsetRequest;
import org.eclipse.papyrus.infra.gmfdiag.common.commands.CreateEditBasedElementCommand;
+import org.eclipse.papyrus.infra.services.edit.utils.CacheRegistry;
import org.eclipse.papyrus.infra.services.edit.utils.IRequestCacheEntries;
/**
@@ -317,6 +318,10 @@ public class DefaultEditHelper extends AbstractEditHelper {
protected IEditHelperAdvice[] getEditHelperAdvice(IEditCommandRequest req) {
IEditHelperAdvice[] advices = null;
Object editHelperContext = req.getEditHelperContext();
+ if (editHelperContext == null) {
+ return null;
+ }
+
Map cacheMaps = (Map) req.getParameter(Cache_Maps);
if (cacheMaps != null) {
if (editHelperContext instanceof IEditHelperContext) {
@@ -348,11 +353,20 @@ public class DefaultEditHelper extends AbstractEditHelper {
if (advices == null) {
if (editHelperContext instanceof EObject) {
- advices = ElementTypeRegistry.getInstance().getEditHelperAdvice((EObject) editHelperContext, req.getClientContext());
+ IElementType type = ElementTypeRegistry.getInstance().getElementType((EObject) editHelperContext, req.getClientContext());
+ advices = CacheRegistry.getInstance().getEditHelperAdvice(req.getClientContext(), type);
+ // advices = ElementTypeRegistry.getInstance().getEditHelperAdvice((EObject) editHelperContext, req.getClientContext());
} else if (editHelperContext instanceof IElementType) {
- advices = ElementTypeRegistry.getInstance().getEditHelperAdvice((IElementType) editHelperContext, req.getClientContext());
+ advices = CacheRegistry.getInstance().getEditHelperAdvice(req.getClientContext(), ((IElementType) editHelperContext));
+ } else if (editHelperContext instanceof IEditHelperContext) {
+ IElementType type = ((IEditHelperContext) editHelperContext).getElementType();
+ if (type != null) {
+ advices = CacheRegistry.getInstance().getEditHelperAdvice(req.getClientContext(), type);
+ } else {
+ advices = ElementTypeRegistry.getInstance().getEditHelperAdvice(editHelperContext);
+ }
} else {
advices = ElementTypeRegistry.getInstance().getEditHelperAdvice(editHelperContext);
}

Back to the top