package org.eclipse.epf.diagramming.base.actions;

import java.util.ArrayList;
import java.util.List;

import org.eclipse.gef.EditPart;
import org.eclipse.gef.requests.LocationRequest;

/**
 * Request is communication object for command and ui. Orientation Request is 
 * for vertical or horizontal orientation of EditPart 
 */
public class OrientationRequest extends LocationRequest {

	protected List editParts;
	
	public OrientationRequest(String type) {
		super(type);
	}
	
	public void setSelected(List editParts){
		this.editParts = new ArrayList(editParts);
	}
	public List getSelected(){
		return editParts;
	}
}	
