[527109] Fix a regression when POC is not enabled

Even if the POC is not enabled, there is a regression if someone
contributes a DoubleClickAction.

Bug: 527109
Change-Id: Ic8577e685672030cdeb3574b31ed90510147c302
Signed-off-by: Laurent Redor <laurent.redor@obeo.fr>
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/DoubleClickEditPolicyProvider.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/DoubleClickEditPolicyProvider.java
index bff3fbd..5a77a4b 100644
--- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/DoubleClickEditPolicyProvider.java
+++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/graphical/edit/policies/DoubleClickEditPolicyProvider.java
@@ -21,7 +21,9 @@
 import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation;
 import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider;
 import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.sirius.diagram.DDiagram;
 import org.eclipse.sirius.diagram.DDiagramElement;
+import org.eclipse.sirius.diagram.description.DiagramElementMapping;
 import org.eclipse.sirius.diagram.ui.edit.api.part.IAbstractDiagramNodeEditPart;
 import org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramEdgeEditPart;
 import org.eclipse.sirius.diagram.ui.edit.api.part.IDiagramNameEditPart;
@@ -58,6 +60,7 @@
 
     @Override
     public boolean provides(IOperation operation) {
+        boolean result = false;
         if (operation instanceof CreateEditPoliciesOperation) {
             CreateEditPoliciesOperation castedOperation = (CreateEditPoliciesOperation) operation;
             EditPart editPart = castedOperation.getEditPart();
@@ -65,11 +68,18 @@
             if (model instanceof View) {
                 EObject element = ((View) model).getElement();
                 if (element instanceof DDiagramElement) {
-                    return true;
+                    DDiagramElement dDiagramElement = (DDiagramElement) element;
+                    DDiagram parentDiagram = dDiagramElement.getParentDiagram();
+                    if (parentDiagram.isIsInShowingMode()) {
+                        result = true;
+                    } else {
+                        DiagramElementMapping diagramElementMapping = dDiagramElement.getDiagramElementMapping();
+                        result = diagramElementMapping.getDoubleClickDescription() != null;
+                    }
                 }
             }
         }
-        return false;
+        return result;
     }
 
     @Override