copyandpasteshapeshellaction.java

来自「一个可视化编辑器的基础结构」· Java 代码 · 共 40 行

JAVA
40
字号
package org.goshawk.workflow.GUI.Action;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.goshawk.workflow.GUI.Display.EditorFrame;
import org.goshawk.workflow.GUI.MouseCommand.MouseCommand;
import org.goshawk.workflow.GUI.ShapeShell.ShapeShell;

public class CopyAndPasteShapeShellAction implements ActionListener
{
	Map shapeMap = null;
	public void actionPerformed(ActionEvent e)
	{
		shapeMap = EditorFrame.getCanvas().getShapeMap().getMap();
		Map tempMap = new HashMap();
		Collection shapeSet = shapeMap.values();
		Iterator iter = shapeSet.iterator();
		while(iter.hasNext())
		{
			ShapeShell shape = (ShapeShell) iter.next();
			
			if(shape!=null&&!shape.getId().endsWith(MouseCommand.RECT_AREA)&&shape.isSelected())
			{
				ShapeShell shapeCopy = (ShapeShell) shape.clone();
				shapeCopy.setId(""+shapeCopy.hashCode()+System.currentTimeMillis());
				shapeCopy.setX(shape.getX()+5);
				shapeCopy.setY(shape.getY()+5);
				tempMap.put(shapeCopy.getId(),shapeCopy);
			}
		}
		EditorFrame.getCanvas().getShapeMap().putAll(tempMap);
		EditorFrame.getCanvas().repaint();
	}
}

⌨️ 快捷键说明

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