From 615765a3b052a50c5506f6bd3bc718d9dc6b8633 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9lanie=20Bats?= Date: Tue, 13 Oct 2026 14:20:28 +0200 Subject: [PATCH] [enh] Harmonize SysML icon palette MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mélanie Bats Signed-off-by: Guillaume Coutable --- CHANGELOG.adoc | 1 + .../sysml/provider/ItemUsageItemProvider.java | 23 +++++++++--- .../provider/ReferenceUsageItemProvider.java | 34 +++++++++++++++--- .../icons/full/obj16/AcceptActionUsage.svg | 2 +- .../icons/full/obj16/ActionDefinition.svg | 2 +- .../icons/full/obj16/ActionUsage.svg | 2 +- .../icons/full/obj16/AllocationDefinition.svg | 2 +- .../icons/full/obj16/AllocationUsage.svg | 2 +- .../full/obj16/AnalysisCaseDefinition.svg | 2 +- .../icons/full/obj16/AnalysisCaseUsage.svg | 2 +- .../full/obj16/AssertConstraintUsage.svg | 2 +- .../full/obj16/AssignmentActionUsage.svg | 2 +- .../icons/full/obj16/AttributeDefinition.svg | 2 +- .../icons/full/obj16/AttributeUsage.svg | 2 +- .../resources/icons/full/obj16/Behavior.svg | 2 +- .../full/obj16/BindingConnectorAsUsage.svg | 2 +- .../full/obj16/CalculationDefinition.svg | 2 +- .../icons/full/obj16/CalculationUsage.svg | 2 +- .../icons/full/obj16/CaseDefinition.svg | 2 +- .../resources/icons/full/obj16/CaseUsage.svg | 2 +- .../resources/icons/full/obj16/Comment.svg | 2 +- .../icons/full/obj16/ConcernDefinition.svg | 2 +- .../icons/full/obj16/ConcernUsage.svg | 2 +- .../full/obj16/ConjugatedPortDefinition.svg | 2 +- .../icons/full/obj16/ConnectionDefinition.svg | 2 +- .../icons/full/obj16/ConnectionUsage.svg | 2 +- .../icons/full/obj16/ConnectorDefinition.svg | 2 +- .../icons/full/obj16/ConnectorUsage.svg | 2 +- .../icons/full/obj16/ConstraintDefinition.svg | 2 +- .../icons/full/obj16/ConstraintUsage.svg | 2 +- .../icons/full/obj16/DecisionNode.svg | 2 +- .../icons/full/obj16/Documentation.svg | 2 +- .../icons/full/obj16/EventOccurrenceUsage.svg | 2 +- .../icons/full/obj16/ExhibitStateUsage.svg | 2 +- .../main/resources/icons/full/obj16/Flow.svg | 2 +- .../icons/full/obj16/FlowDefinition.svg | 2 +- .../resources/icons/full/obj16/FlowEnd.svg | 2 +- .../resources/icons/full/obj16/FlowUsage.svg | 2 +- .../icons/full/obj16/ForLoopActionUsage.svg | 2 +- .../resources/icons/full/obj16/ForkNode.svg | 2 +- .../full/obj16/FramedConcernMembership.svg | 2 +- .../icons/full/obj16/IfActionUsage.svg | 2 +- .../icons/full/obj16/InterfaceDefinition.svg | 2 +- .../icons/full/obj16/InterfaceUsage.svg | 2 +- .../icons/full/obj16/ItemDefinition.svg | 2 +- .../icons/full/obj16/ItemDefinitionIn.svg | 2 +- .../icons/full/obj16/ItemDefinitionInout.svg | 2 +- .../icons/full/obj16/ItemDefinitionOut.svg | 2 +- .../resources/icons/full/obj16/ItemUsage.svg | 2 +- .../icons/full/obj16/ItemUsageIn.svg | 2 +- .../icons/full/obj16/ItemUsageInout.svg | 2 +- .../icons/full/obj16/ItemUsageOut.svg | 2 +- .../resources/icons/full/obj16/JoinNode.svg | 2 +- .../icons/full/obj16/LibraryPackage.svg | 2 +- .../resources/icons/full/obj16/MergeNode.svg | 2 +- .../icons/full/obj16/MetadataDefinition.svg | 2 +- .../icons/full/obj16/MetadataFeature.svg | 2 +- .../icons/full/obj16/MetadataUsage.svg | 2 +- .../icons/full/obj16/NamespaceImport.svg | 2 +- .../full/obj16/NamespaceImportRecursive.svg | 2 +- .../icons/full/obj16/OccurrenceDefinition.svg | 2 +- .../icons/full/obj16/OccurrenceUsage.svg | 2 +- .../resources/icons/full/obj16/Package.svg | 2 +- .../icons/full/obj16/PartDefinition.svg | 2 +- .../resources/icons/full/obj16/PartUsage.svg | 2 +- .../icons/full/obj16/PerformActionUsage.svg | 2 +- .../icons/full/obj16/PortDefinition.svg | 2 +- .../icons/full/obj16/PortDefinitionIn.svg | 2 +- .../icons/full/obj16/PortDefinitionInout.svg | 2 +- .../icons/full/obj16/PortDefinitionOut.svg | 2 +- .../resources/icons/full/obj16/PortUsage.svg | 2 +- .../icons/full/obj16/PortUsageIn.svg | 2 +- .../icons/full/obj16/PortUsageInout.svg | 2 +- .../icons/full/obj16/PortUsageOut.svg | 2 +- .../icons/full/obj16/ReferenceDefinition.svg | 2 +- .../icons/full/obj16/ReferenceUsage.svg | 2 +- .../icons/full/obj16/ReferenceUsageIn.svg | 2 +- .../icons/full/obj16/ReferenceUsageInout.svg | 2 +- .../icons/full/obj16/ReferenceUsageOut.svg | 2 +- .../obj16/RequirementConstraintMembership.svg | 2 +- .../full/obj16/RequirementDefinition.svg | 2 +- .../icons/full/obj16/RequirementUsage.svg | 2 +- .../RequirementVerificationMembership.svg | 2 +- .../full/obj16/SatisfyRequirementUsage.svg | 2 +- .../icons/full/obj16/SendActionUsage.svg | 2 +- .../icons/full/obj16/StateDefinition.svg | 2 +- .../full/obj16/StateSubactionMembership.svg | 2 +- .../resources/icons/full/obj16/StateUsage.svg | 2 +- .../main/resources/icons/full/obj16/Step.svg | 2 +- .../icons/full/obj16/TerminateActionUsage.svg | 2 +- .../obj16/TransitionFeatureMembership.svg | 2 +- .../icons/full/obj16/TransitionUsage.svg | 2 +- .../icons/full/obj16/UseCaseDefinition.svg | 2 +- .../icons/full/obj16/UseCaseUsage.svg | 2 +- .../full/obj16/VerificationCaseDefinition.svg | 2 +- .../full/obj16/VerificationCaseUsage.svg | 2 +- .../icons/full/obj16/ViewDefinition.svg | 2 +- .../resources/icons/full/obj16/ViewUsage.svg | 2 +- .../icons/full/obj16/ViewpointDefinition.svg | 2 +- .../icons/full/obj16/ViewpointUsage.svg | 2 +- .../icons/full/obj16/WhileLoopActionUsage.svg | 2 +- .../resources/icons/full/obj16/parameter.svg | 1 + .../icons/full/obj16/parameterIn.svg | 1 + .../icons/full/obj16/parameterInout.svg | 1 + .../icons/full/obj16/parameterOut.svg | 1 + ...nceUsageBorderNodeDescriptionProvider.java | 6 ++-- .../ForkActionNodeDescriptionProvider.java | 2 +- .../JoinActionNodeDescriptionProvider.java | 2 +- .../ParameterCompartmentNodeToolProvider.java | 2 +- .../src/main/resources/icons/done_action.svg | 6 ++-- .../src/main/resources/icons/start_action.svg | 4 +-- .../main/resources/images/decision_action.svg | 2 +- .../src/main/resources/images/done_action.svg | 6 ++-- .../src/main/resources/images/feature_in.svg | 2 +- .../main/resources/images/feature_inout.svg | 2 +- .../src/main/resources/images/feature_out.svg | 2 +- .../main/resources/images/merge_action.svg | 2 +- .../main/resources/images/parameter_in.svg | 1 + .../main/resources/images/parameter_inout.svg | 1 + .../main/resources/images/parameter_out.svg | 1 + .../main/resources/images/start_action.svg | 4 +-- .../diagrams/view/SDVDescriptionProvider.java | 6 +++- ...notes-diagram-sysml-icons-hamonization.png | Bin 0 -> 27313 bytes ...tes-explorer-sysml-icons-harmonization.png | Bin 0 -> 21430 bytes .../pages/release-notes/2026.11.0.adoc | 13 +++++++ 125 files changed, 194 insertions(+), 128 deletions(-) create mode 100644 backend/metamodel/syson-sysml-metamodel-edit/src/main/resources/icons/full/obj16/parameter.svg create mode 100644 backend/metamodel/syson-sysml-metamodel-edit/src/main/resources/icons/full/obj16/parameterIn.svg create mode 100644 backend/metamodel/syson-sysml-metamodel-edit/src/main/resources/icons/full/obj16/parameterInout.svg create mode 100644 backend/metamodel/syson-sysml-metamodel-edit/src/main/resources/icons/full/obj16/parameterOut.svg create mode 100644 backend/views/syson-diagram-common-view/src/main/resources/images/parameter_in.svg create mode 100644 backend/views/syson-diagram-common-view/src/main/resources/images/parameter_inout.svg create mode 100644 backend/views/syson-diagram-common-view/src/main/resources/images/parameter_out.svg create mode 100644 doc/content/modules/user-manual/assets/images/release-notes-diagram-sysml-icons-hamonization.png create mode 100644 doc/content/modules/user-manual/assets/images/release-notes-explorer-sysml-icons-harmonization.png diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index c6554cbd7c..d2f0b34bb7 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -48,6 +48,7 @@ The parsed elements are still imported, and the loading report includes the pars - [cleanup] Use `SemanticRunnableFactory` more widely in integration tests, replacing the `IExecuteEditingContextFunctionRunner` by the `SemanticRunnableFactory`. - [releng] Remove redundant inherited Maven `groupId` and `version` declarations from backend modules. - [frontend] Export six components and eight hooks from `@eclipse-syson/syson-components` for expression tools and properties, the new-object report, diagram visibility, and node rotation. +- [core] Harmonize SysML icons === New features diff --git a/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ItemUsageItemProvider.java b/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ItemUsageItemProvider.java index eb40336fdd..3d2d7edf76 100644 --- a/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ItemUsageItemProvider.java +++ b/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ItemUsageItemProvider.java @@ -1,5 +1,5 @@ -/** - * Copyright (c) 2023, 2024 Obeo. +/******************************************************************************* + * Copyright (c) 2023, 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 @@ -9,7 +9,7 @@ * * Contributors: * Obeo - initial API and implementation - */ + *******************************************************************************/ package org.eclipse.syson.sysml.provider; import java.util.Collection; @@ -20,8 +20,10 @@ import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.edit.provider.ComposeableAdapterFactory; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.syson.sysml.Behavior; import org.eclipse.syson.sysml.FeatureDirectionKind; import org.eclipse.syson.sysml.ItemUsage; +import org.eclipse.syson.sysml.Step; import org.eclipse.syson.sysml.SysmlPackage; /** @@ -82,7 +84,12 @@ protected void addItemDefinitionPropertyDescriptor(Object object) { @Override public Object getImage(Object object) { StringBuilder iconPath = new StringBuilder(); - iconPath.append("full/obj16/ItemUsage"); + boolean isParameter = this.isParameter(object); + if (isParameter) { + iconPath.append("full/obj16/parameter"); + } else { + iconPath.append("full/obj16/ItemUsage"); + } if (object instanceof ItemUsage item) { FeatureDirectionKind direction = item.getDirection(); if (direction != null) { @@ -93,6 +100,14 @@ public Object getImage(Object object) { return this.overlayImage(object, this.getResourceLocator().getImage(iconPath.toString())); } + /** + * @generated NOT + */ + private boolean isParameter(Object object) { + return object instanceof ItemUsage itemUsage && (itemUsage.getOwningType() instanceof Step || itemUsage.getOwningType() instanceof Behavior) + && itemUsage.getDirection() != null; + } + /** * This returns the label text for the adapted class. * diff --git a/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ReferenceUsageItemProvider.java b/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ReferenceUsageItemProvider.java index bea29ae2ad..1ac3f6a79c 100644 --- a/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ReferenceUsageItemProvider.java +++ b/backend/metamodel/syson-sysml-metamodel-edit/src/main/java/org/eclipse/syson/sysml/provider/ReferenceUsageItemProvider.java @@ -1,5 +1,5 @@ -/** - * Copyright (c) 2023, 2024 Obeo. +/******************************************************************************* + * Copyright (c) 2023, 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 @@ -9,16 +9,20 @@ * * Contributors: * Obeo - initial API and implementation - */ + *******************************************************************************/ package org.eclipse.syson.sysml.provider; import java.util.Collection; import java.util.List; +import org.apache.commons.lang3.StringUtils; import org.eclipse.emf.common.notify.AdapterFactory; import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.edit.provider.IItemPropertyDescriptor; +import org.eclipse.syson.sysml.Behavior; +import org.eclipse.syson.sysml.FeatureDirectionKind; import org.eclipse.syson.sysml.ReferenceUsage; +import org.eclipse.syson.sysml.Step; /** * This is the item provider adapter for a {@link org.eclipse.syson.sysml.ReferenceUsage} object.