Ptidej-v5.2-master/PADL Serialiser DB4O Tests/rsc/JHotDraw v5.1/src/CH/ifa/draw/standard/FigureTransferCommand.java
/*
 * @(#)FigureTransferCommand.java 5.1
 *
 */

package CH.ifa.draw.standard;

import java.util.Vector;

import CH.ifa.draw.framework.DrawingView;
import CH.ifa.draw.framework.Figure;
import CH.ifa.draw.framework.FigureEnumeration;
import CH.ifa.draw.framework.FigureSelection;
import CH.ifa.draw.util.Clipboard;
import CH.ifa.draw.util.Command;

/**
 * Common base clase for commands that transfer figures
 * between a drawing and the clipboard.
 */
abstract class FigureTransferCommand extends Command {

	protected DrawingView fView;

   /**
	* Constructs a drawing command.
	* @param name the command name
	* @param view the target view
	*/
	protected FigureTransferCommand(String name, DrawingView view) {
		super(name);
		fView = view;
	}

   /**
	* Deletes the selection from the drawing.
	*/
	protected void deleteSelection() {
	   fView.drawing().removeAll(fView.selection());
	   fView.clearSelection();
	}

   /**
	* Copies the selection to the clipboard.
	*/
	protected void copySelection() {
		FigureSelection selection = fView.getFigureSelection();
		Clipboard.getClipboard().setContents(selection);
	}

   /**
	* Inserts a vector of figures and translates them by the
	* given offset.
	*/
	protected void insertFigures(Vector figures, int dx, int dy) {
		FigureEnumeration e = new FigureEnumerator(figures);
		while (e.hasMoreElements()) {
			Figure figure = e.nextFigure();
			figure.moveBy(dx, dy);
			figure = fView.add(figure);
			fView.addToSelection(figure);
		}
	}

}


