/***************************************************************************** * Copyright (c) 2011 Atos. * * * All rights reserved. This program and the accompanying materials * are 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: * Arthur Daussy (Atos) - Initial API and implementation * Arthur Daussy - 371712 : 372745: [ActivityDiagram] Major refactoring group framework * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.activity.activitygroup.request; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.EReference; import org.eclipse.gef.Request; import org.eclipse.gmf.runtime.diagram.ui.editparts.IGraphicalEditPart; import org.eclipse.papyrus.uml.diagram.activity.activitygroup.IContainerNodeDescriptor; import com.google.common.collect.Multimap; public interface IGroupRequest { public static enum GroupRequestType { /** * Refer to an creation event */ CREATION, /** * Refer to an move(and or resize) event */ MOVE, /** * Refresh groups request */ REFRESH } public static String INITIAL_TARGET_REQUEST_NEW_BOUNDS = "GroupFramework_InitialTargetRequestNewBounds";////$NON-NLS-1$ public GroupRequestType getGroupRequestType(); public IGraphicalEditPart getHostRequest(); public Request getInitialRequest(); public IAdaptable getTargetElement(); /** * Get the label of the request * * @return */ public String getLabel(); public IContainerNodeDescriptor getNodeDescpitor(); // /** // * Get the absolute bounds of the initial target. // * For example for changeBoudnsRequest in group. This will represent the bounds of the group after the bounds have changed // * @return // */ // public Rectangle getIntialTargetAbsoluteBounds(); // /** // * Set the absolute bounds of the initial target. // * For example for changeBoudnsRequest in group. This will represent the bounds of the group after the bounds have changed // * @return // */ // public void setIntialTargetAbsoluteBounds(Rectangle bounds); /** * Map which link an An Reference to it's values * * @return */ public Multimap<EReference, EObject> getParentEReferenceMap(); /** * Map which link an EObject to its {@link EReference} of the current target * * @return */ public Multimap<EReference, EObject> getChildrenEReferenceMap(); }