jfoperationpaste.java
来自「用Java开发的、实现类似Visio功能的应用程序源码」· Java 代码 · 共 97 行
JAVA
97 行
/**
* $Id:JFOperationPaste.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.ObjectList;
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 JFOperationPaste is used to record a paste operation.
*/
public class JFOperationPaste extends JFOperation{
/** a cloned object list */
private ObjectList m_objectList;
/**
* Constructor.
* @param page A page that used to do opeation.
* @param objList An object list to be pasted.
*/
public JFOperationPaste(JFPage page,ObjectList objList){
m_page =page;
setActionId(JFOperation.OPER_PASTE);
try{
m_objectList =(ObjectList)objList.clone();
}catch(Exception e){
m_objectList =null;
}
}
/** undo this operation
* @return new objects selected
*/
public List undo(){
try{
m_page.getCurrentLayer().getShapeList().removeAll(m_objectList.getList());
}catch(Exception e){
}
return null;
}
/** redo this operation
* @return new objects selected
*/
public List redo(){
if (m_objectList==null || m_objectList.size()==0)
return null;
try{
ObjectList objList =(ObjectList)(m_objectList.clone());
ObjectList currShapeList=m_page.getCurrentLayer().getShapeList();
ObjectList attachToList =new ObjectList();
attachToList.getList().addAll(objList.getList());
attachToList.getList().addAll(currShapeList.getList());
//bind real ports.
objList.attachRealPort(attachToList);
//re-set parent objects.
Iterator it =objList.getList().iterator();
while (it!=null && it.hasNext()){
AbstractShape shape =(AbstractShape)it.next();
shape.setParent();
}
objList.setZoomScale(m_page.getZoomScale());
currShapeList.getList().addAll(objList.getList());
return objList.getList();
}catch(Exception e){
return null;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?