/** * Copyright (c) 2011 itemis AG and others. * 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: * itemis AG - initial API and implementation * */ package org.yakindu.base.gmf.runtime.editparts; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.LayoutManager; import org.eclipse.draw2d.StackLayout; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.gef.EditPolicy; import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeNodeEditPart; import org.eclipse.gmf.runtime.diagram.ui.editpolicies.NonResizableEditPolicyEx; import org.eclipse.gmf.runtime.gef.ui.figures.DefaultSizeNodeFigure; import org.eclipse.gmf.runtime.gef.ui.figures.NodeFigure; import org.eclipse.gmf.runtime.notation.View; /** * EditPart for Shapes that should not be resized. * * @author andreas muelder (andreas.muelder@itemis.de) * */ public abstract class FixedSizeShapeNodeEditPart extends ShapeNodeEditPart { public FixedSizeShapeNodeEditPart(final View view) { super(view); } public abstract Dimension getDefaultSize(); public abstract IFigure createPrimaryShape(); @Override protected NodeFigure createNodeFigure() { final NodeFigure figure = new DefaultSizeNodeFigure(getDefaultSize()); figure.setLayoutManager(getLayoutManager()); figure.add(createPrimaryShape()); return figure; } protected LayoutManager getLayoutManager() { return new StackLayout(); } @Override protected void createDefaultEditPolicies() { super.createDefaultEditPolicies(); installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new NonResizableEditPolicyEx()); } }