package net.ms.designer.editors.componentdetail.policies;
import java.util.List;
import net.ms.designer.editors.componentdetail.commands.CreateCommand;
import net.ms.designer.editors.componentdetail.editparts.DiagramEditPart;
import net.ms.designer.editors.componentdetail.models.ChildTable;
import net.ms.designer.editors.componentdetail.models.ComponentTable;
import net.ms.designer.editors.componentdetail.models.Container;
import net.ms.designer.editors.componentdetail.models.Element;
import net.ms.designer.editors.componentdetail.models.Messages;
import net.ms.designer.editors.componentdetail.models.Table;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.commands.CompoundCommand;
import org.eclipse.gef.editpolicies.ContainerEditPolicy;
import org.eclipse.gef.requests.CreateRequest;
import org.eclipse.gef.requests.GroupRequest;
/**
* @author lili
* @version 1.1.0
*defind the LogicContainerEditPolicy
*/
public class LogicContainerEditPolicy extends ContainerEditPolicy {
/*
* ���� Javadoc��
* @see org.eclipse.gef.editpolicies.ContainerEditPolicy#getCreateCommand(org.eclipse.gef.requests.CreateRequest)
*/
protected Command getCreateCommand(CreateRequest request) {
return null;
}
public Command getOrphanChildrenCommand(GroupRequest request) {
List parts = request.getEditParts();
CompoundCommand result = null;
if (getHost().getModel() instanceof Container) {
result = new CompoundCommand(Messages.getString("")); //$NON-NLS-1$
for (int i = 0; i < parts.size(); i++) {
CreateCommand orphan = new CreateCommand();
orphan
.setChild((Element) ((EditPart) parts.get(i))
.getModel());
orphan.setParent((Container) getHost().getModel());
// orphan.setLabel(Messages.getString("LogicContainerEditPolicy.OrphanCommand")); //$NON-NLS-1$
result.add(orphan);
}
}
if (result != null)
return result.unwrap();
else
return null;
}
}