/** * @author liuchunxia */ package net.ms.designer.editors.workflow.editparts; import java.util.List; import net.ms.designer.editors.workflow.models.WorkflowDiagram; import net.ms.designer.editors.workflow.policies.WorkflowContainerEditPolicy; import net.ms.designer.editors.workflow.policies.WorkflowTreeContainerEditPolicy; import org.eclipse.gef.EditPolicy; import org.eclipse.gef.RootEditPart; import org.eclipse.gef.editpolicies.RootComponentEditPolicy; /** * Tree EditPart for the Container. */ public class WorkflowContainerTreeEditPart extends WorkflowTreeEditPart { /** * Constructor, which initializes this using the * model given as input. */ public WorkflowContainerTreeEditPart(Object model) { super(model); } protected void refreshDiagramStatus(){ if(getLogicDiagram().ifEditAble()) { installEditPolicy(EditPolicy.CONTAINER_ROLE, new WorkflowContainerEditPolicy()); installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE, new WorkflowTreeContainerEditPolicy()); //If this editpart is the contents of the viewer, then it is not deletable! if (getParent() instanceof RootEditPart) installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy()); }else { removeEditPolicy(EditPolicy.CONTAINER_ROLE); removeEditPolicy(EditPolicy.TREE_CONTAINER_ROLE); if (getParent() instanceof RootEditPart) removeEditPolicy(EditPolicy.COMPONENT_ROLE); } } /** * Creates and installs pertinent EditPolicies. */ protected void createEditPolicies() { super.createEditPolicies(); if(getLogicDiagram().ifEditAble()) { installEditPolicy(EditPolicy.CONTAINER_ROLE, new WorkflowContainerEditPolicy()); installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE, new WorkflowTreeContainerEditPolicy()); //If this editpart is the contents of the viewer, then it is not deletable! if (getParent() instanceof RootEditPart) installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy()); }else { installEditPolicy(EditPolicy.CONTAINER_ROLE, null); installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE,null); if (getParent() instanceof RootEditPart) installEditPolicy(EditPolicy.COMPONENT_ROLE, null); } } protected WorkflowDiagram getLogicDiagram() { return (WorkflowDiagram)getModel(); } protected List getModelChildren() { return getLogicDiagram().getChildren(); } }