Skip to content

Commit

Permalink
[538] Fix ownedAction/nestedAction edge in ActionFlow View
Browse files Browse the repository at this point in the history
This commit ensures that the edge is visible if the owned/nested action
is represented outside of its container.

Bug: eclipse-syson#538
Signed-off-by: Gwendal Daniel <gwendal.daniel@obeosoft.com>
  • Loading branch information
gdaniel authored and AxelRICHARD committed Jul 16, 2024
1 parent 6d97ed4 commit 04ddff2
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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));
});
Expand Down
Original file line number Diff line number Diff line change
@@ -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<EClass> getEdgeSources() {
return ActionFlowViewDiagramDescriptionProvider.DEFINITIONS;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,6 @@ public UsageNestedActionUsageEdgeDescriptionProvider(IColorProvider colorProvide

@Override
protected List<EClass> getEdgeSources() {
return ActionFlowViewDiagramDescriptionProvider.USAGES.stream().filter(eClass -> eClass != SysmlPackage.eINSTANCE.getActionUsage()).toList();
return ActionFlowViewDiagramDescriptionProvider.USAGES;
}
}

0 comments on commit 04ddff2

Please sign in to comment.