📄 shapesetconstraintcommand.java
字号:
/******************************************************************************* * Copyright (c) 2004, 2005 Elias Volanakis 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:�*����Elias Volanakis - initial API and implementation�*******************************************************************************/package net.sf.freenote.commands;import net.sf.freenote.model.Shape;import org.eclipse.draw2d.geometry.Rectangle;import org.eclipse.gef.RequestConstants;import org.eclipse.gef.commands.Command;import org.eclipse.gef.requests.ChangeBoundsRequest;/** * A command to resize and/or move a shape. * The command can be undone or redone. * @author Elias Volanakis */public class ShapeSetConstraintCommand extends Command {/** Stores the new size and location. */private final Rectangle newBounds;/** Stores the old size and location. */private Rectangle oldBounds;/** A request to move/resize an edit part. */private final ChangeBoundsRequest request;/** Shape to manipulate. */private final Shape shape; /** * Create a command that can resize and/or move a shape. * @param shape the shape to manipulate * @param req the move and resize request * @param newBounds the new size and location * @throws IllegalArgumentException if any of the parameters is null */public ShapeSetConstraintCommand(Shape shape, ChangeBoundsRequest req, Rectangle newBounds) { if (shape == null || req == null || newBounds == null) { throw new IllegalArgumentException(); } this.shape = shape; this.request = req; this.newBounds = newBounds.getCopy(); setLabel("move / resize");}/* (non-Javadoc) * @see org.eclipse.gef.commands.Command#canExecute() */public boolean canExecute() { Object type = request.getType(); // make sure the Request is of a type we support: return (RequestConstants.REQ_MOVE.equals(type) || RequestConstants.REQ_MOVE_CHILDREN.equals(type) || RequestConstants.REQ_RESIZE.equals(type) || RequestConstants.REQ_RESIZE_CHILDREN.equals(type) || RequestConstants.REQ_ALIGN.equals(type) || RequestConstants.REQ_ALIGN_CHILDREN.equals(type));}/* (non-Javadoc) * @see org.eclipse.gef.commands.Command#execute() */public void execute() { oldBounds = new Rectangle(shape.getLocation(), shape.getSize()); redo();}/* (non-Javadoc) * @see org.eclipse.gef.commands.Command#redo() */public void redo() { shape.setSize(newBounds.getSize()); shape.setLocation(newBounds.getLocation());}/* (non-Javadoc) * @see org.eclipse.gef.commands.Command#undo() */public void undo() { shape.setSize(oldBounds.getSize()); shape.setLocation(oldBounds.getLocation());}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -