Skip to content

Commit f88ae58

Browse files
committed
[1606] Display the shortName in the label of Element in the Explorer view
Bug: #1606 Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
1 parent 9e8a54f commit f88ae58

8 files changed

Lines changed: 88 additions & 28 deletions

File tree

CHANGELOG.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
- https://github.com/eclipse-syson/syson/issues/1581[#1581] [diagrams] Redefine inherited `PortUsages` when connected as graphical border nodes.
2525
- https://github.com/eclipse-syson/syson/issues/1589[#1589] [explorer] Add a filter to hide expose elements in `ViewUsage`.
2626
- https://github.com/eclipse-syson/syson/issues/1587[#1587] [diagrams] Handle `ActionUsage` and `ActionDefinition` parameters as graphical border nodes.
27+
- https://github.com/eclipse-syson/syson/issues/1606[#1606] [explorer-view] Display the _shortName_ of `Elements` as part of the label in the _Explorer_ view.
2728

2829
== v2025.10.0
2930

backend/application/syson-application/src/test/java/org/eclipse/syson/application/controllers/explorer/view/ExplorerViewControllerIntegrationTests.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,14 @@ private record TreeItemMatcher(Function<Tree, TreeItem> treeItemFinder, Predicat
8787
tree -> tree.getChildren().get(0).getChildren().get(0).getChildren().get(1).getChildren().get(1),
8888
treeItem -> treeItem.getLabel().toString().equals("view4 [InterconnectionView]"));
8989

90+
private final TreeItemMatcher req1RU = new TreeItemMatcher(
91+
tree -> tree.getChildren().get(0).getChildren().get(1).getChildren().get(1),
92+
treeItem -> treeItem.getLabel().toString().equals("<Req1> requirement1"));
93+
94+
private final TreeItemMatcher req2RU = new TreeItemMatcher(
95+
tree -> tree.getChildren().get(0).getChildren().get(1).getChildren().get(2),
96+
treeItem -> treeItem.getLabel().toString().equals("<Req2> RequirementUsage"));
97+
9098
@Autowired
9199
private IGivenInitialServerState givenInitialServerState;
92100

@@ -142,6 +150,33 @@ public void testDirectEditOnViewUsage() {
142150

143151
}
144152

153+
@DisplayName("GIVEN the SysON Explorer View, WHEN we direct edit a Element with short name, THEN the shortName is not part of the initial value of the direct edit")
154+
@Sql(scripts = { ExplorerViewDirectEditTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD,
155+
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
156+
@Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))
157+
@Test
158+
public void testDirectEditOnElementWithShortName() {
159+
var expandedIds = this.getAllTreeItemIds();
160+
var activatedFilters = List.of(SysONTreeFilterProvider.HIDE_ROOT_NAMESPACES_ID, SysONTreeFilterProvider.HIDE_MEMBERSHIPS_TREE_ITEM_FILTER_ID);
161+
var treeRepresentationId = this.representationIdBuilder.buildExplorerRepresentationId(this.sysONTreeViewDescriptionProvider.getDescriptionId(), expandedIds, activatedFilters);
162+
163+
var treeEventInput = new ExplorerEventInput(UUID.randomUUID(), ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID, treeRepresentationId);
164+
var treeFlux = this.treeEventSubscriptionRunner.run(treeEventInput);
165+
166+
var hasProjectContent = this.getTreeRefreshedEventPayloadMatcher(List.of(this.req1RU, this.req2RU));
167+
168+
StepVerifier.create(treeFlux)
169+
.consumeNextWith(hasProjectContent)
170+
.then(this.triggerDirectEditTreeItemLabel(ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID, treeRepresentationId,
171+
UUID.fromString(ExplorerViewDirectEditTestProjectData.SemanticIds.REQ1_RU_ID), "requirement1"))
172+
.then(this.triggerDirectEditTreeItemLabel(ExplorerViewDirectEditTestProjectData.EDITING_CONTEXT_ID, treeRepresentationId,
173+
UUID.fromString(ExplorerViewDirectEditTestProjectData.SemanticIds.REQ2_RU_ID), ""))
174+
.thenCancel()
175+
.verify(Duration.ofSeconds(100));
176+
177+
}
178+
179+
145180
@DisplayName("GIVEN the SysON Explorer View, WHEN hide expose element filter is active, THEN the expose element are not return as tree item")
146181
@Sql(scripts = { ExplorerViewDirectEditTestProjectData.SCRIPT_PATH }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD,
147182
config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED))

backend/application/syson-application/src/test/java/org/eclipse/syson/application/data/ExplorerViewDirectEditTestProjectData.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ public static final class SemanticIds {
5656
public static final String VIEW_3_STV_ID = "cca0616d-49d3-4311-a390-2511576cf759";
5757

5858
public static final String VIEW_4_IV_ID = "c3b15305-e5fb-44a9-96a1-4e0245fc4f2c";
59+
60+
public static final String REQ1_RU_ID = "49ec0ce7-c6c4-45f2-a55b-d11a5dca62e4";
61+
62+
public static final String REQ2_RU_ID = "1380102d-9b85-4933-8f60-f691fab97672";
5963
}
6064

6165
}

backend/application/syson-application/src/test/resources/scripts/database-content/ExplorerView-DirectEdit.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ SET row_security = off;
1919
-- Data for Name: semantic_data; Type: TABLE DATA; Schema: public; Owner: dbuser
2020
--
2121

22-
INSERT INTO public.semantic_data (id, created_on, last_modified_on) VALUES ('4b5adc0c-90a2-48c6-9ae7-c3fc035ff38b', '2024-11-05 13:55:21.094331+00', '2025-10-10 13:10:27.605021+00');
22+
INSERT INTO public.semantic_data (id, created_on, last_modified_on) VALUES ('4b5adc0c-90a2-48c6-9ae7-c3fc035ff38b', '2024-11-05 13:55:21.094331+00', '2025-10-27 13:16:35.102947+00');
2323

2424

2525
--
2626
-- Data for Name: document; Type: TABLE DATA; Schema: public; Owner: dbuser
2727
--
2828

29-
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"}}]}}]}}]}}]}}]}', '2025-10-10 13:10:27.603838+00', '2025-10-10 13:10:27.603838+00', false);
29+
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);
3030

3131

3232
--

backend/views/syson-tree-explorer-view/src/main/java/org/eclipse/syson/tree/explorer/view/SysONExplorerTreeDescriptionProvider.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.eclipse.sirius.components.view.View;
2222
import org.eclipse.sirius.components.view.builder.generated.tree.TreeBuilders;
2323
import org.eclipse.sirius.components.view.builder.generated.tree.TreeDescriptionBuilder;
24+
import org.eclipse.sirius.components.view.builder.generated.view.TextStyleDescriptionBuilder;
2425
import org.eclipse.sirius.components.view.builder.generated.view.ViewBuilders;
2526
import org.eclipse.sirius.components.view.tree.TreeDescription;
2627
import org.eclipse.sirius.components.view.tree.TreeItemContextMenuEntry;
@@ -87,7 +88,8 @@ private TreeItemLabelDescription createDefaultStyle() {
8788
.newTreeItemLabelDescription()
8889
.name("Default style")
8990
.preconditionExpression("aql:true")
90-
.children(this.getDefaultLabelFragmentDescription(),
91+
.children(this.getShortNameLabelFragmentDescription(),
92+
this.getDefaultLabelFragmentDescription(),
9193
this.getTypeFragmentDescription())
9294
.build();
9395
}
@@ -98,6 +100,18 @@ private TreeItemLabelFragmentDescription getDefaultLabelFragmentDescription() {
98100
.build();
99101
}
100102

103+
private TreeItemLabelFragmentDescription getShortNameLabelFragmentDescription() {
104+
return new TreeBuilders().newTreeItemLabelFragmentDescription()
105+
.labelExpression("aql:self.getShortName()")
106+
.style(new TextStyleDescriptionBuilder()
107+
.name("ShortNamePrefixStyle")
108+
// Using color from MUI theme does not work so we use the hard coded color
109+
// See https://github.com/eclipse-sirius/sirius-web/issues/5672
110+
.foregroundColorExpression("aql:'#64669b'")
111+
.build())
112+
.build();
113+
}
114+
101115
private TreeItemLabelFragmentDescription getTypeFragmentDescription() {
102116
return new TreeBuilders().newTreeItemLabelFragmentDescription()
103117
.labelExpression("aql:self.getType()")

backend/views/syson-tree-explorer-view/src/main/java/org/eclipse/syson/tree/explorer/view/services/ComposedSysONExplorerService.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.eclipse.sirius.components.core.api.IEditingContext;
2020
import org.eclipse.sirius.components.trees.TreeItem;
2121
import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.RepresentationMetadata;
22+
import org.eclipse.syson.sysml.Element;
2223
import org.eclipse.syson.sysml.ViewUsage;
2324
import org.eclipse.syson.tree.explorer.view.services.api.ISysONDefaultExplorerService;
2425
import org.eclipse.syson.tree.explorer.view.services.api.ISysONExplorerService;
@@ -155,6 +156,16 @@ public String getType(Object self) {
155156
return type.toString();
156157
}
157158

159+
public String getShortName(Object self) {
160+
if (self instanceof Element element) {
161+
String shortName = element.getShortName();
162+
if (shortName != null && !shortName.isBlank()) {
163+
return "<" + shortName + "> ";
164+
}
165+
}
166+
return "";
167+
}
168+
158169
private Optional<ISysONExplorerServiceDelegate> getDelegate(Object object) {
159170
return this.explorerServiceDelegate.stream()
160171
.filter(delegate -> delegate.canHandle(object))

0 commit comments

Comments
 (0)