diff --git a/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/ActionFlowViewDiagramDescriptionProvider.java b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/ActionFlowViewDiagramDescriptionProvider.java index 3393b9907..45c507c00 100644 --- a/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/ActionFlowViewDiagramDescriptionProvider.java +++ b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/ActionFlowViewDiagramDescriptionProvider.java @@ -31,12 +31,14 @@ import org.eclipse.sirius.components.view.diagram.DiagramToolSection; import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.syson.diagram.actionflow.view.edges.AllocateEdgeDescriptionProvider; +import org.eclipse.syson.diagram.actionflow.view.edges.DefinitionOwnedActionUsageEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.DependencyEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.FeatureTypingEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.RedefinitionEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.SubclassificationEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.SubsettingEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.edges.SuccessionEdgeDescriptionProvider; +import org.eclipse.syson.diagram.actionflow.view.edges.UsageNestedActionUsageEdgeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.nodes.ActionFlowViewEmptyDiagramNodeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.nodes.CompartmentNodeDescriptionProvider; import org.eclipse.syson.diagram.actionflow.view.nodes.DefinitionNodeDescriptionProvider; @@ -148,6 +150,9 @@ public RepresentationDescription create(IColorProvider colorProvider) { diagramElementDescriptionProviders.add(new DecisionActionNodeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); diagramElementDescriptionProviders.add(new ReferencingPerformActionUsageNodeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); + diagramElementDescriptionProviders.add(new UsageNestedActionUsageEdgeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); + diagramElementDescriptionProviders.add(new DefinitionOwnedActionUsageEdgeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); + DEFINITIONS.forEach(definition -> { diagramElementDescriptionProviders.add(new DefinitionNodeDescriptionProvider(definition, colorProvider)); }); diff --git a/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/DefinitionOwnedActionUsageEdgeDescriptionProvider.java b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/DefinitionOwnedActionUsageEdgeDescriptionProvider.java new file mode 100644 index 000000000..7ff3c9be2 --- /dev/null +++ b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/DefinitionOwnedActionUsageEdgeDescriptionProvider.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2024 Obeo. + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.syson.diagram.actionflow.view.edges; + +import java.util.List; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.sirius.components.view.builder.providers.IColorProvider; +import org.eclipse.syson.diagram.actionflow.view.ActionFlowViewDiagramDescriptionProvider; +import org.eclipse.syson.diagram.common.view.edges.AbstractDefinitionOwnedUsageEdgeDescriptionProvider; +import org.eclipse.syson.sysml.SysmlPackage; +import org.eclipse.syson.util.IDescriptionNameGenerator; + +/** + * Used to create the edge description between definitions and their owned action usages in the Action Flow View + * diagram. + * + * @author gdaniel + */ +public class DefinitionOwnedActionUsageEdgeDescriptionProvider extends AbstractDefinitionOwnedUsageEdgeDescriptionProvider { + + public DefinitionOwnedActionUsageEdgeDescriptionProvider(IColorProvider colorProvider, IDescriptionNameGenerator nameGenerator) { + super(SysmlPackage.eINSTANCE.getActionUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedAction(), colorProvider, nameGenerator); + } + + @Override + protected List getEdgeSources() { + return ActionFlowViewDiagramDescriptionProvider.DEFINITIONS; + } + +} diff --git a/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/UsageNestedActionUsageEdgeDescriptionProvider.java b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/UsageNestedActionUsageEdgeDescriptionProvider.java index 986784208..5c19d8d06 100644 --- a/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/UsageNestedActionUsageEdgeDescriptionProvider.java +++ b/backend/views/syson-diagram-actionflow-view/src/main/java/org/eclipse/syson/diagram/actionflow/view/edges/UsageNestedActionUsageEdgeDescriptionProvider.java @@ -34,6 +34,6 @@ public UsageNestedActionUsageEdgeDescriptionProvider(IColorProvider colorProvide @Override protected List getEdgeSources() { - return ActionFlowViewDiagramDescriptionProvider.USAGES.stream().filter(eClass -> eClass != SysmlPackage.eINSTANCE.getActionUsage()).toList(); + return ActionFlowViewDiagramDescriptionProvider.USAGES; } }