package org.eclipse.uml2.diagram.sequence.edit.helpers; import org.eclipse.gef.Request; import org.eclipse.gmf.runtime.common.core.command.ICommand; import org.eclipse.gmf.runtime.emf.type.core.commands.SetValueCommand; import org.eclipse.gmf.runtime.emf.type.core.requests.ConfigureRequest; import org.eclipse.gmf.runtime.emf.type.core.requests.IEditCommandRequest; import org.eclipse.gmf.runtime.emf.type.core.requests.SetRequest; import org.eclipse.uml2.uml.CombinedFragment; import org.eclipse.uml2.uml.InteractionOperatorKind; import org.eclipse.uml2.uml.UMLPackage; public class InteractionOperatorKindConfigurer { private static final String KEY_OPERATOR_KIND = InteractionOperatorKindConfigurer.class.getCanonicalName() + ".operator-kind"; @SuppressWarnings("unchecked") public static void setOperatorKind(Request request, InteractionOperatorKind kind){ request.getExtendedData().put(KEY_OPERATOR_KIND, kind); } public static InteractionOperatorKind getOperatorKind(IEditCommandRequest request){ Object value = request.getParameter(KEY_OPERATOR_KIND); return value instanceof InteractionOperatorKind ? (InteractionOperatorKind)value : null; } public static ICommand configure(ConfigureRequest configureRequest){ if (false == configureRequest.getElementToConfigure() instanceof CombinedFragment){ return null; } InteractionOperatorKind kind = getOperatorKind(configureRequest); if (kind == null){ return null; } SetRequest setRequest = new SetRequest(configureRequest.getEditingDomain(), // configureRequest.getElementToConfigure(), UMLPackage.eINSTANCE.getCombinedFragment_InteractionOperator(), kind); return new SetValueCommand(setRequest); } }