jfoperationremoveport.java
来自「用Java开发的、实现类似Visio功能的应用程序源码」· Java 代码 · 共 91 行
JAVA
91 行
/**
* $Id:JFOperationRemovePort.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;
/**
* Class JFOperationRemovePort is used to record a remove port operation.
*/
public class JFOperationRemovePort extends JFOperation{
/** port currently removed */
private Port m_port =null;
/** position of the port
* A position of a port may change by reasons, so
* here we use a port position to register that.
*/
private JFPoint m_portPosition =new JFPoint();
/**
* Constructor.
* @param page A page that used to do opeation.
* @param port A currently removed port.
*/
public JFOperationRemovePort(JFPage page,Port port){
m_page =page;
setActionId(JFOperation.OPER_REMOVEPORT);
setObjectId(port.getParentId());
try{
m_port =(Port)port.clone();
m_portPosition.setValue(port.getPortPoint());
}catch(Exception e){
}
}
/** undo this operation
* @return new objects selected
*/
public List undo(){
try{
AbstractShape aShape =(AbstractShape)getObject();
Port port =aShape.addPort(m_portPosition.getX(),m_portPosition.getY());
if (port!=null){
port.setAttachedListStr(m_port.getAttachedListStr());
port.attachRealPort(m_page.getCurrentLayer().getShapeList());
m_port =(Port)port.clone();
}
}catch(Exception e){
}
return getObjectList();
}
/** redo this operation
* @return new objects selected
*/
public List redo(){
try{
AbstractShape aShape =(AbstractShape)getObject();
Port port =aShape.getPortByObjectId(m_port.getObjectId());
if (port!=null){
aShape.getPortList().removeByObjectId(m_port.getObjectId());
m_portPosition.setValue(port.getPortPoint());
m_port =(Port)port.clone();
port.detachAll();
}
}catch(Exception e){
}
return getObjectList();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?