| package org.eclipse.gmf.tooling.examples.linklf.diagram.edit.parts; |
| |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.gef.EditPart; |
| import org.eclipse.gef.Request; |
| import org.eclipse.gmf.runtime.diagram.core.edithelpers.CreateElementRequestAdapter; |
| 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.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.emf.type.core.IElementType; |
| import org.eclipse.gmf.runtime.notation.View; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.policies.ContainerContainerCompartmentCanonicalEditPolicy; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.edit.policies.ContainerContainerCompartmentItemSemanticEditPolicy; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.part.LinklfVisualIDRegistry; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.part.Messages; |
| import org.eclipse.gmf.tooling.examples.linklf.diagram.providers.LinklfElementTypes; |
| import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent; |
| import org.eclipse.gmf.tooling.runtime.linklf.LinkLFShapeCompartmentEditPart; |
| |
| /** |
| * @generated |
| */ |
| public class ContainerContainerCompartmentEditPart extends LinkLFShapeCompartmentEditPart { |
| |
| /** |
| * @generated |
| */ |
| public static final int VISUAL_ID = 7001; |
| |
| /** |
| * @generated |
| */ |
| public ContainerContainerCompartmentEditPart(View view) { |
| super(view); |
| } |
| |
| /** |
| * @generated |
| */ |
| public String getCompartmentName() { |
| return Messages.ContainerContainerCompartmentEditPart_title; |
| } |
| |
| /** |
| * @generated |
| */ |
| public IFigure createFigure() { |
| ResizableCompartmentFigure result = (ResizableCompartmentFigure) super.createFigure(); |
| result.setTitleVisibility(false); |
| return result; |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void createDefaultEditPolicies() { |
| super.createDefaultEditPolicies(); |
| installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new ContainerContainerCompartmentItemSemanticEditPolicy()); |
| installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicyWithCustomReparent(LinklfVisualIDRegistry.TYPED_INSTANCE)); |
| installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); |
| installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new ContainerContainerCompartmentCanonicalEditPolicy()); |
| } |
| |
| /** |
| * @generated |
| */ |
| protected void setRatio(Double ratio) { |
| // nothing to do -- parent layout does not accept Double constraints as ratio |
| // 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 == LinklfElementTypes.Circle_3001) { |
| return this; |
| } |
| if (type == LinklfElementTypes.Container_3002) { |
| return this; |
| } |
| if (type == LinklfElementTypes.Rectangle_3003) { |
| return this; |
| } |
| if (type == LinklfElementTypes.Rhombus_3004) { |
| 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(LinklfElementTypes.Link_4001) || elementType.equals(LinklfElementTypes.LabeledLink_4002)) |
| return super.getTargetEditPart(request); |
| } |
| } |
| } |
| return getParent().getTargetEditPart(request); |
| } |
| return super.getTargetEditPart(request); |
| } |
| |
| } |