package org.activiti.designer.util.property; import org.activiti.bpmn.model.FieldExtension; import org.activiti.bpmn.model.ServiceTask; import org.activiti.designer.util.editor.Bpmn2MemoryModel; import org.activiti.designer.util.editor.ModelHandler; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.graphiti.mm.pictograms.Diagram; import org.eclipse.graphiti.mm.pictograms.PictogramElement; import org.eclipse.graphiti.ui.platform.AbstractPropertySectionFilter; public class ActivitiPropertyFilter extends AbstractPropertySectionFilter { protected Object getBusinessObject(PictogramElement element) { if (element == null) return null; Diagram diagram = getContainer(element); Bpmn2MemoryModel model = (ModelHandler.getModel(EcoreUtil.getURI(diagram))); if(model != null) { return model.getFeatureProvider().getBusinessObjectForPictogramElement(element); } return null; } private Diagram getContainer(EObject container) { if(container instanceof Diagram) { return (Diagram) container; } else { return getContainer(container.eContainer()); } } @Override protected boolean accept(PictogramElement element) { return false; } protected boolean isAlfrescoMailScriptTask(ServiceTask serviceTask) { boolean isMailTask = false; for (FieldExtension fieldExtension : serviceTask.getFieldExtensions()) { if ("script".equalsIgnoreCase(fieldExtension.getFieldName())) { if (fieldExtension.getStringValue().contains("mail.execute(bpm_package);")) { isMailTask = true; } } } return isMailTask; } }