/******************************************************************************* | |
* Copyright (c) 2016 Fundación Tecnalia Research & Innovation. | |
* | |
* All rights reserved. This program and the accompanying materials | |
* are made available under the terms of the Eclipse Public License v2.0 | |
* which accompanies this distribution, and is available at | |
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* Huascar Espinoza - initial API and implementation | |
* Alejandra Ruíz - initial API and implementation | |
* Idoya Del Río - initial API and implementation | |
* Mari Carmen Palacios - initial API and implementation | |
* Angel López - initial API and implementation | |
*******************************************************************************/ | |
/* | |
* | |
*/ | |
package org.eclipse.opencert.pkm.refframework.refframework.diagram.edit.parts; | |
import org.eclipse.draw2d.IFigure; | |
import org.eclipse.gef.EditPart; | |
import org.eclipse.gef.EditPolicy; | |
import org.eclipse.gef.Request; | |
import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter; | |
import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart; | |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy; | |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; | |
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.ResizableCompartmentEditPolicy; | |
import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure; | |
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateUnspecifiedTypeConnectionRequest; | |
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewAndElementRequest; | |
import org.eclipse.gmf.runtime.diagram.ui.requests.RequestConstants; | |
import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout; | |
import org.eclipse.gmf.runtime.emf.type.core.IElementType; | |
import org.eclipse.gmf.runtime.notation.View; | |
import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent; | |
import org.eclipse.opencert.pkm.refframework.refframework.diagram.edit.policies.RefActivityRefActivitySubActivityCompartmentCanonicalEditPolicy; | |
import org.eclipse.opencert.pkm.refframework.refframework.diagram.edit.policies.RefActivityRefActivitySubActivityCompartmentItemSemanticEditPolicy; | |
import org.eclipse.opencert.pkm.refframework.refframework.diagram.part.Messages; | |
import org.eclipse.opencert.pkm.refframework.refframework.diagram.part.RefframeworkVisualIDRegistry; | |
import org.eclipse.opencert.pkm.refframework.refframework.diagram.providers.RefframeworkElementTypes; | |
/** | |
* @generated | |
*/ | |
public class RefActivityRefActivitySubActivityCompartmentEditPart extends | |
ShapeCompartmentEditPart { | |
/** | |
* @generated | |
*/ | |
public static final int VISUAL_ID = 7001; | |
/** | |
* @generated | |
*/ | |
public RefActivityRefActivitySubActivityCompartmentEditPart(View view) { | |
super(view); | |
} | |
/** | |
* @generated | |
*/ | |
public String getCompartmentName() { | |
return Messages.RefActivityRefActivitySubActivityCompartmentEditPart_title; | |
} | |
/** | |
* @generated | |
*/ | |
public IFigure createFigure() { | |
ResizableCompartmentFigure result = (ResizableCompartmentFigure) super | |
.createFigure(); | |
result.setTitleVisibility(false); | |
return result; | |
} | |
/** | |
* @generated | |
*/ | |
protected void createDefaultEditPolicies() { | |
super.createDefaultEditPolicies(); | |
installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, | |
new ResizableCompartmentEditPolicy()); | |
installEditPolicy( | |
EditPolicyRoles.SEMANTIC_ROLE, | |
new RefActivityRefActivitySubActivityCompartmentItemSemanticEditPolicy()); | |
installEditPolicy(EditPolicyRoles.CREATION_ROLE, | |
new CreationEditPolicyWithCustomReparent( | |
RefframeworkVisualIDRegistry.TYPED_INSTANCE)); | |
installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, | |
new DragDropEditPolicy()); | |
installEditPolicy( | |
EditPolicyRoles.CANONICAL_ROLE, | |
new RefActivityRefActivitySubActivityCompartmentCanonicalEditPolicy()); | |
} | |
/** | |
* @generated | |
*/ | |
protected void setRatio(Double ratio) { | |
if (getFigure().getParent().getLayoutManager() instanceof ConstrainedToolbarLayout) { | |
super.setRatio(ratio); | |
} | |
} | |
/** | |
* @generated | |
*/ | |
public EditPart getTargetEditPart(Request request) { | |
if (request instanceof CreateViewAndElementRequest) { | |
CreateElementRequestAdapter adapter = ((CreateViewAndElementRequest) request) | |
.getViewAndElementDescriptor() | |
.getCreateElementRequestAdapter(); | |
IElementType type = (IElementType) adapter | |
.getAdapter(IElementType.class); | |
if (type == RefframeworkElementTypes.RefActivity_3001) { | |
return this; | |
} | |
return getParent().getTargetEditPart(request); | |
} | |
if (request instanceof CreateUnspecifiedTypeConnectionRequest) { | |
if (RequestConstants.REQ_CONNECTION_END.equals(request.getType())) { | |
for (Object type : ((CreateUnspecifiedTypeConnectionRequest) request) | |
.getElementTypes()) { | |
if (type instanceof IElementType) { | |
IElementType elementType = (IElementType) type; | |
if (elementType | |
.equals(RefframeworkElementTypes.RefActivityPrecedingActivity_4003)) | |
return super.getTargetEditPart(request); | |
} | |
} | |
} | |
return getParent().getTargetEditPart(request); | |
} | |
return super.getTargetEditPart(request); | |
} | |
} |