package org.eclipse.gmf.examples.eclipsecon.diagram.custom.providers;
import org.eclipse.gef.EditPart;
import org.eclipse.gmf.examples.eclipsecon.diagram.custom.editpolicies.PresenterDragDropEditPolicy;
import org.eclipse.gmf.examples.eclipsecon.diagram.custom.editpolicies.OpenResourceURLEditPolicy;
import org.eclipse.gmf.examples.eclipsecon.diagram.edit.parts.ResourceEditPart;
import org.eclipse.gmf.examples.eclipsecon.diagram.edit.parts.TutorialEditPart;
import org.eclipse.gmf.runtime.common.core.service.AbstractProvider;
import org.eclipse.gmf.runtime.common.core.service.IOperation;
import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation;
import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider;
public class EditPolicyProvider extends AbstractProvider implements IEditPolicyProvider {
/* (non-Javadoc)
* @see org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider#createEditPolicies(org.eclipse.gef.EditPart)
*/
public void createEditPolicies(EditPart editPart) {
if (editPart instanceof ResourceEditPart)
editPart.installEditPolicy(EditPolicyRoles.OPEN_ROLE,
new OpenResourceURLEditPolicy());
else if (editPart instanceof TutorialEditPart)
editPart.installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE,
new PresenterDragDropEditPolicy());
}
/* (non-Javadoc)
* @see org.eclipse.gmf.runtime.common.core.service.IProvider#provides(org.eclipse.gmf.runtime.common.core.service.IOperation)
*/
public boolean provides(IOperation operation) {
if (operation instanceof CreateEditPoliciesOperation) {
CreateEditPoliciesOperation cepOper = (CreateEditPoliciesOperation)operation;
if (cepOper.getEditPart() instanceof ResourceEditPart)
return true;
else if (cepOper.getEditPart() instanceof TutorialEditPart)
return true;
}
return false;
}
}