diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index 7d7e3617f..13a181c6d 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -110,6 +110,7 @@ The tool now works correctly on packages, and doesn't render sibling elements wh - [syson] Provide new icons for State, Conjugation, Port (in,in/out,out) and Item (in,in/out,out). - https://github.com/eclipse-syson/syson/issues/519[#519] [diagrams] Add tools for creating _Items_ on _ActionDefinition_ in GeneralView and ActionFlowView. - https://github.com/eclipse-syson/syson/issues/504[#504] [syson] Add private and protected visibility decorators on all elements +- https://github.com/eclipse-syson/syson/issues/538[#538] [general-view] Add actions in PartUsage and PartDefinition === New features diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVSubNodeCreationTests.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVSubNodeCreationTests.java index bf1c477b2..b4d92392e 100644 --- a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVSubNodeCreationTests.java +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVSubNodeCreationTests.java @@ -170,7 +170,7 @@ private static Stream itemDefinitionChildNodeParameters() { private static Stream itemUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3)) .map(TestNameGenerator::namedArguments); } @@ -193,8 +193,8 @@ private static Stream packageChildNodeParameters() { Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), ownedMember, 2), // A package doesn't have a compartment: it is handled as a custom node Arguments.of(SysmlPackage.eINSTANCE.getPackage(), ownedMember, 0), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), ownedMember, 5), + Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), ownedMember, 5), Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), ownedMember, 2), Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), ownedMember, 2), Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), ownedMember, 3), @@ -230,7 +230,7 @@ private static Stream partDefinitionChildNodeParameters() { private static Stream partDefinitionSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 5)) .map(TestNameGenerator::namedArguments); } @@ -245,14 +245,14 @@ private static Stream partUsageChildNodeParameters() { private static Stream partUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 5)) .map(TestNameGenerator::namedArguments); } private static Stream allocationUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 5)) .map(TestNameGenerator::namedArguments); } @@ -266,7 +266,7 @@ private static Stream allocationUsageChildNodeParameters() { private static Stream allocationDefinitionSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 5)) .map(TestNameGenerator::namedArguments); } @@ -279,7 +279,7 @@ private static Stream allocationDefinitionChildNodeParameters() { private static Stream interfaceUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedUsage(), 5)) .map(TestNameGenerator::namedArguments); } @@ -303,7 +303,7 @@ private static Stream interfaceDefinitionChildNodeParameters() { private static Stream portUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3)) .map(TestNameGenerator::namedArguments); } @@ -318,7 +318,7 @@ private static Stream portUsageChildNodeParameters() { private static Stream portDefinitionSiblingNodeParameters() { return Stream.of( - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedItem(), 3)) .map(TestNameGenerator::namedArguments); } @@ -341,7 +341,7 @@ private static Stream acceptActionUsagePayloadParameters() { private static Stream actionUsageSiblingNodeParameters() { return Stream.of( - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), 3), Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3)) .map(TestNameGenerator::namedArguments); @@ -395,7 +395,7 @@ private static Stream constraintUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), 3), Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3)) .map(TestNameGenerator::namedArguments); } @@ -409,7 +409,7 @@ private static Stream constraintUsageChildNodeParameters() { private static Stream constraintDefinitionSiblingNodeParameters() { return Stream.of( - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedUsage(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedUsage(), 5)) .map(TestNameGenerator::namedArguments); } @@ -423,7 +423,7 @@ private static Stream constraintDefinitionChildNodeParameters() { private static Stream requirementUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3), Arguments.of(SysmlPackage.eINSTANCE.getRequirementUsage(), SysmlPackage.eINSTANCE.getUsage_NestedRequirement(), 5)) .map(TestNameGenerator::namedArguments); @@ -447,7 +447,7 @@ private static Stream useCaseUsageSiblingNodeParameters() { return Stream.of( Arguments.of(SysmlPackage.eINSTANCE.getAttributeUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), 3), Arguments.of(SysmlPackage.eINSTANCE.getItemUsage(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPart(), 5), Arguments.of(SysmlPackage.eINSTANCE.getPortUsage(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), 3)) .map(TestNameGenerator::namedArguments); } @@ -473,7 +473,7 @@ private static Stream occurrenceUsageChildNodeParameters() { private static Stream occurrenceDefinitionSiblingNodeParameters() { return Stream.of( - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 3)) + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getDefinition_OwnedPart(), 5)) .map(TestNameGenerator::namedArguments); } diff --git a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVTopNodeCreationTests.java b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVTopNodeCreationTests.java index e16335646..a628f4a77 100644 --- a/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVTopNodeCreationTests.java +++ b/backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/diagrams/general/view/GVTopNodeCreationTests.java @@ -116,8 +116,8 @@ private static Stream topNodeParameters() { Arguments.of(SysmlPackage.eINSTANCE.getItemDefinition(), 2), // A package doesn't have a compartment: it is handled as a custom node Arguments.of(SysmlPackage.eINSTANCE.getPackage(), 0), - Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), 3), - Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), 3), + Arguments.of(SysmlPackage.eINSTANCE.getPartUsage(), 5), + Arguments.of(SysmlPackage.eINSTANCE.getPartDefinition(), 5), Arguments.of(SysmlPackage.eINSTANCE.getAllocationUsage(), 2), Arguments.of(SysmlPackage.eINSTANCE.getAllocationDefinition(), 2), Arguments.of(SysmlPackage.eINSTANCE.getInterfaceUsage(), 3), diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewCreateService.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewCreateService.java index 8235bdfcf..2da9bac47 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewCreateService.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewCreateService.java @@ -479,7 +479,7 @@ private Package getClosestContainingPackageFrom(Element element) { public Element createAcceptAction(Element ownerElement) { Feature acceptSubActionsStdAction = this.utilService.findByName(ownerElement, "Actions::Action::acceptSubactions"); - if (ownerElement instanceof ActionUsage || ownerElement instanceof ActionDefinition && acceptSubActionsStdAction != null) { + if (this.isPart(ownerElement) || this.isAction(ownerElement) && acceptSubActionsStdAction != null) { var featureMember = SysmlFactory.eINSTANCE.createFeatureMembership(); var acceptAction = SysmlFactory.eINSTANCE.createAcceptActionUsage(); this.elementInitializerSwitch.doSwitch(acceptAction); @@ -770,7 +770,7 @@ public Element removeStartAction(Node selectedNode, IEditingContext editingConte */ public Element createJoinAction(Element ownerElement) { Feature joinsStdAction = this.utilService.findByName(ownerElement, "Actions::Action::joins"); - if (ownerElement instanceof ActionUsage || ownerElement instanceof ActionDefinition && joinsStdAction != null) { + if (this.isPart(ownerElement) || this.isAction(ownerElement) && joinsStdAction != null) { var featureMember = SysmlFactory.eINSTANCE.createFeatureMembership(); var join = SysmlFactory.eINSTANCE.createJoinNode(); this.elementInitializerSwitch.doSwitch(join); @@ -795,7 +795,7 @@ public Element createJoinAction(Element ownerElement) { */ public Element createForkAction(Element ownerElement) { Feature forksStdAction = this.utilService.findByName(ownerElement, "Actions::Action::forks"); - if (ownerElement instanceof ActionUsage || ownerElement instanceof ActionDefinition && forksStdAction != null) { + if (this.isPart(ownerElement) || this.isAction(ownerElement) && forksStdAction != null) { var featureMember = SysmlFactory.eINSTANCE.createFeatureMembership(); var fork = SysmlFactory.eINSTANCE.createForkNode(); this.elementInitializerSwitch.doSwitch(fork); @@ -820,7 +820,7 @@ public Element createForkAction(Element ownerElement) { */ public Element createMergeAction(Element ownerElement) { Feature mergesStdAction = this.utilService.findByName(ownerElement, "Actions::Action::merges"); - if (ownerElement instanceof ActionUsage || ownerElement instanceof ActionDefinition && mergesStdAction != null) { + if (this.isPart(ownerElement) || this.isAction(ownerElement) && mergesStdAction != null) { var featureMember = SysmlFactory.eINSTANCE.createFeatureMembership(); var merge = SysmlFactory.eINSTANCE.createMergeNode(); this.elementInitializerSwitch.doSwitch(merge); @@ -845,7 +845,7 @@ public Element createMergeAction(Element ownerElement) { */ public Element createDecisionAction(Element ownerElement) { Feature decisionsStdAction = this.utilService.findByName(ownerElement, "Actions::Action::decisions"); - if (ownerElement instanceof ActionUsage || ownerElement instanceof ActionDefinition && decisionsStdAction != null) { + if (this.isPart(ownerElement) || this.isAction(ownerElement) && decisionsStdAction != null) { var featureMember = SysmlFactory.eINSTANCE.createFeatureMembership(); var decision = SysmlFactory.eINSTANCE.createDecisionNode(); this.elementInitializerSwitch.doSwitch(decision); @@ -945,4 +945,12 @@ public Element createPerformAction(Element ownerElement) { ownerElement.getOwnedRelationship().add(featureMember); return perform; } + + private boolean isPart(Element element) { + return element instanceof PartUsage || element instanceof PartDefinition; + } + + private boolean isAction(Element element) { + return element instanceof ActionUsage || element instanceof ActionDefinition; + } } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewNodeService.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewNodeService.java index ab37b19c0..688b331dd 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewNodeService.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewNodeService.java @@ -35,6 +35,8 @@ import org.eclipse.syson.sysml.Element; import org.eclipse.syson.sysml.Membership; import org.eclipse.syson.sysml.Namespace; +import org.eclipse.syson.sysml.PartDefinition; +import org.eclipse.syson.sysml.PartUsage; import org.eclipse.syson.sysml.PerformActionUsage; import org.eclipse.syson.sysml.ReferenceSubsetting; import org.eclipse.syson.sysml.SysmlPackage; @@ -137,7 +139,7 @@ public boolean isHiddenByDefault(Element self, String referenceName) { } public List getAllStandardStartActions(Namespace self) { - if (self instanceof ActionUsage || self instanceof ActionDefinition) { + if (this.isPart(self) || this.isAction(self)) { return self.getOwnedRelationship().stream() .filter(Membership.class::isInstance) .map(Membership.class::cast) @@ -150,7 +152,7 @@ public List getAllStandardStartActions(Namespace self) { } public List getAllStandardDoneActions(Namespace self) { - if (self instanceof ActionUsage || self instanceof ActionDefinition) { + if (this.isPart(self) || this.isAction(self)) { return self.getOwnedRelationship().stream() .filter(Membership.class::isInstance) .map(Membership.class::cast) @@ -199,4 +201,12 @@ private boolean isReferencingPerformActionUsage(PerformActionUsage pau) { return referenceSubSetting != null && referenceSubSetting.getReferencedFeature() instanceof ActionUsage perfomedAction; } + private boolean isPart(Element element) { + return element instanceof PartUsage || element instanceof PartDefinition; + } + + private boolean isAction(Element element) { + return element instanceof ActionUsage || element instanceof ActionDefinition; + } + } diff --git a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/GeneralViewDiagramDescriptionProvider.java b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/GeneralViewDiagramDescriptionProvider.java index 0d6864747..442bc9544 100644 --- a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/GeneralViewDiagramDescriptionProvider.java +++ b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/GeneralViewDiagramDescriptionProvider.java @@ -133,7 +133,9 @@ public class GeneralViewDiagramDescriptionProvider implements IRepresentationDes Map.entry(SysmlPackage.eINSTANCE.getItemDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute())), Map.entry(SysmlPackage.eINSTANCE.getMetadataDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedReference())), Map.entry(SysmlPackage.eINSTANCE.getOccurrenceDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedOccurrence())), - Map.entry(SysmlPackage.eINSTANCE.getPartDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedPort())), + Map.entry(SysmlPackage.eINSTANCE.getPartDefinition(), + List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedPort(), + SysmlPackage.eINSTANCE.getDefinition_OwnedAction())), Map.entry(SysmlPackage.eINSTANCE.getPortDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedPort(), SysmlPackage.eINSTANCE.getDefinition_OwnedReference())), Map.entry(SysmlPackage.eINSTANCE.getRequirementDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getDefinition_OwnedAttribute(), SysmlPackage.eINSTANCE.getDefinition_OwnedRequirement(), SysmlPackage.eINSTANCE.getRequirementDefinition_AssumedConstraint(), SysmlPackage.eINSTANCE.getRequirementDefinition_RequiredConstraint())), Map.entry(SysmlPackage.eINSTANCE.getStateDefinition(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation())), @@ -146,7 +148,9 @@ public class GeneralViewDiagramDescriptionProvider implements IRepresentationDes Map.entry(SysmlPackage.eINSTANCE.getInterfaceUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getUsage_NestedPort())), Map.entry(SysmlPackage.eINSTANCE.getItemUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getUsage_NestedReference())), Map.entry(SysmlPackage.eINSTANCE.getOccurrenceUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedOccurrence())), - Map.entry(SysmlPackage.eINSTANCE.getPartUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getUsage_NestedPort())), + Map.entry(SysmlPackage.eINSTANCE.getPartUsage(), + List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getUsage_NestedPort(), + SysmlPackage.eINSTANCE.getUsage_NestedAction())), Map.entry(SysmlPackage.eINSTANCE.getPerformActionUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedItem(), SysmlPackage.eINSTANCE.getUsage_NestedAction())), Map.entry(SysmlPackage.eINSTANCE.getPortUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getUsage_NestedReference())), Map.entry(SysmlPackage.eINSTANCE.getRequirementUsage(), List.of(SysmlPackage.eINSTANCE.getElement_Documentation(), SysmlPackage.eINSTANCE.getUsage_NestedAttribute(), SysmlPackage.eINSTANCE.getRequirementUsage_AssumedConstraint(), SysmlPackage.eINSTANCE.getRequirementUsage_RequiredConstraint())), @@ -321,6 +325,11 @@ private void addCustomNodeDescriptionProviders(IColorProvider colorProvider, colorProvider, this.getDescriptionNameGenerator())); diagramElementDescriptionProviders.add(new ActionFlowCompartmentNodeDescriptionProvider(SysmlPackage.eINSTANCE.getPerformActionUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAction(), colorProvider, this.getDescriptionNameGenerator())); + diagramElementDescriptionProviders.add(new ActionFlowCompartmentNodeDescriptionProvider(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAction(), colorProvider, + this.getDescriptionNameGenerator())); + diagramElementDescriptionProviders + .add(new ActionFlowCompartmentNodeDescriptionProvider(SysmlPackage.eINSTANCE.getPartDefinition(), SysmlPackage.eINSTANCE.getDefinition_OwnedAction(), colorProvider, + this.getDescriptionNameGenerator())); diagramElementDescriptionProviders.add(new StartActionNodeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); diagramElementDescriptionProviders.add(new DoneActionNodeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); diagramElementDescriptionProviders.add(new JoinActionNodeDescriptionProvider(colorProvider, this.getDescriptionNameGenerator())); diff --git a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/nodes/FakeNodeDescriptionProvider.java b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/nodes/FakeNodeDescriptionProvider.java index 89ef474bc..e06f103f0 100644 --- a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/nodes/FakeNodeDescriptionProvider.java +++ b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/nodes/FakeNodeDescriptionProvider.java @@ -76,6 +76,10 @@ protected List getChildrenDescription(IViewDiagramElementFinder .ifPresent(childrenNodes::add); cache.getNodeDescription(nameGenerator.getFreeFormCompartmentName(SysmlPackage.eINSTANCE.getPerformActionUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAction())) .ifPresent(childrenNodes::add); + cache.getNodeDescription(nameGenerator.getFreeFormCompartmentName(SysmlPackage.eINSTANCE.getPartUsage(), SysmlPackage.eINSTANCE.getUsage_NestedAction())) + .ifPresent(childrenNodes::add); + cache.getNodeDescription(nameGenerator.getFreeFormCompartmentName(SysmlPackage.eINSTANCE.getPartDefinition(), SysmlPackage.eINSTANCE.getDefinition_OwnedAction())) + .ifPresent(childrenNodes::add); return childrenNodes; } diff --git a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/services/GeneralViewNodeToolSectionSwitch.java b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/services/GeneralViewNodeToolSectionSwitch.java index 8b19fdab5..227b162db 100644 --- a/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/services/GeneralViewNodeToolSectionSwitch.java +++ b/backend/views/syson-diagram-general-view/src/main/java/org/eclipse/syson/diagram/general/view/services/GeneralViewNodeToolSectionSwitch.java @@ -253,6 +253,9 @@ public List caseOccurrenceDefinition(OccurrenceDefinition objec public List casePartDefinition(PartDefinition object) { var createSection = this.createPartDefinitionElementsToolSection(); createSection.getNodeTools().addAll(this.createToolsForCompartmentItems(object)); + // Remove New Action tool, we use a custom New Action tool from ActionFlowCompartmentNodeToolProvider + createSection.getNodeTools().removeIf(nodeTool -> Objects.equals(nodeTool.getName(), "New Action")); + createSection.getNodeTools().add(new ActionFlowCompartmentNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(null)); return List.of(createSection, this.toolDescriptionService.addElementsNodeToolSection(true)); } @@ -260,6 +263,9 @@ public List casePartDefinition(PartDefinition object) { public List casePartUsage(PartUsage object) { var createSection = this.createPartUsageElementsToolSection(); createSection.getNodeTools().addAll(this.createToolsForCompartmentItems(object)); + // Remove New Action tool, we use a custom New Action tool from ActionFlowCompartmentNodeToolProvider + // createSection.getNodeTools().removeIf(nodeTool -> Objects.equals(nodeTool.getName(), "New Action")); + createSection.getNodeTools().add(new ActionFlowCompartmentNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(null)); return List.of(createSection, this.toolDescriptionService.addElementsNodeToolSection(true)); } @@ -468,7 +474,16 @@ private NodeToolSection createPartDefinitionElementsToolSection() { this.toolDescriptionService.createNodeToolWithDirection(this.getNodeDescription(SysmlPackage.eINSTANCE.getItemUsage()), SysmlPackage.eINSTANCE.getItemUsage(), null, FeatureDirectionKind.INOUT), this.toolDescriptionService.createNodeToolWithDirection(this.getNodeDescription(SysmlPackage.eINSTANCE.getItemUsage()), SysmlPackage.eINSTANCE.getItemUsage(), - null, FeatureDirectionKind.OUT)); + null, FeatureDirectionKind.OUT), + new StartActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new DoneActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new JoinActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new ForkActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new MergeActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new DecisionActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new AcceptActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new ReferencingPerformActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache), + new PerformActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartDefinition(), this.descriptionNameGenerator).create(this.cache)); } private NodeToolSection createPartUsageElementsToolSection() { @@ -480,7 +495,17 @@ private NodeToolSection createPartUsageElementsToolSection() { null, FeatureDirectionKind.INOUT), this.toolDescriptionService.createNodeToolWithDirection(this.getNodeDescription(SysmlPackage.eINSTANCE.getItemUsage()), SysmlPackage.eINSTANCE.getItemUsage(), null, FeatureDirectionKind.OUT), - this.toolDescriptionService.createNodeTool(this.getNodeDescription(SysmlPackage.eINSTANCE.getPartUsage()), SysmlPackage.eINSTANCE.getPartUsage())); + this.toolDescriptionService.createNodeTool(this.getNodeDescription(SysmlPackage.eINSTANCE.getPartUsage()), SysmlPackage.eINSTANCE.getPartUsage()), + new StartActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new DoneActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new JoinActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new ForkActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new MergeActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new DecisionActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new AcceptActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new ReferencingPerformActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache), + new PerformActionNodeToolProvider(SysmlPackage.eINSTANCE.getPartUsage(), this.descriptionNameGenerator).create(this.cache) + ); } private NodeTool createPayloadNodeTool(EClass payloadType) {