| /* |
| * Copyright (c) 2006, 2007 Borland Software Corporation |
| * |
| * 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: |
| * Dmitry Stadnik (Borland) - initial API and implementation |
| */ |
| package org.eclipse.gmf.examples.taipan.gmf.editor.edit.parts; |
| |
| import org.eclipse.draw2d.IFigure; |
| import org.eclipse.gef.EditPart; |
| import org.eclipse.gef.Request; |
| import org.eclipse.gmf.examples.taipan.gmf.editor.edit.policies.WarshipLargeCargoCanonicalEditPolicy; |
| import org.eclipse.gmf.examples.taipan.gmf.editor.edit.policies.WarshipLargeCargoItemSemanticEditPolicy; |
| import org.eclipse.gmf.examples.taipan.gmf.editor.part.Messages; |
| import org.eclipse.gmf.examples.taipan.gmf.editor.part.TaiPanVisualIDRegistry; |
| import org.eclipse.gmf.examples.taipan.gmf.editor.providers.TaiPanElementTypes; |
| 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.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.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; |
| |
| /** |
| * @generated |
| */ |
| public class WarshipLargeCargoEditPart extends ShapeCompartmentEditPart { |
| |
| /** |
| * @generated |
| */ |
| public static final int VISUAL_ID = 7004; |
| |
| /** |
| * @generated |
| */ |
| public WarshipLargeCargoEditPart(View view) { |
| super(view); |
| } |
| |
| /** |
| * @generated |
| */ |
| public String getCompartmentName() { |
| return Messages.WarshipLargeCargoEditPart_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 WarshipLargeCargoItemSemanticEditPolicy()); |
| installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicyWithCustomReparent(TaiPanVisualIDRegistry.TYPED_INSTANCE)); |
| installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy()); |
| installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new WarshipLargeCargoCanonicalEditPolicy()); |
| } |
| |
| /** |
| * @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 == TaiPanElementTypes.LargeItem_3002) { |
| return this; |
| } |
| if (type == TaiPanElementTypes.EmptyBox_3003) { |
| return this; |
| } |
| return getParent().getTargetEditPart(request); |
| } |
| if (request instanceof CreateUnspecifiedTypeConnectionRequest) { |
| return getParent().getTargetEditPart(request); |
| } |
| return super.getTargetEditPart(request); |
| } |
| |
| } |