| /******************************************************************************* |
| * 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 v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * 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.RefActivityRefActivitySubActivityCompartment2CanonicalEditPolicy; |
| import org.eclipse.opencert.pkm.refframework.refframework.diagram.edit.policies.RefActivityRefActivitySubActivityCompartment2ItemSemanticEditPolicy; |
| 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 RefActivityRefActivitySubActivityCompartment2EditPart extends |
| ShapeCompartmentEditPart { |
| |
| /** |
| * @generated |
| */ |
| public static final int VISUAL_ID = 7002; |
| |
| /** |
| * @generated |
| */ |
| public RefActivityRefActivitySubActivityCompartment2EditPart(View view) { |
| super(view); |
| } |
| |
| /** |
| * @generated |
| */ |
| public String getCompartmentName() { |
| return Messages.RefActivityRefActivitySubActivityCompartment2EditPart_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 RefActivityRefActivitySubActivityCompartment2ItemSemanticEditPolicy()); |
| installEditPolicy(EditPolicyRoles.CREATION_ROLE, |
| new CreationEditPolicyWithCustomReparent( |
| RefframeworkVisualIDRegistry.TYPED_INSTANCE)); |
| installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, |
| new DragDropEditPolicy()); |
| installEditPolicy( |
| EditPolicyRoles.CANONICAL_ROLE, |
| new RefActivityRefActivitySubActivityCompartment2CanonicalEditPolicy()); |
| } |
| |
| /** |
| * @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); |
| } |
| |
| } |