jfoperationmovelabel.java

来自「用Java开发的、实现类似Visio功能的应用程序源码」· Java 代码 · 共 91 行

JAVA
91
字号
/**
 *    $Id:JFOperationMoveLabel.java $
 *
 *    Copyright 2004 ~ 2005  JingFei International Cooperation LTD. All rights reserved. *
 */
package com.jfimagine.jfgraph.shape.action;


import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

import com.jfimagine.jfgraph.geom.JFPoint;
import com.jfimagine.jfgraph.shape.base.AbstractObject;
import com.jfimagine.jfgraph.shape.base.AbstractShape;   
import com.jfimagine.jfgraph.shape.base.Label;

import com.jfimagine.jfgraph.shape.union.JFPage;

/**
 *  Class JFOperationMoveLabel is used to record a moveLabel operation.
 */
public class JFOperationMoveLabel extends JFOperation{

	/**the offset of the label moved*/
	private double m_xOffset=0;
	private double m_yOffset=0;
	
	/**  
	 *    Constructor.
	 *    @param page A page that used to do opeation.
	 *    @param obj The object has been moveed label(this object must be AbstractObject).
	 *    @param xOffset the x offset of the label moved
	 *    @param yOffset the y offset of the label moved.
	 */        
        public JFOperationMoveLabel(JFPage page,Object obj,double xOffset, double yOffset){
        	m_page	=page;
		setActionId(JFOperation.OPER_MOVELABEL);
		
		if (obj instanceof AbstractObject){
			AbstractObject aObj	=(AbstractObject)obj;
			setObjectId(aObj.getObjectId());
			
			m_xOffset	=xOffset;
			m_yOffset	=yOffset;
		}
	}


	/** undo this operation
	 *  @return new objects selected
	 */
	public List undo(){
		List objList	=new ArrayList();
		
		AbstractObject obj	=getObject();
		if (obj!=null){
			AbstractShape aShape	=(AbstractShape)obj;
			Label aLabel	=aShape.getLabel();
			if (aLabel!=null && aLabel.getMovable()){
				aLabel.moveBy(-1 * m_xOffset, -1 * m_yOffset);
			}
			objList.add(obj);
		}

		return objList;
	}


	/** redo this operation
	 *  @return new objects selected
	 */
	public List redo(){
		List objList	=new ArrayList();
		
		AbstractObject obj	=getObject();
		if (obj!=null){
			AbstractShape aShape	=(AbstractShape)obj;
			Label aLabel	=aShape.getLabel();
			if (aLabel!=null && aLabel.getMovable()){
				aLabel.moveBy(m_xOffset, m_yOffset);
			}
			objList.add(obj);
		}

		return objList;
	}


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?