blob: eefdddaee187d1c6307213e053bc68ea4f6c43a4 [file] [log] [blame]
/*******************************************************************************
* 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);
}
}