package net.ms.designer.editors.componentdetail.policies;
import net.ms.designer.editors.componentdetail.commands.DeleteCommand;
import net.ms.designer.editors.componentdetail.models.ChildTable;
import net.ms.designer.editors.componentdetail.models.CommonField;
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.FlowField;
import net.ms.designer.editors.componentdetail.models.Table;
import org.eclipse.gef.commands.Command;
import org.eclipse.gef.editpolicies.ComponentEditPolicy;
import org.eclipse.gef.requests.GroupRequest;
/**
* @author lili
* @version 1.1.0
*defind the ElementEditPolicy to deal with the deleteRequest
*/
public class ElementEditPolicy extends ComponentEditPolicy {
/*
* ���� Javadoc��
* @see org.eclipse.gef.editpolicies.ComponentEditPolicy#createDeleteCommand(org.eclipse.gef.requests.GroupRequest)
*/
protected Command createDeleteCommand(GroupRequest deleteRequest) {
if((Element)getHost().getModel() instanceof ComponentTable)
{
return null;
}
if(!((Element)getHost().getModel() instanceof ComponentTable)&& !((Element)getHost().getModel() instanceof FlowField)
&&!((Element)getHost().getModel() instanceof CommonField))
{
if(((Table)((Element)getHost().getModel())).getSubTabel().size()>0)
{
return null;
}
}
Object parent = getHost().getParent().getModel();
DeleteCommand deleteCmd = new DeleteCommand();
deleteCmd.setParent((Container) parent);
deleteCmd.setChild((Element) getHost().getModel());
return deleteCmd;
}
}