diff --git a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/configuration/SysMLv2PropertiesConfigurer.java b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/configuration/SysMLv2PropertiesConfigurer.java index 0d8333e76..3b79ec4a7 100644 --- a/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/configuration/SysMLv2PropertiesConfigurer.java +++ b/backend/application/syson-application-configuration/src/main/java/org/eclipse/syson/application/configuration/SysMLv2PropertiesConfigurer.java @@ -64,6 +64,7 @@ import org.eclipse.syson.sysml.helper.LabelConstants; import org.eclipse.syson.util.AQLConstants; import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.springframework.context.annotation.Configuration; @@ -516,7 +517,7 @@ private FormElementFor createCoreWidgets() { FormElementFor forElt = FormFactory.eINSTANCE.createFormElementFor(); forElt.setName("Widgets for Core Group"); forElt.setIterator(E_STRUCTURAL_FEATURE); - forElt.setIterableExpression(AQLUtils.getSelfServiceCallExpression("getCoreFeatures")); + forElt.setIterableExpression(ServiceMethod.of0(DetailsViewService::getCoreFeatures).aqlSelf()); forElt.getChildren().addAll(this.createWidgets()); return forElt; } @@ -525,7 +526,7 @@ private FormElementFor createAdvancedWidgets() { FormElementFor forElt = FormFactory.eINSTANCE.createFormElementFor(); forElt.setName("Widgets for Advanced Group"); forElt.setIterator(E_STRUCTURAL_FEATURE); - forElt.setIterableExpression(AQLUtils.getSelfServiceCallExpression("getAdvancedFeatures")); + forElt.setIterableExpression(ServiceMethod.of0(DetailsViewService::getAdvancedFeatures).aqlSelf()); forElt.getChildren().addAll(this.createWidgets()); return forElt; } @@ -659,7 +660,7 @@ private FormElementDescription createDocumentationWidget() { TextAreaDescription textarea = FormFactory.eINSTANCE.createTextAreaDescription(); textarea.setName("DocumentationWidget"); textarea.setLabelExpression("Documentation"); - textarea.setValueExpression(AQLUtils.getSelfServiceCallExpression("getDocumentation")); + textarea.setValueExpression(ServiceMethod.of0(DetailsViewService::getDocumentation).aqlSelf()); textarea.setHelpExpression("Use 'shift + enter' to add new lines"); textarea.setIsEnabledExpression("aql:not(self.isReadOnly())"); ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext(); @@ -676,7 +677,7 @@ private FormElementDescription createCommentWidget() { TextAreaDescription textarea = FormFactory.eINSTANCE.createTextAreaDescription(); textarea.setName("CommentWidget"); textarea.setLabelExpression("Comment"); - textarea.setValueExpression(AQLUtils.getSelfServiceCallExpression("getCommentBody")); + textarea.setValueExpression(ServiceMethod.of0(DetailsViewService::getCommentBody).aqlSelf()); textarea.setHelpExpression("Use 'shift + enter' to add new lines"); textarea.setIsEnabledExpression("aql:not(self.isReadOnly())"); ChangeContext setNewValueOperation = ViewFactory.eINSTANCE.createChangeContext(); diff --git a/backend/application/syson-application/src/main/resources/application.properties b/backend/application/syson-application/src/main/resources/application.properties index 1ab14f212..3c513415b 100644 --- a/backend/application/syson-application/src/main/resources/application.properties +++ b/backend/application/syson-application/src/main/resources/application.properties @@ -31,6 +31,10 @@ logging.level.org.eclipse.sirius.web.diagrams.layout.LayoutService=OFF # Prevent Elasticsearch from scanning SysON repositories spring.data.elasticsearch.repositories.enabled=false +# Prevent liquibase to collect analytics +# see https://docs.liquibase.com/reference-guide/parameters/analytics-enabled +liquibase.analytics.enabled=false + ################################################## # # SYSON CUSTOM IMAGES FOR IMAGES NODES diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractFeatureValueEdgeDescriptionProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractFeatureValueEdgeDescriptionProvider.java index c06612124..488b03c22 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractFeatureValueEdgeDescriptionProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractFeatureValueEdgeDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2025 Obeo. + * Copyright (c) 2025, 2026 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 @@ -25,9 +25,12 @@ import org.eclipse.sirius.components.view.diagram.LineStyle; import org.eclipse.sirius.components.view.diagram.NodeDescription; import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy; +import org.eclipse.syson.diagram.common.view.services.ViewEdgeService; import org.eclipse.syson.sysml.BindingConnectorAsUsage; import org.eclipse.syson.sysml.SysmlPackage; +import org.eclipse.syson.util.AQLConstants; import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.eclipse.syson.util.ViewConstants; @@ -78,10 +81,10 @@ public EdgeDescription create() { .centerLabelExpression("=") .name(this.getName()) .semanticCandidatesExpression(AQLUtils.getSelfServiceCallExpression("getAllReachable", domainType)) - .sourceExpression("aql:self.featureWithValue") + .sourceExpression(AQLConstants.AQL_SELF + "." + SysmlPackage.eINSTANCE.getFeatureValue_FeatureWithValue().getName()) .style(this.createEdgeStyle()) .synchronizationPolicy(SynchronizationPolicy.SYNCHRONIZED) - .targetExpression(AQLUtils.getSelfServiceCallExpression("getFeatureValueTarget")) + .targetExpression(ServiceMethod.of0(ViewEdgeService::getFeatureValueTarget).aqlSelf()) .build(); } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractTransitionEdgeDescriptionProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractTransitionEdgeDescriptionProvider.java index 7395d87e9..a40a02bff 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractTransitionEdgeDescriptionProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/edges/AbstractTransitionEdgeDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -34,11 +34,14 @@ import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy; import org.eclipse.syson.diagram.common.view.nodes.DoneActionNodeDescriptionProvider; import org.eclipse.syson.diagram.common.view.nodes.StartActionNodeDescriptionProvider; +import org.eclipse.syson.diagram.common.view.services.ViewEdgeService; +import org.eclipse.syson.diagram.services.aql.DiagramQueryAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.sysml.TransitionUsage; import org.eclipse.syson.util.AQLConstants; import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.eclipse.syson.util.ViewConstants; @@ -66,15 +69,16 @@ public EdgeDescription create() { return this.getDiagramBuilderHelper().newEdgeDescription() .domainType(domainType) .isDomainBasedEdge(true) - .centerLabelExpression(AQLUtils.getSelfServiceCallExpression("getTransitionLabel")) + .centerLabelExpression(ServiceMethod.of0(DiagramQueryAQLService::getTransitionLabel).aqlSelf()) .name(this.getEdgeDescriptionName()) - .preconditionExpression("aql:graphicalEdgeSource.isInSameGraphicalContainer(graphicalEdgeTarget,cache)") + .preconditionExpression(ServiceMethod.of2(ViewEdgeService::isInSameGraphicalContainer).aql(org.eclipse.sirius.components.diagrams.description.EdgeDescription.GRAPHICAL_EDGE_SOURCE, + org.eclipse.sirius.components.diagrams.description.EdgeDescription.GRAPHICAL_EDGE_TARGET, org.eclipse.sirius.components.diagrams.description.DiagramDescription.CACHE)) .semanticCandidatesExpression(AQLUtils.getSelfServiceCallExpression("getAllReachable", domainType)) - .sourceExpression(AQLConstants.AQL_SELF + ".source") + .sourceExpression(AQLConstants.AQL_SELF + "." + SysmlPackage.eINSTANCE.getTransitionUsage_Source().getName()) .style(this.createDefaultEdgeStyle()) .conditionalStyles(this.createStateConditionalStyle()) .synchronizationPolicy(SynchronizationPolicy.SYNCHRONIZED) - .targetExpression(AQLConstants.AQL_SELF + ".target") + .targetExpression(AQLConstants.AQL_SELF + "." + SysmlPackage.eINSTANCE.getTransitionUsage_Target().getName()) .build(); } @@ -91,18 +95,18 @@ public void link(DiagramDescription diagramDescription, IViewDiagramElementFinde @Override protected ChangeContextBuilder getSourceReconnectToolBody() { return this.getViewBuilderHelper().newChangeContext() - .expression(AQLUtils.getServiceCallExpression(AQLConstants.EDGE_SEMANTIC_ELEMENT, "reconnectSourceTransitionEdge", AQLConstants.SEMANTIC_RECONNECTION_TARGET)); + .expression(ServiceMethod.of1(ViewEdgeService::reconnectSourceTransitionEdge).aql(AQLConstants.EDGE_SEMANTIC_ELEMENT, AQLConstants.SEMANTIC_RECONNECTION_TARGET)); } @Override protected ChangeContextBuilder getTargetReconnectToolBody() { return this.getViewBuilderHelper().newChangeContext() - .expression(AQLUtils.getServiceCallExpression(AQLConstants.EDGE_SEMANTIC_ELEMENT, "reconnectTargetTransitionEdge", AQLConstants.SEMANTIC_RECONNECTION_TARGET)); + .expression(ServiceMethod.of1(ViewEdgeService::reconnectTargetTransitionEdge).aql(AQLConstants.EDGE_SEMANTIC_ELEMENT, AQLConstants.SEMANTIC_RECONNECTION_TARGET)); } @Override protected String getSourceReconnectToolPreconditionExpression() { - return AQLUtils.getServiceCallExpression(AQLConstants.SEMANTIC_OTHER_END, "checkTransitionEdgeTarget", AQLConstants.SEMANTIC_RECONNECTION_TARGET); + return ServiceMethod.of1(ViewEdgeService::checkTransitionEdgeTarget).aql(AQLConstants.SEMANTIC_OTHER_END, AQLConstants.SEMANTIC_RECONNECTION_TARGET); } @Override @@ -165,7 +169,7 @@ protected ConditionalEdgeStyle createStateConditionalStyle() { .lineStyle(LineStyle.SOLID) .sourceArrowStyle(ArrowStyle.NONE) .targetArrowStyle(ArrowStyle.INPUT_ARROW) - .condition(AQLUtils.getSelfServiceCallExpression("isTransitionUsageForState")) + .condition(ServiceMethod.of0(ViewEdgeService::isTransitionUsageForState).aqlSelf()) .build(); } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/DoneActionNodeDescriptionProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/DoneActionNodeDescriptionProvider.java index fe6dbe339..90d45bba2 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/DoneActionNodeDescriptionProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/DoneActionNodeDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -21,9 +21,10 @@ import org.eclipse.sirius.components.view.diagram.NodePalette; import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy; import org.eclipse.sirius.components.view.diagram.UserResizableDirection; +import org.eclipse.syson.services.UtilService; import org.eclipse.syson.sysml.SysmlPackage; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; /** @@ -51,7 +52,7 @@ public NodeDescription create() { .defaultWidthExpression("36") .defaultHeightExpression("36") .name(this.descriptionNameGenerator.getNodeName(DONE_ACTION_NAME)) - .semanticCandidatesExpression(AQLUtils.getSelfServiceCallExpression("retrieveStandardDoneAction")) + .semanticCandidatesExpression(ServiceMethod.of0(UtilService::retrieveStandardDoneAction).aqlSelf()) .style(this.createImageNodeStyleDescription("images/done_action.svg")) .userResizable(UserResizableDirection.NONE) .synchronizationPolicy(SynchronizationPolicy.UNSYNCHRONIZED) diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/StartActionNodeDescriptionProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/StartActionNodeDescriptionProvider.java index ef4b23147..2f556ccf8 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/StartActionNodeDescriptionProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/nodes/StartActionNodeDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -27,9 +27,11 @@ import org.eclipse.sirius.components.view.diagram.NodePalette; import org.eclipse.sirius.components.view.diagram.SynchronizationPolicy; import org.eclipse.sirius.components.view.diagram.UserResizableDirection; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; +import org.eclipse.syson.services.UtilService; import org.eclipse.syson.sysml.SysmlPackage; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; /** @@ -57,7 +59,7 @@ public NodeDescription create() { .defaultWidthExpression("28") .defaultHeightExpression("28") .name(this.descriptionNameGenerator.getNodeName(START_ACTION_NAME)) - .semanticCandidatesExpression(AQLUtils.getSelfServiceCallExpression("retrieveStandardStartAction")) + .semanticCandidatesExpression(ServiceMethod.of0(UtilService::retrieveStandardStartAction).aqlSelf()) .style(this.createImageNodeStyleDescription("images/start_action.svg")) .userResizable(UserResizableDirection.NONE) .synchronizationPolicy(SynchronizationPolicy.UNSYNCHRONIZED) @@ -87,14 +89,13 @@ private NodePalette createNodePalette(IViewDiagramElementFinder cache) { private List getEdgeTools(IViewDiagramElementFinder cache) { var targetElementDescriptions = this.getStartTargetDescriptions(cache); - var builder = this.diagramBuilderHelper.newEdgeTool(); - var params = List.of(EdgeDescription.SEMANTIC_EDGE_TARGET, EdgeDescription.EDGE_SOURCE, EdgeDescription.EDGE_TARGET, IEditingContext.EDITING_CONTEXT, IDiagramService.DIAGRAM_SERVICES); - var body = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getServiceCallExpression(EdgeDescription.SEMANTIC_EDGE_SOURCE, "createSuccessionEdge", params)); - - var createStartEdgeTool = builder.name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getSuccession())) + var createStartEdgeTool = this.diagramBuilderHelper.newEdgeTool().name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getSuccession())) .iconURLsExpression("/icons/full/obj16/Succession.svg") - .body(body.build()) + .body(this.viewBuilderHelper.newChangeContext() + .expression( + ServiceMethod.of5(ViewCreateService::createSuccessionEdge).aql(EdgeDescription.SEMANTIC_EDGE_SOURCE, EdgeDescription.SEMANTIC_EDGE_TARGET, EdgeDescription.EDGE_SOURCE, + EdgeDescription.EDGE_TARGET, IEditingContext.EDITING_CONTEXT, IDiagramService.DIAGRAM_SERVICES)) + .build()) .targetElementDescriptions(targetElementDescriptions.toArray(NodeDescription[]::new)) .build(); diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeService.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeService.java index 5fef30426..9b0bec135 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeService.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeService.java @@ -352,7 +352,7 @@ public TransitionUsage reconnectTargetTransitionEdge(TransitionUsage transition, * The target of the transition * @return */ - private boolean checkTransitionEdgeTarget(Element source, Element target) { + public boolean checkTransitionEdgeTarget(Element source, Element target) { boolean sameParent = false; if (source instanceof ActionUsage sourceAction && target instanceof ActionUsage targetAction) { Element sourceParentElement = sourceAction.getOwner(); diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeToolSwitch.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeToolSwitch.java index 4c80b9181..32fc9a86e 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeToolSwitch.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/ViewEdgeToolSwitch.java @@ -87,7 +87,7 @@ public List caseAcceptActionUsage(AcceptActionUsage object) { var edgeTools = new ArrayList(); edgeTools.add(this.edgeToolService.createSuccessionEdgeTool(this.getSuccessionEdgeTargets())); edgeTools.addAll(this.caseUsage(object)); - // since AcceptActionDefintion does not exist, this.caseUsage did not manage the FeatureTyping edge, we need to add it manually. + // since AcceptActionDefinition does not exist, this.caseUsage did not manage the FeatureTyping edge, we need to add it manually. this.addFeatureTypingEdgeToolForActionUsageSubType(edgeTools); return edgeTools; } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/description/ToolDescriptionService.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/description/ToolDescriptionService.java index 8c65e41d5..98920f589 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/description/ToolDescriptionService.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/services/description/ToolDescriptionService.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -34,6 +34,7 @@ import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; import org.eclipse.syson.model.services.aql.ModelMutationAQLService; +import org.eclipse.syson.services.UtilService; import org.eclipse.syson.sysml.Feature; import org.eclipse.syson.sysml.FeatureDirectionKind; import org.eclipse.syson.sysml.FeatureMembership; @@ -191,7 +192,7 @@ public NodeTool addExistingElementsTool(boolean recursive, boolean nested) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var changeContextViewUsageOwner = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("getViewUsageOwner")) + .expression(ServiceMethod.of0(UtilService::getViewUsageOwner).aqlSelf()) .children(addToExposedElements.build()); String title = "Add existing elements"; diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AcceptActionPortUsageReceiverToolNodeProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AcceptActionPortUsageReceiverToolNodeProvider.java index 6fe6efd40..f0f603c46 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AcceptActionPortUsageReceiverToolNodeProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/AcceptActionPortUsageReceiverToolNodeProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -17,10 +17,11 @@ import org.eclipse.sirius.components.view.builder.generated.view.ViewBuilders; import org.eclipse.sirius.components.view.builder.providers.INodeToolProvider; import org.eclipse.sirius.components.view.diagram.NodeTool; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; import org.eclipse.syson.sysml.PortUsage; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; /** * Used to create a {@link PortUsage} as the receiver of an accept action usage. @@ -38,7 +39,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { var builder = this.diagramBuilderHelper.newNodeTool(); var creationPayloadServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createAcceptActionReceiver")) + .expression(ServiceMethod.of0(ViewCreateService::createAcceptActionReceiver).aqlSelf()) .build(); var rootChangContext = this.viewBuilderHelper.newChangeContext() @@ -49,7 +50,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { return builder.name("New Port as Receiver") .iconURLsExpression("/icons/full/obj16/" + SysmlPackage.eINSTANCE.getPortUsage().getName() + ".svg") .body(rootChangContext) - .preconditionExpression(AQLUtils.getSelfServiceCallExpression("isEmptyAcceptActionUsageReceiver")) + .preconditionExpression(ServiceMethod.of0(ViewCreateService::isEmptyAcceptActionUsageReceiver).aqlSelf()) .build(); } } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/ExhibitStateWithReferenceNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/ExhibitStateWithReferenceNodeToolProvider.java index 727345388..60e221143 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/ExhibitStateWithReferenceNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/ExhibitStateWithReferenceNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -12,7 +12,6 @@ *******************************************************************************/ package org.eclipse.syson.diagram.common.view.tools; -import java.util.List; import java.util.Objects; import org.eclipse.sirius.components.collaborative.diagrams.DiagramContext; @@ -25,8 +24,12 @@ import org.eclipse.sirius.components.view.diagram.NodeContainmentKind; import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; +import org.eclipse.syson.diagram.common.view.services.ViewNodeService; +import org.eclipse.syson.diagram.common.view.services.ViewToolService; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; import org.eclipse.syson.model.services.aql.ModelMutationAQLService; +import org.eclipse.syson.services.UtilService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; @@ -55,7 +58,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { var builder = this.diagramBuilderHelper.newNodeTool(); var setReferencedFeature = this.viewBuilderHelper.newSetValue() - .featureName("referencedFeature") + .featureName(SysmlPackage.eINSTANCE.getReferenceSubsetting_ReferencedFeature().getName()) .valueExpression("aql:selectedObject"); var changeContextReferenceSubsetting = this.viewBuilderHelper.newChangeContext() @@ -63,7 +66,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .children(setReferencedFeature.build()); var initializeReferenceSubsetting = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getServiceCallExpression("newRefSubsetting", "elementInitializer")); + .expression(ServiceMethod.of0(ViewCreateService::elementInitializer).aql("newRefSubsetting")); var createReferenceSubsettingInstance = this.viewBuilderHelper.newCreateInstance() .typeName(SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getReferenceSubsetting())) @@ -76,20 +79,20 @@ public NodeTool create(IViewDiagramElementFinder cache) { var createView = this.diagramBuilderHelper.newCreateView() .containmentKind(NodeContainmentKind.CHILD_NODE) .elementDescription(nodeDescription) - .parentViewExpression(AQLUtils.getSelfServiceCallExpression("getParentViewExpression", Node.SELECTED_NODE)) + .parentViewExpression(ServiceMethod.of1(ViewToolService::getParentViewExpression).aqlSelf(Node.SELECTED_NODE)) .semanticElementExpression("aql:newInstance") .variableName("newInstanceView"); var revealOperation = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getServiceCallExpression(Node.SELECTED_NODE, "revealCompartment", - List.of("newInstance", DiagramContext.DIAGRAM_CONTEXT, IEditingContext.EDITING_CONTEXT, ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE))); + .expression(ServiceMethod.of4(ViewNodeService::revealCompartment).aql(Node.SELECTED_NODE, "newInstance", DiagramContext.DIAGRAM_CONTEXT, IEditingContext.EDITING_CONTEXT, + ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var updateExposedElements = this.viewBuilderHelper.newChangeContext() .expression(ServiceMethod.of4(DiagramMutationAQLService::expose).aqlSelf(IEditingContext.EDITING_CONTEXT, DiagramContext.DIAGRAM_CONTEXT, Node.SELECTED_NODE, ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var changeContextNewInstance = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getServiceCallExpression("newInstance", "elementInitializer")) + .expression(ServiceMethod.of0(ViewCreateService::elementInitializer).aql("newInstance")) .children(createReferenceSubsettingInstance.build(), updateExposedElements.build()); var createEClassInstance = this.viewBuilderHelper.newCreateInstance() @@ -113,7 +116,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .children(createEClassInstance.build()); var changeContextViewUsageOwner = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("getViewUsageOwner")) + .expression(ServiceMethod.of0(UtilService::getViewUsageOwner).aqlSelf()) .children(changeContextMembership.build()); var toolLabel = this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getExhibitStateUsage()) + " with referenced State"; diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/NamespaceImportNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/NamespaceImportNodeToolProvider.java index 6db7744ce..43433e2a0 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/NamespaceImportNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/NamespaceImportNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -15,6 +15,7 @@ import java.util.Objects; import org.eclipse.emf.ecore.EClass; +import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.view.builder.IViewDiagramElementFinder; import org.eclipse.sirius.components.view.builder.generated.diagram.DiagramBuilders; import org.eclipse.sirius.components.view.builder.generated.view.ViewBuilders; @@ -23,11 +24,15 @@ import org.eclipse.sirius.components.view.diagram.NodeDescription; import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.diagram.SelectionDialogDescription; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; +import org.eclipse.syson.diagram.common.view.services.ViewToolService; +import org.eclipse.syson.services.UtilService; import org.eclipse.syson.sysml.NamespaceImport; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; +import org.eclipse.syson.util.ServiceMethod; +import org.eclipse.syson.util.SysMLMetamodelHelper; /** * Used to create a {@link NamespaceImport}. @@ -60,11 +65,11 @@ public NodeTool create(IViewDiagramElementFinder cache) { .semanticElementExpression(AQLConstants.AQL_SELF); var changeContextNewInstance = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createNamespaceImport", "selectedObject")) + .expression(ServiceMethod.of1(ViewCreateService::createNamespaceImport).aqlSelf("selectedObject")) .children(createView.build()); var changeContextViewUsageOwner = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("getViewUsageOwner")) + .expression(ServiceMethod.of0(UtilService::getViewUsageOwner).aqlSelf()) .children(changeContextNewInstance.build()); return this.diagramBuilderHelper.newNodeTool() @@ -76,10 +81,12 @@ public NodeTool create(IViewDiagramElementFinder cache) { } private SelectionDialogDescription getSelectionDialogDescription() { + var domainType = SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getPackage()); + var selectionDialogTree = this.diagramBuilderHelper.newSelectionDialogTreeDescription() - .elementsExpression(AQLUtils.getServiceCallExpression("editingContext", "getNamespaceImportSelectionDialogElements")) - .childrenExpression(AQLUtils.getSelfServiceCallExpression("getNamespaceImportSelectionDialogChildren")) - .isSelectableExpression("aql:self.oclIsKindOf(sysml::Package)") + .elementsExpression(ServiceMethod.of0(ViewToolService::getNamespaceImportSelectionDialogElements).aql(IEditingContext.EDITING_CONTEXT)) + .childrenExpression(ServiceMethod.of0(ViewToolService::getNamespaceImportSelectionDialogChildren).aqlSelf()) + .isSelectableExpression(AQLConstants.AQL_SELF + ".oclIsKindOf(" + domainType + ")") .build(); return this.diagramBuilderHelper.newSelectionDialogDescription() .selectionDialogTreeDescription(selectionDialogTree) diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageBindingConnectorAsUsageNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageBindingConnectorAsUsageNodeToolProvider.java index b8fd21eee..6da551935 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageBindingConnectorAsUsageNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageBindingConnectorAsUsageNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -24,9 +24,9 @@ import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; +import org.eclipse.syson.model.services.aql.ModelMutationAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; import org.eclipse.syson.util.ServiceMethod; @@ -56,7 +56,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var creationBindingConnectorAsUsageServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createPartUsageAndBindingConnectorAsUsage")) + .expression(ServiceMethod.of0(ModelMutationAQLService::createPartUsageAndBindingConnectorAsUsage).aqlSelf()) .children(updateExposedElements.build()) .build(); diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFeatureTypingNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFeatureTypingNodeToolProvider.java index 4b09e8d3c..4da0fa017 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFeatureTypingNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFeatureTypingNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -24,10 +24,10 @@ import org.eclipse.sirius.components.view.builder.providers.INodeToolProvider; import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; import org.eclipse.syson.util.ServiceMethod; @@ -57,7 +57,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var creationFeatureTypingServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createPartDefinitionAndFeatureTyping")) + .expression(ServiceMethod.of0(ViewCreateService::createPartDefinitionAndFeatureTyping).aqlSelf()) .children(updateExposedElements.build()); var rootChangContext = this.viewBuilderHelper.newChangeContext() @@ -66,7 +66,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .build(); return builder.name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getFeatureTyping())) - .iconURLsExpression("/icons/full/obj16/FeatureTyping.svg") + .iconURLsExpression("/icons/full/obj16/" + SysmlPackage.eINSTANCE.getFeatureTyping().getName() + ".svg") .body(rootChangContext) .build(); } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFlowConnectionNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFlowConnectionNodeToolProvider.java index 616be1a5a..ed55d608f 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFlowConnectionNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageFlowConnectionNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -24,9 +24,9 @@ import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; +import org.eclipse.syson.model.services.aql.ModelMutationAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; import org.eclipse.syson.util.ServiceMethod; @@ -56,7 +56,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var creationBindingConnectorAsUsageServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createPartUsageAndFlowConnection")) + .expression(ServiceMethod.of0(ModelMutationAQLService::createPartUsageAndFlowConnection).aqlSelf()) .children(updateExposedElements.build()) .build(); @@ -66,7 +66,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .build(); return builder.name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getFlowUsage())) - .iconURLsExpression("/icons/full/obj16/FlowUsage.svg") + .iconURLsExpression("/icons/full/obj16/" + SysmlPackage.eINSTANCE.getFlowUsage().getName() + ".svg") .body(rootChangContext) .build(); } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageInterfaceNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageInterfaceNodeToolProvider.java index 6f5042bbf..63b7c2dde 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageInterfaceNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageInterfaceNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -24,9 +24,9 @@ import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; +import org.eclipse.syson.model.services.aql.ModelMutationAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; import org.eclipse.syson.util.ServiceMethod; @@ -56,7 +56,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var creationBindingConnectorAsUsageServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createPartUsageAndInterface")) + .expression(ServiceMethod.of0(ModelMutationAQLService::createPartUsageAndInterface).aqlSelf()) .children(updateExposedElements.build()) .build(); @@ -66,7 +66,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .build(); return builder.name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getInterfaceUsage())) - .iconURLsExpression("/icons/full/obj16/InterfaceUsage.svg") + .iconURLsExpression("/icons/full/obj16/" + SysmlPackage.eINSTANCE.getInterfaceUsage() + ".svg") .body(rootChangContext) .build(); } diff --git a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageSubsettingNodeToolProvider.java b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageSubsettingNodeToolProvider.java index 2ba60553c..f39f0fc73 100644 --- a/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageSubsettingNodeToolProvider.java +++ b/backend/views/syson-diagram-common-view/src/main/java/org/eclipse/syson/diagram/common/view/tools/PartUsageSubsettingNodeToolProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2024, 2025 Obeo. + * Copyright (c) 2024, 2026 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 @@ -24,10 +24,10 @@ import org.eclipse.sirius.components.view.builder.providers.INodeToolProvider; import org.eclipse.sirius.components.view.diagram.NodeTool; import org.eclipse.sirius.components.view.emf.diagram.ViewDiagramDescriptionConverter; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; import org.eclipse.syson.diagram.services.aql.DiagramMutationAQLService; import org.eclipse.syson.sysml.SysmlPackage; import org.eclipse.syson.util.AQLConstants; -import org.eclipse.syson.util.AQLUtils; import org.eclipse.syson.util.IDescriptionNameGenerator; import org.eclipse.syson.util.ServiceMethod; @@ -57,7 +57,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { ViewDiagramDescriptionConverter.CONVERTED_NODES_VARIABLE)); var creationSubsettingServiceCall = this.viewBuilderHelper.newChangeContext() - .expression(AQLUtils.getSelfServiceCallExpression("createPartUsageAndSubsetting")) + .expression(ServiceMethod.of0(ViewCreateService::createPartUsageAndSubsetting).aqlSelf()) .children(updateExposedElements.build()) .build(); @@ -67,7 +67,7 @@ public NodeTool create(IViewDiagramElementFinder cache) { .build(); return builder.name(this.descriptionNameGenerator.getCreationToolName(SysmlPackage.eINSTANCE.getSubsetting())) - .iconURLsExpression("/icons/full/obj16/Subsetting.svg") + .iconURLsExpression("/icons/full/obj16/" + SysmlPackage.eINSTANCE.getSubsetting().getName() + ".svg") .body(rootChangContext) .build(); } diff --git a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/ActionFlowViewDiagramDescriptionProvider.java b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/ActionFlowViewDiagramDescriptionProvider.java index 7012ced25..2836d2a01 100644 --- a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/ActionFlowViewDiagramDescriptionProvider.java +++ b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/ActionFlowViewDiagramDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2025 Obeo. + * Copyright (c) 2025, 2026 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 @@ -18,8 +18,9 @@ import org.eclipse.sirius.components.view.builder.providers.IRepresentationDescriptionProvider; import org.eclipse.sirius.components.view.diagram.ArrangeLayoutDirection; import org.eclipse.syson.common.view.api.IViewDescriptionProvider; +import org.eclipse.syson.standard.diagrams.view.services.ActionFlowViewCreateService; import org.eclipse.syson.sysml.SysmlPackage; -import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.springframework.stereotype.Service; @@ -48,7 +49,7 @@ public RepresentationDescription create(IColorProvider colorProvider) { .arrangeLayoutDirection(ArrangeLayoutDirection.DOWN) .autoLayout(false) .domainType(SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getNamespace())) - .preconditionExpression(AQLUtils.getSelfServiceCallExpression("canCreateDiagram")) + .preconditionExpression(ServiceMethod.of0(ActionFlowViewCreateService::canCreateDiagram).aqlSelf()) .name(DESCRIPTION_NAME) .titleExpression("aql:'view'+ Sequence{self.existingViewUsagesCountForRepresentationCreation(), 1}->sum()") .build(); diff --git a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/InterconnectionViewDiagramDescriptionProvider.java b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/InterconnectionViewDiagramDescriptionProvider.java index 77b328c6a..5b489579c 100644 --- a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/InterconnectionViewDiagramDescriptionProvider.java +++ b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/InterconnectionViewDiagramDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2025 Obeo. + * Copyright (c) 2025, 2026 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 @@ -18,8 +18,9 @@ import org.eclipse.sirius.components.view.builder.providers.IRepresentationDescriptionProvider; import org.eclipse.sirius.components.view.diagram.ArrangeLayoutDirection; import org.eclipse.syson.common.view.api.IViewDescriptionProvider; +import org.eclipse.syson.standard.diagrams.view.services.InterconnectionViewCreateService; import org.eclipse.syson.sysml.SysmlPackage; -import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.springframework.stereotype.Service; @@ -48,7 +49,7 @@ public RepresentationDescription create(IColorProvider colorProvider) { .arrangeLayoutDirection(ArrangeLayoutDirection.DOWN) .autoLayout(false) .domainType(SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getElement())) - .preconditionExpression(AQLUtils.getSelfServiceCallExpression("canCreateDiagram")) + .preconditionExpression(ServiceMethod.of0(InterconnectionViewCreateService::canCreateDiagram).aqlSelf()) .name(DESCRIPTION_NAME) .titleExpression("aql:'view'+ Sequence{self.existingViewUsagesCountForRepresentationCreation(), 1}->sum()") .build(); diff --git a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SDVDiagramDescriptionProvider.java b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SDVDiagramDescriptionProvider.java index dc5ad4e34..c3c93d414 100644 --- a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SDVDiagramDescriptionProvider.java +++ b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SDVDiagramDescriptionProvider.java @@ -58,6 +58,7 @@ import org.eclipse.syson.diagram.common.view.nodes.StateTransitionCompartmentNodeDescriptionProvider; import org.eclipse.syson.diagram.common.view.nodes.StatesCompartmentItemNodeDescriptionProvider; import org.eclipse.syson.diagram.common.view.nodes.StatesCompartmentNodeDescriptionProvider; +import org.eclipse.syson.diagram.common.view.services.ViewCreateService; import org.eclipse.syson.diagram.common.view.services.description.ToolConstants; import org.eclipse.syson.diagram.common.view.services.description.ToolDescriptionService; import org.eclipse.syson.diagram.common.view.tools.ExhibitStateWithReferenceNodeToolProvider; @@ -312,7 +313,7 @@ public RepresentationDescription create(IColorProvider colorProvider) { .arrangeLayoutDirection(ArrangeLayoutDirection.DOWN) .autoLayout(false) .domainType(domainType) - .preconditionExpression(AQLUtils.getSelfServiceCallExpression("canCreateDiagram")) + .preconditionExpression(ServiceMethod.of0(ViewCreateService::canCreateDiagram).aqlSelf()) .name(DESCRIPTION_NAME) .titleExpression("aql:'view'+ Sequence{self.existingViewUsagesCountForRepresentationCreation(), 1}->sum()"); diff --git a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/StateTransitionViewDiagramDescriptionProvider.java b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/StateTransitionViewDiagramDescriptionProvider.java index eacc47d76..46019c9ed 100644 --- a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/StateTransitionViewDiagramDescriptionProvider.java +++ b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/StateTransitionViewDiagramDescriptionProvider.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2025 Obeo. + * Copyright (c) 2025, 2026 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 @@ -18,8 +18,9 @@ import org.eclipse.sirius.components.view.builder.providers.IRepresentationDescriptionProvider; import org.eclipse.sirius.components.view.diagram.ArrangeLayoutDirection; import org.eclipse.syson.common.view.api.IViewDescriptionProvider; +import org.eclipse.syson.standard.diagrams.view.services.StateTransitionViewCreateService; import org.eclipse.syson.sysml.SysmlPackage; -import org.eclipse.syson.util.AQLUtils; +import org.eclipse.syson.util.ServiceMethod; import org.eclipse.syson.util.SysMLMetamodelHelper; import org.springframework.stereotype.Service; @@ -49,7 +50,7 @@ public RepresentationDescription create(IColorProvider colorProvider) { .arrangeLayoutDirection(ArrangeLayoutDirection.DOWN) .autoLayout(false) .domainType(SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getNamespace())) - .preconditionExpression(AQLUtils.getSelfServiceCallExpression("canCreateDiagram")) + .preconditionExpression(ServiceMethod.of0(StateTransitionViewCreateService::canCreateDiagram).aqlSelf()) .name(DESCRIPTION_NAME) .titleExpression("aql:'view'+ Sequence{self.existingViewUsagesCountForRepresentationCreation(), 1}->sum()") .build();