blob: 7fc0aa292f196cc2f240b6785d3e9e990d2d31b2 [file] [log] [blame]
/**
*
*/
package org.eclipse.epf.diagramming.base.policies;
import java.util.Iterator;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.gef.commands.Command;
import org.eclipse.gmf.runtime.diagram.ui.commands.CreateCommand;
import org.eclipse.gmf.runtime.diagram.ui.commands.ICommandProxy;
import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
import org.eclipse.gmf.runtime.diagram.ui.l10n.DiagramUIMessages;
import org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest;
import org.eclipse.gmf.runtime.emf.commands.core.command.CompositeTransactionalCommand;
import org.eclipse.gmf.runtime.notation.View;
/**
* CreationEditPolicy for ActivityPartition
* @author Shashidhar Kannoori
*
*/
public class ActivityPartitionCreationEditPolicy extends CreationEditPolicy {
/*
* (non-Javadoc)
* @see org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy#getCreateCommand(org.eclipse.gmf.runtime.diagram.ui.requests.CreateViewRequest)
* @modified
*/
protected Command getCreateCommand(CreateViewRequest request) {
TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost())
.getEditingDomain();
CompositeTransactionalCommand cc = new CompositeTransactionalCommand(
editingDomain, DiagramUIMessages.AddCommand_Label);
Iterator descriptors = request.getViewDescriptors().iterator();
while (descriptors.hasNext()) {
CreateViewRequest.ViewDescriptor descriptor = (CreateViewRequest.ViewDescriptor) descriptors
.next();
View containerView = (View) getHost().getModel();
// while(containerView.getElement() instanceof ActivityPartition){
// containerView = (View)containerView.eContainer();
// }
CreateCommand createCommand = new CreateCommand(editingDomain,
descriptor, containerView);
cc.compose(createCommand);
}
return new ICommandProxy(cc.reduce());
}
}