/***************************************************************************** * Copyright (c) 2010 CEA LIST. * * * 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: * Patrick Tessier (CEA LIST) Patrick.tessier@cea.fr - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.clazz.custom.policies; import java.util.Collections; import java.util.List; import org.eclipse.gef.EditPart; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.GraphicalEditPart; import org.eclipse.gef.Request; import org.eclipse.gef.commands.Command; import org.eclipse.gef.editpolicies.NonResizableEditPolicy; import org.eclipse.gef.handles.MoveHandle; import org.eclipse.gef.requests.CreateRequest; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.BorderItemSelectionEditPolicy; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.LayoutEditPolicy; import org.eclipse.gmf.runtime.notation.View; import org.eclipse.papyrus.uml.diagram.clazz.edit.parts.ShapeNamedElementNameEditPart; import org.eclipse.papyrus.uml.diagram.clazz.part.UMLVisualIDRegistry; /** * this the layout used to replace layout in the generated code * */ public class ShapeNamedElementLayoutEditPolicy extends LayoutEditPolicy { /** * * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart) * */ protected EditPolicy createChildEditPolicy(EditPart child) { View childView = (View)child.getModel(); switch(UMLVisualIDRegistry.getVisualID(childView)) { case ShapeNamedElementNameEditPart.VISUAL_ID: return new BorderItemSelectionEditPolicy() { protected List<MoveHandle> createSelectionHandles() { MoveHandle mh = new MoveHandle((GraphicalEditPart)getHost()); mh.setBorder(null); return Collections.singletonList(mh); } }; } EditPolicy result = child.getEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE); if(result == null) { result = new NonResizableEditPolicy(); } return result; } /** * * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getMoveChildrenCommand(org.eclipse.gef.Request) * */ protected Command getMoveChildrenCommand(Request request) { return null; } /** * * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest) * */ protected Command getCreateCommand(CreateRequest request) { return null; } }