Skip to content
Merged
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 @@ -14,6 +14,8 @@

=== Bug fixes

- https://github.com/eclipse-syson/syson/issues/2232[#2232] [configuration] Fix a serialization problem of the View models of SysON representations.

=== 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
@@ -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
Expand All @@ -13,12 +13,14 @@
package org.eclipse.syson.common.view.api;

import java.util.List;
import java.util.Optional;
import java.util.UUID;

import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.sirius.components.emf.ResourceMetadataAdapter;
import org.eclipse.sirius.components.emf.services.IDAdapter;
import org.eclipse.sirius.components.emf.services.JSONResourceFactory;
import org.eclipse.sirius.components.view.ColorPalette;
import org.eclipse.sirius.components.view.RepresentationDescription;
import org.eclipse.sirius.components.view.View;
import org.eclipse.sirius.components.view.builder.generated.view.ViewBuilder;
Expand Down Expand Up @@ -55,6 +57,9 @@ default List<View> getRepresentationDescriptions() {
View view = viewBuilder.build();
IColorProvider colorProvider = new ColorProvider(view);

this.buildColorPalette()
.ifPresent(colorPalette -> view.getColorPalettes().add(colorPalette));

// Create org.eclipse.sirius.components.view.RepresentationDescription
IRepresentationDescriptionProvider viewDiagramDescriptionProvider = this.getRepresentationDescriptionProvider();
RepresentationDescription viewRepresentationDescription = viewDiagramDescriptionProvider.create(colorProvider);
Expand All @@ -73,4 +78,13 @@ default List<View> getRepresentationDescriptions() {

return List.of(view);
}

/**
* Creates an optional color palette for this {@link View}.
*
* @return an {@link Optional} color palette.
*/
default Optional<ColorPalette> buildColorPalette() {
return Optional.empty();
}
}

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2023, 2025 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
Expand All @@ -12,8 +12,14 @@
*******************************************************************************/
package org.eclipse.syson.standard.diagrams.view;

import java.util.Optional;

import org.eclipse.sirius.components.view.ColorPalette;
import org.eclipse.sirius.components.view.builder.generated.view.ColorPaletteBuilder;
import org.eclipse.sirius.components.view.builder.generated.view.ViewBuilders;
import org.eclipse.sirius.components.view.builder.providers.IRepresentationDescriptionProvider;
import org.eclipse.syson.common.view.api.IViewDescriptionProvider;
import org.eclipse.syson.diagram.common.view.nodes.AddYourFirstElement;
import org.springframework.stereotype.Service;

/**
Expand All @@ -37,4 +43,14 @@ public String getViewId() {
public IRepresentationDescriptionProvider getRepresentationDescriptionProvider() {
return new SDVDiagramDescriptionProvider();
}

@Override
public Optional<ColorPalette> buildColorPalette() {
ColorPalette colorPalette = new ColorPaletteBuilder().colors(new ViewBuilders().newFixedColor()
.name(AddYourFirstElement.COLOR_NAME)
.value("url(" + AddYourFirstElement.BASE64 + ") no-repeat center center / contain")
.build())
.build();
return Optional.of(colorPalette);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -321,14 +321,10 @@ public class SDVDiagramDescriptionProvider implements IRepresentationDescription
@Override
public RepresentationDescription create(IColorProvider colorProvider) {
String domainType = SysMLMetamodelHelper.buildQualifiedName(SysmlPackage.eINSTANCE.getNamespace());

var emptyDiagramStyle = new DiagramBuilders().newConditionalDiagramStyle()
.condition("aql:self.exposedElement->size() == 0 and editingContext.isDiagramEmpty(diagramContext, previousDiagram, self.exposedElement->size())")
.style(new DiagramBuilders().newDiagramStyleDescription()
.background(this.viewBuilderHelper.newFixedColor()
.name("AddYourFirstElement")
.value("url(" + AddYourFirstElement.BASE64 + ") no-repeat center center / contain")
.build())
.background(colorProvider.getColor(AddYourFirstElement.COLOR_NAME))
.build())
.build();

Expand Down
Loading