diff --git a/backend/views/syson-standard-diagrams-view/pom.xml b/backend/views/syson-standard-diagrams-view/pom.xml index 1e02520f8..bab3b41b9 100644 --- a/backend/views/syson-standard-diagrams-view/pom.xml +++ b/backend/views/syson-standard-diagrams-view/pom.xml @@ -61,6 +61,11 @@ sirius-components-view-builder ${sirius.web.version} + + org.eclipse.sirius + sirius-components-collaborative + ${sirius.web.version} + org.eclipse.sirius sirius-components-collaborative-diagrams diff --git a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SysONRepresentationDescriptionMetadataSorter.java b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SysONRepresentationDescriptionMetadataSorter.java index 3412214b4..ab6b991a0 100644 --- a/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SysONRepresentationDescriptionMetadataSorter.java +++ b/backend/views/syson-standard-diagrams-view/src/main/java/org/eclipse/syson/standard/diagrams/view/SysONRepresentationDescriptionMetadataSorter.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 @@ -15,7 +15,7 @@ import java.util.ArrayList; import java.util.List; -import org.eclipse.sirius.components.collaborative.api.RepresentationDescriptionMetadata; +import org.eclipse.sirius.components.collaborative.dto.RepresentationDescriptionMetadataDTO; import org.eclipse.sirius.components.emf.services.api.IRepresentationDescriptionMetadataSorter; import org.springframework.stereotype.Service; @@ -28,10 +28,10 @@ public class SysONRepresentationDescriptionMetadataSorter implements IRepresentationDescriptionMetadataSorter { @Override - public List sort(List representationDescriptions) { - List sortedRepresentationDescriptions = new ArrayList<>(); - for (RepresentationDescriptionMetadata representationDescriptionMetadata : representationDescriptions) { - if (SDVDiagramDescriptionProvider.DESCRIPTION_NAME.equals(representationDescriptionMetadata.getLabel())) { + public List sort(List representationDescriptions) { + List sortedRepresentationDescriptions = new ArrayList<>(); + for (RepresentationDescriptionMetadataDTO representationDescriptionMetadata : representationDescriptions) { + if (SDVDiagramDescriptionProvider.DESCRIPTION_NAME.equals(representationDescriptionMetadata.label())) { sortedRepresentationDescriptions.add(0, representationDescriptionMetadata); } else { sortedRepresentationDescriptions.add(representationDescriptionMetadata); diff --git a/frontend/syson-components/package.json b/frontend/syson-components/package.json index 5f5f57e61..2afcf965d 100644 --- a/frontend/syson-components/package.json +++ b/frontend/syson-components/package.json @@ -31,27 +31,27 @@ }, "peerDependencies": { "@apollo/client": "3.10.4", - "@eclipse-sirius/sirius-components-browser": "2026.3.3", - "@eclipse-sirius/sirius-components-charts": "2026.3.3", - "@eclipse-sirius/sirius-components-core": "2026.3.3", - "@eclipse-sirius/sirius-components-datatree": "2026.3.3", - "@eclipse-sirius/sirius-components-deck": "2026.3.3", - "@eclipse-sirius/sirius-components-diagrams": "2026.3.3", - "@eclipse-sirius/sirius-components-formdescriptioneditors": "2026.3.3", - "@eclipse-sirius/sirius-components-forms": "2026.3.3", - "@eclipse-sirius/sirius-components-gantt": "2026.3.3", - "@eclipse-sirius/sirius-components-impactanalysis": "2026.3.3", - "@eclipse-sirius/sirius-components-omnibox": "2026.3.3", - "@eclipse-sirius/sirius-components-palette": "2026.3.3", - "@eclipse-sirius/sirius-components-portals": "2026.3.3", - "@eclipse-sirius/sirius-components-selection": "2026.3.3", - "@eclipse-sirius/sirius-components-tables": "2026.3.3", - "@eclipse-sirius/sirius-components-trees": "2026.3.3", - "@eclipse-sirius/sirius-components-tsconfig": "2026.3.3", - "@eclipse-sirius/sirius-components-validation": "2026.3.3", - "@eclipse-sirius/sirius-components-widget-reference": "2026.3.3", - "@eclipse-sirius/sirius-components-widget-table": "2026.3.3", - "@eclipse-sirius/sirius-web-application": "2026.3.3", + "@eclipse-sirius/sirius-components-browser": "2026.3.8", + "@eclipse-sirius/sirius-components-charts": "2026.3.8", + "@eclipse-sirius/sirius-components-core": "2026.3.8", + "@eclipse-sirius/sirius-components-datatree": "2026.3.8", + "@eclipse-sirius/sirius-components-deck": "2026.3.8", + "@eclipse-sirius/sirius-components-diagrams": "2026.3.8", + "@eclipse-sirius/sirius-components-formdescriptioneditors": "2026.3.8", + "@eclipse-sirius/sirius-components-forms": "2026.3.8", + "@eclipse-sirius/sirius-components-gantt": "2026.3.8", + "@eclipse-sirius/sirius-components-impactanalysis": "2026.3.8", + "@eclipse-sirius/sirius-components-omnibox": "2026.3.8", + "@eclipse-sirius/sirius-components-palette": "2026.3.8", + "@eclipse-sirius/sirius-components-portals": "2026.3.8", + "@eclipse-sirius/sirius-components-selection": "2026.3.8", + "@eclipse-sirius/sirius-components-tables": "2026.3.8", + "@eclipse-sirius/sirius-components-trees": "2026.3.8", + "@eclipse-sirius/sirius-components-tsconfig": "2026.3.8", + "@eclipse-sirius/sirius-components-validation": "2026.3.8", + "@eclipse-sirius/sirius-components-widget-reference": "2026.3.8", + "@eclipse-sirius/sirius-components-widget-table": "2026.3.8", + "@eclipse-sirius/sirius-web-application": "2026.3.8", "@lexical/code": "0.42.0", "@lexical/react": "0.42.0", "@mui/icons-material": "7.3.10", @@ -85,27 +85,27 @@ }, "devDependencies": { "@apollo/client": "3.10.4", - "@eclipse-sirius/sirius-components-browser": "2026.3.3", - "@eclipse-sirius/sirius-components-charts": "2026.3.3", - "@eclipse-sirius/sirius-components-core": "2026.3.3", - "@eclipse-sirius/sirius-components-datatree": "2026.3.3", - "@eclipse-sirius/sirius-components-deck": "2026.3.3", - "@eclipse-sirius/sirius-components-diagrams": "2026.3.3", - "@eclipse-sirius/sirius-components-formdescriptioneditors": "2026.3.3", - "@eclipse-sirius/sirius-components-forms": "2026.3.3", - "@eclipse-sirius/sirius-components-gantt": "2026.3.3", - "@eclipse-sirius/sirius-components-impactanalysis": "2026.3.3", - "@eclipse-sirius/sirius-components-omnibox": "2026.3.3", - "@eclipse-sirius/sirius-components-palette": "2026.3.3", - "@eclipse-sirius/sirius-components-portals": "2026.3.3", - "@eclipse-sirius/sirius-components-selection": "2026.3.3", - "@eclipse-sirius/sirius-components-tables": "2026.3.3", - "@eclipse-sirius/sirius-components-trees": "2026.3.3", - "@eclipse-sirius/sirius-components-tsconfig": "2026.3.3", - "@eclipse-sirius/sirius-components-validation": "2026.3.3", - "@eclipse-sirius/sirius-components-widget-reference": "2026.3.3", - "@eclipse-sirius/sirius-components-widget-table": "2026.3.3", - "@eclipse-sirius/sirius-web-application": "2026.3.3", + "@eclipse-sirius/sirius-components-browser": "2026.3.8", + "@eclipse-sirius/sirius-components-charts": "2026.3.8", + "@eclipse-sirius/sirius-components-core": "2026.3.8", + "@eclipse-sirius/sirius-components-datatree": "2026.3.8", + "@eclipse-sirius/sirius-components-deck": "2026.3.8", + "@eclipse-sirius/sirius-components-diagrams": "2026.3.8", + "@eclipse-sirius/sirius-components-formdescriptioneditors": "2026.3.8", + "@eclipse-sirius/sirius-components-forms": "2026.3.8", + "@eclipse-sirius/sirius-components-gantt": "2026.3.8", + "@eclipse-sirius/sirius-components-impactanalysis": "2026.3.8", + "@eclipse-sirius/sirius-components-omnibox": "2026.3.8", + "@eclipse-sirius/sirius-components-palette": "2026.3.8", + "@eclipse-sirius/sirius-components-portals": "2026.3.8", + "@eclipse-sirius/sirius-components-selection": "2026.3.8", + "@eclipse-sirius/sirius-components-tables": "2026.3.8", + "@eclipse-sirius/sirius-components-trees": "2026.3.8", + "@eclipse-sirius/sirius-components-tsconfig": "2026.3.8", + "@eclipse-sirius/sirius-components-validation": "2026.3.8", + "@eclipse-sirius/sirius-components-widget-reference": "2026.3.8", + "@eclipse-sirius/sirius-components-widget-table": "2026.3.8", + "@eclipse-sirius/sirius-web-application": "2026.3.8", "@lexical/code": "0.42.0", "@lexical/react": "0.42.0", "@mui/icons-material": "7.3.10", diff --git a/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNode.tsx b/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNode.tsx index 2ec435edb..b816b84a7 100644 --- a/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNode.tsx +++ b/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNode.tsx @@ -18,6 +18,7 @@ import { ConnectionCreationHandles, ConnectionHandles, ConnectionTargetHandle, + DecoratorContainer, Label, Resizer, useConnectionLineNodeStyle, @@ -45,6 +46,7 @@ const sysMLImportedPackageNodeStyle = ( padding: '0px', width: '100%', height: '100%', + position: 'relative', opacity: faded ? '0.4' : '', ...style, border: 'none', @@ -194,6 +196,7 @@ export const SysMLImportedPackageNode: NodeComponentsMap['sysMLImportedPackageNo onDragOver={onDragOver} onDrop={handleOnDrop} data-testid={`SysMLImportedPackage - ${data?.insideLabel?.text}`}> + {!!selected ? : null} diff --git a/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNodeConverter.ts b/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNodeConverter.ts index 8249f41e5..c71259606 100644 --- a/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNodeConverter.ts +++ b/frontend/syson-components/src/nodes/imported_package/SysMLImportedPackageNodeConverter.ts @@ -61,6 +61,7 @@ const toSysMLImportedPackageNode = ( labelEditable, deletable, customizedStyleProperties, + decorators, } = gqlNode; const handleLayoutData: GQLHandleLayoutData[] = gqlDiagram.layoutData.nodeLayoutData @@ -117,6 +118,8 @@ const toSysMLImportedPackageNode = ( minComputedWidth: gqlNodeLayoutData?.minComputedSize.width ?? null, minComputedHeight: gqlNodeLayoutData?.minComputedSize.height ?? null, isLastNodeSelected: false, + moving: false, + decorators, }; data.insideLabel = convertInsideLabel( diff --git a/frontend/syson-components/src/nodes/note/SysMLNoteNode.tsx b/frontend/syson-components/src/nodes/note/SysMLNoteNode.tsx index abfd465cf..5be55bd23 100644 --- a/frontend/syson-components/src/nodes/note/SysMLNoteNode.tsx +++ b/frontend/syson-components/src/nodes/note/SysMLNoteNode.tsx @@ -18,6 +18,7 @@ import { ConnectionCreationHandles, ConnectionHandles, ConnectionTargetHandle, + DecoratorContainer, EdgeData, Label, NodeData, @@ -46,6 +47,7 @@ const sysMLNoteNodeStyle = ( padding: '0px', width: '100%', height: '100%', + position: 'relative', opacity: faded ? '0.4' : '', ...style, // No border nor background color: this is handled by the SVG image @@ -148,6 +150,7 @@ export const SysMLNoteNode: NodeComponentsMap['sysMLNoteNode'] = memo( /> + {data.insideLabel ?