Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ It has long been unused by Sirius Web itself (since the transition to MUI).
- https://github.com/eclipse-syson/syson/issues/1808[#1808] [diagrams] Remove multiplicity displayed on feature membership edge between Part Definition and Part Usage.
- https://github.com/eclipse-syson/syson/issues/2194[#2194] [diagrams] Properly report feedback messages to user when using _ISysMLMoveElementService_.
- https://github.com/eclipse-syson/syson/issues/2306[#2306] [diagrams] Fixed an error when trying to rename a constraint displayed as a list item through direct edit.
- https://github.com/eclipse-syson/syson/issues/2221[#2221] [explorer] Fix the initial direct edit value of an _Explorer_ tree item whose element has no declared name (for example a `Dependency`).
The initial value is now an empty string instead of the computed display label, so validating it without changes no longer writes the display label into the element's declared name.

=== Improvements
- https://github.com/eclipse-syson/syson/issues/2198[#2198] [diagrams] Improve diagram-to-diagram drag and drop to support dropping multiple graphical nodes at once, leveraging Sirius Web's `droppedNodes` and `droppedElements` variables.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@ private record TreeItemMatcher(Function<Tree, TreeItem> treeItemFinder, Predicat
tree -> tree.getChildren().get(0).getChildren().get(1).getChildren().get(2),
treeItem -> treeItem.getLabel().toString().equals("<Req2> "));

private final TreeItemMatcher req3RU = new TreeItemMatcher(
tree -> tree.getChildren().get(0).getChildren().get(1).getChildren().get(3),
treeItem -> treeItem.getLabel().toString().startsWith("<Req3>"));

private final TreeItemMatcher userLibraryPackageRW = new TreeItemMatcher(
tree -> this.findTreeItem(tree, WithUserLibrariesTestProjectData.SemanticIds.RW_USER_LIBRARY_PACKAGE_ID).orElseThrow(),
treeItem -> treeItem.getLabel().toString().equals("Package2"));
Expand Down Expand Up @@ -264,6 +268,27 @@ public void testDirectEditOnElementWithShortName() {
.verify(Duration.ofSeconds(10));
}

@DisplayName("GIVEN the SysON Explorer View, WHEN we direct edit an Element with a null declared name, THEN the initial value of the direct edit is empty")
@GivenSysONServer({ ExplorerViewDirectEditTestProjectData.SCRIPT_PATH })
@Test
public void testDirectEditOnElementWithNullDeclaredName() {
var expandedIds = this.getAllTreeItemIds(ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID);
var activatedFilters = List.of(SysONTreeFilterConstants.HIDE_ROOT_NAMESPACES_ID, SysONTreeFilterConstants.HIDE_MEMBERSHIPS_TREE_ITEM_FILTER_ID);
var treeRepresentationId = this.representationIdBuilder.buildExplorerRepresentationId(this.sysONTreeViewDescriptionProvider.getDescriptionId(), expandedIds, activatedFilters);

var treeEventInput = new ExplorerEventInput(UUID.randomUUID(), ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID, treeRepresentationId);
var treeFlux = this.treeEventSubscriptionRunner.run(treeEventInput).flux();

var hasProjectContent = this.getTreeRefreshedEventPayloadMatcher(List.of(this.req3RU));

StepVerifier.create(treeFlux)
.consumeNextWith(hasProjectContent)
.then(this.triggerDirectEditTreeItemLabel(ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID, treeRepresentationId,
UUID.fromString(ExplorerViewDirectEditTestProjectData.SemanticIds.REQ3_RU_ID), ""))
.thenCancel()
.verify(Duration.ofSeconds(10));
}

@DisplayName("GIVEN the SysON Explorer View, WHEN we try to create a new element in an imported read-write user library, THEN a new element is added to the user library")
@GivenSysONServer({ WithUserLibrariesTestProjectData.SCRIPT_PATH })
@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ public static final class SemanticIds {
public static final String REQ1_RU_ID = "49ec0ce7-c6c4-45f2-a55b-d11a5dca62e4";

public static final String REQ2_RU_ID = "1380102d-9b85-4933-8f60-f691fab97672";

public static final String REQ3_RU_ID = "f9f66a25-6bda-4ab3-bc5f-96dc6866df0c";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ INSERT INTO public.semantic_data (id, created_on, last_modified_on) VALUES ('4b5
-- Data for Name: document; Type: TABLE DATA; Schema: public; Owner: dbuser
--

INSERT INTO public.document (id, semantic_data_id, name, content, created_on, last_modified_on, is_read_only) VALUES ('9a59f836-1df2-4e5d-803c-9eb0ba7031aa', '4b5adc0c-90a2-48c6-9ae7-c3fc035ff38b', 'SysMLv2.sysml', '{"json":{"version":"1.0","encoding":"utf-8"},"ns":{"sysml":"http://www.eclipse.org/syson/sysml"},"migration":{"lastMigrationPerformed":"OneDiagramDescriptionMigrationParticipant$$SpringCGLIB$$0","migrationVersion":"2025.8.0-202508220000"},"content":[{"id":"686dee81-b94c-4393-b15b-65dd73dfdd24","eClass":"sysml:Namespace","data":{"elementId":"bea38691-2169-4b70-87ac-ffa289824fde","ownedRelationship":[{"id":"e3c74bf2-55ba-4b0d-a4f5-9ab326f372c4","eClass":"sysml:OwningMembership","data":{"elementId":"a6fce401-4aaf-47c8-88a6-d75462e3c6db","ownedRelatedElement":[{"id":"127c38e7-0e15-4232-aa02-76b342e3324a","eClass":"sysml:Package","data":{"declaredName":"Package1","elementId":"d51791b8-6666-46e3-8c60-c975e1f3e490","ownedRelationship":[{"id":"0642ab55-a317-40c1-aa52-cc16306d937b","eClass":"sysml:NamespaceImport","data":{"elementId":"9f902e4a-4ca9-4787-92d8-713b3b06c490","importedNamespace":"ec12f223-8639-42a3-96c2-34163c6eccce"}},{"id":"883deb19-59a8-4c58-8887-978bf11fffcd","eClass":"sysml:OwningMembership","data":{"elementId":"be359545-8e91-439c-8bdf-0638ab702f9d","ownedRelatedElement":[{"id":"a4f51a38-bfeb-4e0d-a870-55f8fe90405e","eClass":"sysml:PartUsage","data":{"declaredName":"p","elementId":"d99634bb-d4e0-4afa-bbe4-ee553005937d","ownedRelationship":[{"id":"1ba5c6e8-1c6b-44f6-8a05-f82f2c7a2538","eClass":"sysml:FeatureTyping","data":{"elementId":"9bfede6e-a370-451e-aa33-c1102942dcb7","type":"0a70220d-707e-4a88-84dc-6aa43aa97269","typedFeature":"a4f51a38-bfeb-4e0d-a870-55f8fe90405e"}},{"id":"d0af8b7c-1a69-4817-be08-13fd7379fd81","eClass":"sysml:FeatureMembership","data":{"elementId":"9700175b-699c-4201-bfbd-8ce3d90cbc5f","ownedRelatedElement":[{"id":"c3b15305-e5fb-44a9-96a1-4e0245fc4f2c","eClass":"sysml:ViewUsage","data":{"declaredName":"view4","elementId":"bdedde81-86db-4f74-887b-20af07833c25","ownedRelationship":[{"id":"395ef21e-36d7-4d9a-9586-99a631fcedf0","eClass":"sysml:FeatureTyping","data":{"elementId":"edb72ff4-e724-4387-9dd6-7b3e7095607e","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#6518462a-2f51-5276-b95e-69ee5193db38","typedFeature":"c3b15305-e5fb-44a9-96a1-4e0245fc4f2c"}}]}}]}}],"isComposite":true}}]}},{"id":"a5e72c79-5496-4770-a4c7-296a56f47617","eClass":"sysml:OwningMembership","data":{"elementId":"4e21e33f-7920-49fe-8889-b4fab257dc78","ownedRelatedElement":[{"id":"17df78b1-ad06-4861-827e-c1cf15eed2a5","eClass":"sysml:ViewUsage","data":{"declaredName":"view1","elementId":"0a0c297f-a58b-4ef8-a4f6-8d0ff197b238","ownedRelationship":[{"id":"60d64858-90b3-44ed-af19-b966d72a8a8b","eClass":"sysml:FeatureTyping","data":{"elementId":"da3ad6ee-3e58-4ed4-a41a-88f7b3d1dbfa","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#03904fdf-d6f2-57b1-92d5-95d36b8208dc","typedFeature":"17df78b1-ad06-4861-827e-c1cf15eed2a5"}},{"id":"af34119d-aacc-46ca-a981-8a27cda51335","eClass":"sysml:MembershipExpose","data":{"elementId":"a8f61be3-c17e-4084-ad2f-b42aca0c816b","importedMembership":"883deb19-59a8-4c58-8887-978bf11fffcd"}}],"isComposite":true}}]}},{"id":"28feab55-0a2d-4d69-85d5-29fe3b069b71","eClass":"sysml:OwningMembership","data":{"elementId":"41ccfd33-8013-4684-82b5-f279decaad1b","ownedRelatedElement":[{"id":"c7a3fc13-d643-469c-a0ad-5939869a2bee","eClass":"sysml:ViewUsage","data":{"declaredName":"view2","elementId":"dd76563a-251d-4c3e-a4bf-108304672629","ownedRelationship":[{"id":"ed5facc4-54a7-41f9-b4ec-6f08fc4061b5","eClass":"sysml:FeatureTyping","data":{"elementId":"c2d81d09-5098-4775-bb74-b746a70fe510","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#e1e8729f-a571-520c-b3f8-1b8dcdf5014d","typedFeature":"c7a3fc13-d643-469c-a0ad-5939869a2bee"}}]}}]}},{"id":"505066be-cc52-4edb-a1df-17a29242e4be","eClass":"sysml:OwningMembership","data":{"elementId":"c20baa6f-ffc6-4178-8dc1-e074b9e68782","ownedRelatedElement":[{"id":"cca0616d-49d3-4311-a390-2511576cf759","eClass":"sysml:ViewUsage","data":{"declaredName":"view3","elementId":"c691780a-a8a9-4444-acba-d33cfd628b73","ownedRelationship":[{"id":"82cc5a01-8b63-4e60-a7b1-df7631d00e22","eClass":"sysml:FeatureTyping","data":{"elementId":"5fa23d7d-50a7-407a-a631-f800ad514d8c","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#073ba87b-4f0a-5a2e-8ce5-71f9dc645098","typedFeature":"cca0616d-49d3-4311-a390-2511576cf759"}}]}}]}}]}}]}},{"id":"13001db6-0353-48ba-8bec-157bbd9a3b57","eClass":"sysml:OwningMembership","data":{"elementId":"cd1165da-f4a1-4962-90f6-d117e8c7a354","ownedRelatedElement":[{"id":"ec12f223-8639-42a3-96c2-34163c6eccce","eClass":"sysml:Package","data":{"declaredName":"Package2","elementId":"40c37406-f22d-4424-981f-99935f039244","ownedRelationship":[{"id":"bbe9c050-d108-4807-8c62-7d20c31817f6","eClass":"sysml:OwningMembership","data":{"elementId":"c0c5cec5-6606-4145-98c7-eef80964e95a","ownedRelatedElement":[{"id":"0a70220d-707e-4a88-84dc-6aa43aa97269","eClass":"sysml:PartDefinition","data":{"declaredName":"PartDefX","elementId":"47acdb65-63f9-4bd5-8675-e2596241dc2c"}}]}},{"id":"a058de76-1db9-40b4-9174-e07dad7ab3b0","eClass":"sysml:OwningMembership","data":{"elementId":"7a696b33-a936-40ad-b9f4-19fdf27315cb","ownedRelatedElement":[{"id":"49ec0ce7-c6c4-45f2-a55b-d11a5dca62e4","eClass":"sysml:RequirementUsage","data":{"declaredName":"requirement1","declaredShortName":"Req1","elementId":"73d7d098-14e8-4035-a7d0-e623ac08606a","isComposite":true}}]}},{"id":"c6712512-93c6-48f3-8676-cce185ed4cde","eClass":"sysml:OwningMembership","data":{"elementId":"9f232534-cfa1-40c7-bdc0-746de3d8c7da","ownedRelatedElement":[{"id":"1380102d-9b85-4933-8f60-f691fab97672","eClass":"sysml:RequirementUsage","data":{"declaredName":"","declaredShortName":"Req2","elementId":"aa0b606d-d7fb-4da7-8ddd-c5754b4ff08a","isComposite":true}}]}}]}}]}}]}}]}', '2025-10-27 13:16:35.102947+00', '2025-10-27 13:16:35.102947+00', false);
INSERT INTO public.document (id, semantic_data_id, name, content, created_on, last_modified_on, is_read_only) VALUES ('9a59f836-1df2-4e5d-803c-9eb0ba7031aa', '4b5adc0c-90a2-48c6-9ae7-c3fc035ff38b', 'SysMLv2.sysml', '{"json":{"version":"1.0","encoding":"utf-8"},"ns":{"sysml":"http://www.eclipse.org/syson/sysml"},"migration":{"lastMigrationPerformed":"OneDiagramDescriptionMigrationParticipant$$SpringCGLIB$$0","migrationVersion":"2025.8.0-202508220000"},"content":[{"id":"686dee81-b94c-4393-b15b-65dd73dfdd24","eClass":"sysml:Namespace","data":{"elementId":"bea38691-2169-4b70-87ac-ffa289824fde","ownedRelationship":[{"id":"e3c74bf2-55ba-4b0d-a4f5-9ab326f372c4","eClass":"sysml:OwningMembership","data":{"elementId":"a6fce401-4aaf-47c8-88a6-d75462e3c6db","ownedRelatedElement":[{"id":"127c38e7-0e15-4232-aa02-76b342e3324a","eClass":"sysml:Package","data":{"declaredName":"Package1","elementId":"d51791b8-6666-46e3-8c60-c975e1f3e490","ownedRelationship":[{"id":"0642ab55-a317-40c1-aa52-cc16306d937b","eClass":"sysml:NamespaceImport","data":{"elementId":"9f902e4a-4ca9-4787-92d8-713b3b06c490","importedNamespace":"ec12f223-8639-42a3-96c2-34163c6eccce"}},{"id":"883deb19-59a8-4c58-8887-978bf11fffcd","eClass":"sysml:OwningMembership","data":{"elementId":"be359545-8e91-439c-8bdf-0638ab702f9d","ownedRelatedElement":[{"id":"a4f51a38-bfeb-4e0d-a870-55f8fe90405e","eClass":"sysml:PartUsage","data":{"declaredName":"p","elementId":"d99634bb-d4e0-4afa-bbe4-ee553005937d","ownedRelationship":[{"id":"1ba5c6e8-1c6b-44f6-8a05-f82f2c7a2538","eClass":"sysml:FeatureTyping","data":{"elementId":"9bfede6e-a370-451e-aa33-c1102942dcb7","type":"0a70220d-707e-4a88-84dc-6aa43aa97269","typedFeature":"a4f51a38-bfeb-4e0d-a870-55f8fe90405e"}},{"id":"d0af8b7c-1a69-4817-be08-13fd7379fd81","eClass":"sysml:FeatureMembership","data":{"elementId":"9700175b-699c-4201-bfbd-8ce3d90cbc5f","ownedRelatedElement":[{"id":"c3b15305-e5fb-44a9-96a1-4e0245fc4f2c","eClass":"sysml:ViewUsage","data":{"declaredName":"view4","elementId":"bdedde81-86db-4f74-887b-20af07833c25","ownedRelationship":[{"id":"395ef21e-36d7-4d9a-9586-99a631fcedf0","eClass":"sysml:FeatureTyping","data":{"elementId":"edb72ff4-e724-4387-9dd6-7b3e7095607e","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#6518462a-2f51-5276-b95e-69ee5193db38","typedFeature":"c3b15305-e5fb-44a9-96a1-4e0245fc4f2c"}}]}}]}}],"isComposite":true}}]}},{"id":"a5e72c79-5496-4770-a4c7-296a56f47617","eClass":"sysml:OwningMembership","data":{"elementId":"4e21e33f-7920-49fe-8889-b4fab257dc78","ownedRelatedElement":[{"id":"17df78b1-ad06-4861-827e-c1cf15eed2a5","eClass":"sysml:ViewUsage","data":{"declaredName":"view1","elementId":"0a0c297f-a58b-4ef8-a4f6-8d0ff197b238","ownedRelationship":[{"id":"60d64858-90b3-44ed-af19-b966d72a8a8b","eClass":"sysml:FeatureTyping","data":{"elementId":"da3ad6ee-3e58-4ed4-a41a-88f7b3d1dbfa","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#03904fdf-d6f2-57b1-92d5-95d36b8208dc","typedFeature":"17df78b1-ad06-4861-827e-c1cf15eed2a5"}},{"id":"af34119d-aacc-46ca-a981-8a27cda51335","eClass":"sysml:MembershipExpose","data":{"elementId":"a8f61be3-c17e-4084-ad2f-b42aca0c816b","importedMembership":"883deb19-59a8-4c58-8887-978bf11fffcd"}}],"isComposite":true}}]}},{"id":"28feab55-0a2d-4d69-85d5-29fe3b069b71","eClass":"sysml:OwningMembership","data":{"elementId":"41ccfd33-8013-4684-82b5-f279decaad1b","ownedRelatedElement":[{"id":"c7a3fc13-d643-469c-a0ad-5939869a2bee","eClass":"sysml:ViewUsage","data":{"declaredName":"view2","elementId":"dd76563a-251d-4c3e-a4bf-108304672629","ownedRelationship":[{"id":"ed5facc4-54a7-41f9-b4ec-6f08fc4061b5","eClass":"sysml:FeatureTyping","data":{"elementId":"c2d81d09-5098-4775-bb74-b746a70fe510","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#e1e8729f-a571-520c-b3f8-1b8dcdf5014d","typedFeature":"c7a3fc13-d643-469c-a0ad-5939869a2bee"}}]}}]}},{"id":"505066be-cc52-4edb-a1df-17a29242e4be","eClass":"sysml:OwningMembership","data":{"elementId":"c20baa6f-ffc6-4178-8dc1-e074b9e68782","ownedRelatedElement":[{"id":"cca0616d-49d3-4311-a390-2511576cf759","eClass":"sysml:ViewUsage","data":{"declaredName":"view3","elementId":"c691780a-a8a9-4444-acba-d33cfd628b73","ownedRelationship":[{"id":"82cc5a01-8b63-4e60-a7b1-df7631d00e22","eClass":"sysml:FeatureTyping","data":{"elementId":"5fa23d7d-50a7-407a-a631-f800ad514d8c","type":"sysml:ViewDefinition sysmllibrary:///faf517ae-dbcd-30a4-b3b9-3d9cb3bbf5c1#073ba87b-4f0a-5a2e-8ce5-71f9dc645098","typedFeature":"cca0616d-49d3-4311-a390-2511576cf759"}}]}}]}}]}}]}},{"id":"13001db6-0353-48ba-8bec-157bbd9a3b57","eClass":"sysml:OwningMembership","data":{"elementId":"cd1165da-f4a1-4962-90f6-d117e8c7a354","ownedRelatedElement":[{"id":"ec12f223-8639-42a3-96c2-34163c6eccce","eClass":"sysml:Package","data":{"declaredName":"Package2","elementId":"40c37406-f22d-4424-981f-99935f039244","ownedRelationship":[{"id":"bbe9c050-d108-4807-8c62-7d20c31817f6","eClass":"sysml:OwningMembership","data":{"elementId":"c0c5cec5-6606-4145-98c7-eef80964e95a","ownedRelatedElement":[{"id":"0a70220d-707e-4a88-84dc-6aa43aa97269","eClass":"sysml:PartDefinition","data":{"declaredName":"PartDefX","elementId":"47acdb65-63f9-4bd5-8675-e2596241dc2c"}}]}},{"id":"a058de76-1db9-40b4-9174-e07dad7ab3b0","eClass":"sysml:OwningMembership","data":{"elementId":"7a696b33-a936-40ad-b9f4-19fdf27315cb","ownedRelatedElement":[{"id":"49ec0ce7-c6c4-45f2-a55b-d11a5dca62e4","eClass":"sysml:RequirementUsage","data":{"declaredName":"requirement1","declaredShortName":"Req1","elementId":"73d7d098-14e8-4035-a7d0-e623ac08606a","isComposite":true}}]}},{"id":"c6712512-93c6-48f3-8676-cce185ed4cde","eClass":"sysml:OwningMembership","data":{"elementId":"9f232534-cfa1-40c7-bdc0-746de3d8c7da","ownedRelatedElement":[{"id":"1380102d-9b85-4933-8f60-f691fab97672","eClass":"sysml:RequirementUsage","data":{"declaredName":"","declaredShortName":"Req2","elementId":"aa0b606d-d7fb-4da7-8ddd-c5754b4ff08a","isComposite":true}}]}},{"id":"b76c699c-7886-4afc-b14c-b7b5559eff95","eClass":"sysml:OwningMembership","data":{"elementId":"2e1396c1-b047-4fd4-883e-c3647f1e135f","ownedRelatedElement":[{"id":"f9f66a25-6bda-4ab3-bc5f-96dc6866df0c","eClass":"sysml:RequirementUsage","data":{"declaredShortName":"Req3","elementId":"3d3e5424-9e87-4223-ba50-f28d00f2e1bd","isComposite":true}}]}}]}}]}}]}}]}', '2025-10-27 13:16:35.102947+00', '2025-10-27 13:16:35.102947+00', false);


--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public IPayload handle(IEditingContext editingContext, Tree tree, InitialDirectE
String label = this.objectSearchService.getObject(editingContext, input.treeItemId())
.filter(Element.class::isInstance)
.map(Element.class::cast)
.map(Element::getDeclaredName)
.map(element -> Optional.ofNullable(element.getDeclaredName()).orElse(""))
.orElseGet(() -> tree.getChildren().stream()
.map(treeItems -> this.searchById(treeItems, input.treeItemId()))
.filter(Optional::isPresent)
Expand Down
Loading