From 791b135c9a75251ac2a5ad1ad5f7ab96a757a5d6 Mon Sep 17 00:00:00 2001 From: Martin Fluegge Date: Thu, 5 Aug 2010 19:30:24 +0000 Subject: [308232] [Dawn] Develop collaborative support for GMF on CDO https://bugs.eclipse.org/bugs/show_bug.cgi?id=308232 --- .../src/template/GMFFragmentTemplate.xpt | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) (limited to 'plugins/org.eclipse.emf.cdo.dawn.codegen/src') diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt index 2e1f140444..773af4cc1c 100644 --- a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt @@ -287,6 +287,16 @@ public class «FILE "src/"+getDiagramPackagePath()+"/edit/policies/"+this.dawnCanonicalEditingPolicyClassName+".java"» package «this.GMFGenEditorGenerator.diagram.editPoliciesPackageName»; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest; +import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest.ViewDescriptor; +import org.eclipse.gmf.runtime.notation.View; + +import java.util.ArrayList; +import java.util.List; + «EXPAND generatedComment -» public class «this.dawnCanonicalEditingPolicyClassName» extends «this.GMFGenEditorGenerator.diagram.canonicalEditPolicyClassName» { @@ -295,6 +305,38 @@ public class { super(); } + + @Override + protected CreateViewRequest getCreateViewRequest(List descriptors) + { + List viewChildren = getViewChildren(); + + List tbr = new ArrayList(); + + for (ViewDescriptor desc : descriptors) + { + EObject obj = (EObject)((CanonicalElementAdapter)desc.getElementAdapter()).getRealObject(); + + boolean found = false; + + for (View view : viewChildren) + { + if (view.getElement().equals(obj)) + { + found = true; + break; + } + } + if (!found) + { + tbr.add(desc); + } + } + + descriptors.removeAll(tbr); + + return new CreateViewRequest(descriptors); + } } «ENDFILE» «ENDDEFINE» -- cgit v1.2.3