jfoperationgroup.java

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

JAVA
81
字号
/**
 *    $Id:JFOperationGroup.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.Port;

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

/**
 *  Class JFOperationGroup is used to record a group shape operation.
 */
public class JFOperationGroup extends JFOperation{

	/** the group id of a group */
	private int m_groupId	=0;


	/**  
	 *    Constructor.
	 *    @param page A page that used to do opeation.
	 *    @param g A group newly created.
	 */        
        public JFOperationGroup(JFPage page,JFGroup g){
        	m_page	=page;
		setActionId(JFOperation.OPER_GROUP);
		m_groupId	=g.getObjectId();
		setObjectList(g.getList().getList());
	}


	/** undo this operation 
	 *  @return new objects selected
	 */
	public List undo(){
		
		AbstractShape  aShape	=(AbstractShape)getObject(m_groupId,true);
		if (aShape==null || !(aShape instanceof JFGroup))
			return null;
		
		JFGroup g	=(JFGroup)aShape;
		List groupList	=new ArrayList();
		groupList.add(g);
		
		List l	=m_page.ungroupShapes(groupList);
		return l;
	}


	/** redo this operation
	 *  @return new objects selected
	 */
	public List redo(){

		List groupList	=new ArrayList();
		try{
			AbstractObject obj	=m_page.groupShapes(getObjectList());
			obj.setObjectId(m_groupId);
			groupList.add(obj);
		}catch(Exception e){
		}
		
		
		return groupList;
	}

	
}

⌨️ 快捷键说明

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