//------------------------------------------------------------------------------ // Copyright (c) 2005, 2007 IBM Corporation and others. // 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: // IBM Corporation - initial implementation //------------------------------------------------------------------------------ package org.eclipse.epf.diagram.ui.service; import java.util.List; import org.eclipse.emf.common.util.EList; import org.eclipse.epf.uma.Activity; import org.eclipse.epf.uma.WorkBreakdownElement; import org.eclipse.gmf.runtime.notation.Diagram; import org.eclipse.gmf.runtime.notation.Edge; import org.eclipse.gmf.runtime.notation.Node; import org.eclipse.gmf.runtime.notation.View; /** * Class for mapping between Activity Diagram * * @author Shashidhar Kannoori * @author Shilpa Toraskar * @author Chinh Vo * @since 1.2 */ public interface IDiagramUIService { public static final String ACTIVITY_NODE = "Activity"; //$NON-NLS-1$ public static final String PHASE_NODE = "Phase"; //$NON-NLS-1$ public static final String ITERATION_NODE = "Iteration"; //$NON-NLS-1$ public static final String TASK_DESCRIPTOR_NODE = "TaskDescriptor"; //$NON-NLS-1$ public static final String MILESTONE_NODE = "Milestone"; //$NON-NLS-1$ public static final String INITIAL_NODE = "InitialNode"; //$NON-NLS-1$ public static final String FINAL_NODE = "FinalNode"; //$NON-NLS-1$ public static final String FORK_NODE = "ForkNode"; //$NON-NLS-1$ public static final String JOIN_NODE = "JoinNode"; //$NON-NLS-1$ public static final String MERGE_NODE = "MergeNode"; //$NON-NLS-1$ public static final String DECISION_NODE = "DecisionNode"; //$NON-NLS-1$ /** * Returns all diagram nodes in the diagram * @param diagram * @return */ public EList getAllNodes(Diagram diagram); /** * Return diagram node for given node type under given activity and diagram * @param diagram * @param activity * @param nodeType * e.g. IDiagramUIService.ACTIVITY_NODE, etc * @return */ public List<Node> getNodes(Diagram diagram, Activity activity, String nodeType); /** * To create a link * * @param diagram * @param source * @param target * @param linkName * @return */ public Edge createEdge(Diagram diagram, View source, View target, String linkName); /** * Creates diagam node for the given node type * * @param diagram * @param nodeType * @param nodeName * @return */ public Node createNode(Diagram diagram, String nodeType, String nodeName); /** * Create diagram node for the given work breakdown element * @param diagram * @param wbeElement * @return */ public Node createNode(Diagram diagram, WorkBreakdownElement wbeElement); /** * Returns all edges in the diagram * @param diagram * @return */ public EList getEdges(Diagram diagram); /** * Creates an activity diagram for the given activity. * * @param activity * @return */ public Diagram createActivityDiagram(Activity activity); }