/******************************************************************************* * Copyright (c) 2011 Red Hat, Inc. * All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.eclipse.bpmn2.modeler.core.features.activity; import org.eclipse.bpmn2.Activity; import org.eclipse.bpmn2.modeler.core.utils.GraphicsUtil; import org.eclipse.bpmn2.modeler.core.utils.StyleUtil; import org.eclipse.bpmn2.modeler.core.utils.GraphicsUtil.Compensation; import org.eclipse.graphiti.features.IFeatureProvider; import org.eclipse.graphiti.mm.pictograms.ContainerShape; public class ActivityCompensateMarkerUpdateFeature extends AbstractMarkerUpdateFeature { public static String IS_COMPENSATE_PROPERTY = "marker.compensate"; public ActivityCompensateMarkerUpdateFeature(IFeatureProvider fp) { super(fp); } @Override String getPropertyKey() { return IS_COMPENSATE_PROPERTY; } @Override boolean isPropertyChanged(Activity activity, String propertyValue) { return activity.isIsForCompensation() != new Boolean(propertyValue); } @Override void doUpdate(Activity activity, ContainerShape markerContainer) { if (activity.isIsForCompensation()) { Compensation compensation = GraphicsUtil.createActivityMarkerCompensate(markerContainer); compensation.arrow1.setForeground(manageColor(StyleUtil.CLASS_FOREGROUND)); compensation.arrow2.setForeground(manageColor(StyleUtil.CLASS_FOREGROUND)); } else { GraphicsUtil.clearActivityMarker(markerContainer, GraphicsUtil.ACTIVITY_MARKER_COMPENSATE); } } @Override String convertPropertyToString(Activity activity) { return Boolean.toString(activity.isIsForCompensation()); } }