diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc index cba7388d00..d4ffd64769 100644 --- a/CHANGELOG.adoc +++ b/CHANGELOG.adoc @@ -42,6 +42,8 @@ This allows an error to be displayed when there is a problem during uploading + Remove `org.eclipse.sirius.components.core.api.IRepresentationMetadataSearchService` and its implementation. + Use `org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationMetadataSearchService#findAllMetadataByTargetObjectId` instead of `org.eclipse.sirius.components.core.api.IRepresentationMetadataSearchService#findAllByTargetObjectId`. - https://github.com/eclipse-sirius/sirius-web/issues/3679[#3679] [sirius-web] aql service `hasChildren` requires the editing context like the aql service `getChildren`. +- https://github.com/eclipse-sirius/sirius-web/issues/3680[#3680] [core] The label has been removed from the content of all representations. ++ The label of a representation is available through its metadata that can be retrieve thanks to the service `IRepresentationMetadataSearchService` from sirius-web-domain or, `IRepresentationMetadataProvider` from sirius-components-collaborative. === Dependency update diff --git a/integration-tests/cypress/e2e/project/diagrams/diagram-list.cy.ts b/integration-tests/cypress/e2e/project/diagrams/diagram-list.cy.ts index 9bc262dd34..e0ac19a9a6 100644 --- a/integration-tests/cypress/e2e/project/diagrams/diagram-list.cy.ts +++ b/integration-tests/cypress/e2e/project/diagrams/diagram-list.cy.ts @@ -11,8 +11,9 @@ * Obeo - initial API and implementation *******************************************************************************/ import { Studio } from '../../../usecases/Studio'; -import { Explorer } from '../../../workbench/Explorer'; import { Details } from '../../../workbench/Details'; +import { Diagram } from '../../../workbench/Diagram'; +import { Explorer } from '../../../workbench/Explorer'; describe('Diagram - list', () => { const domainName: string = 'diagramList'; @@ -33,20 +34,26 @@ describe('Diagram - list', () => { it('Then the node is correctly displayed with the proper separator', () => { const explorer = new Explorer(); + const diagram = new Diagram(); const details = new Details(); explorer.createObject('Root', 'entity1s-Entity1'); details.getTextField('Name').type('list{enter}'); new Explorer().createRepresentation('Root', diagramDescriptionName, diagramTitle); + diagram.fitToScreen(); // Compartment list without label - cy.getByTestId('List - undefined').should('exist'); - cy.getByTestId('List - undefined') - .invoke('css', 'border-width') - .then((borderWidth) => { - expect(borderWidth).to.eq('0px 0px 1px'); + diagram + .getDiagram(diagramTitle) + .findByTestId('List - undefined') + .should('exist') + .invoke('attr', 'style') + .then((style) => { + expect(style).to.contain('border-width: 0px 0px 1px'); }); // Compartment freeform - cy.getByTestId('FreeForm - list').should('exist'); - cy.getByTestId('FreeForm - list') + diagram + .getDiagram(diagramTitle) + .findByTestId('FreeForm - list') + .should('exist') .invoke('css', 'border-width') .then((borderWidth) => { expect(borderWidth).to.eq('0px'); diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/BarChart.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/BarChart.java index d2c1259f0e..add7b347e5 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/BarChart.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/BarChart.java @@ -34,8 +34,6 @@ public final class BarChart implements IChart { private String descriptionId; - private String label; - private String kind; private String targetObjectId; @@ -64,11 +62,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return this.kind; @@ -105,8 +98,8 @@ public static Builder newBarChart(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, descriptionId: {2}, label: {3}, kind: {4}, width: {5}, height: {6}, yAxisLabel:{7}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.label, this.kind, this.width, this.height, this.yAxisLabel); + String pattern = "{0} '{'id: {1}, descriptionId: {2}, kind: {3}, width: {4}, height: {5}, yAxisLabel:{6}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.kind, this.width, this.height, this.yAxisLabel); } /** @@ -121,8 +114,6 @@ public static final class Builder { private String descriptionId; - private String label; - private String kind = KIND; private String targetObjectId; @@ -146,11 +137,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -185,7 +171,6 @@ public BarChart build() { BarChart barChart = new BarChart(); barChart.id = Objects.requireNonNull(this.id); barChart.descriptionId = Objects.requireNonNull(this.descriptionId); - barChart.label = Objects.requireNonNull(this.label); barChart.kind = Objects.requireNonNull(this.kind); barChart.targetObjectId = Objects.requireNonNull(this.targetObjectId); barChart.entries = Objects.requireNonNull(this.entries); diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/components/BarChartComponent.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/components/BarChartComponent.java index 3e263283b6..9301b545c0 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/components/BarChartComponent.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/components/BarChartComponent.java @@ -45,7 +45,6 @@ public Element render() { Optional optionalPreviousBarChart = this.props.getPreviousBarChart(); String id = optionalPreviousBarChart.map(BarChart::getId).orElseGet(() -> UUID.randomUUID().toString()); - String label = barChartDescription.getLabelProvider().apply(variableManager); String targetObjectId = barChartDescription.getTargetObjectIdProvider().apply(variableManager); List values = barChartDescription.getValuesProvider().apply(variableManager); List keys = barChartDescription.getKeysProvider().apply(variableManager); @@ -53,7 +52,6 @@ public Element render() { BarChartStyle barChartStyle = barChartDescription.getStyleProvider().apply(variableManager); Builder builder = BarChartElementProps.newBarChartElementProps(id) - .label(label) .descriptionId(barChartDescription.getId()) .targetObjectId(targetObjectId) .values(values) diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/elements/BarChartElementProps.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/elements/BarChartElementProps.java index fc77036a2e..f82b651458 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/elements/BarChartElementProps.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/barchart/elements/BarChartElementProps.java @@ -33,8 +33,6 @@ public final class BarChartElementProps implements IProps { private String descriptionId; - private String label; - private String targetObjectId; private List values; @@ -61,10 +59,6 @@ public String getDescriptionId() { return this.descriptionId; } - public String getLabel() { - return this.label; - } - public String getTargetObjectId() { return this.targetObjectId; } @@ -108,8 +102,6 @@ public static final class Builder { private String descriptionId; - private String label; - private String targetObjectId; private List values; @@ -133,11 +125,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -177,7 +164,6 @@ public BarChartElementProps build() { BarChartElementProps barChartElementProps = new BarChartElementProps(); barChartElementProps.id = Objects.requireNonNull(this.id); barChartElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); - barChartElementProps.label = Objects.requireNonNull(this.label); barChartElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); barChartElementProps.values = Objects.requireNonNull(this.values); barChartElementProps.keys = Objects.requireNonNull(this.keys); diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/Hierarchy.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/Hierarchy.java index c50b1d5ca0..69e5d64e4a 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/Hierarchy.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/Hierarchy.java @@ -31,8 +31,6 @@ public class Hierarchy implements IRepresentation { private String targetObjectId; - private String label; - private String kind; private List childNodes; @@ -41,11 +39,10 @@ public Hierarchy() { // Used by Jackson } - public Hierarchy(String id, String descriptionId, String targetObjectId, String label, String kind, List childNodes) { + public Hierarchy(String id, String descriptionId, String targetObjectId, String kind, List childNodes) { this.id = Objects.requireNonNull(id); this.descriptionId = Objects.requireNonNull(descriptionId); this.targetObjectId = Objects.requireNonNull(targetObjectId); - this.label = Objects.requireNonNull(label); this.kind = Objects.requireNonNull(kind); this.childNodes = Objects.requireNonNull(childNodes); } @@ -65,11 +62,6 @@ public String getTargetObjectId() { return this.targetObjectId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return this.kind; @@ -81,8 +73,8 @@ public List getChildNodes() { @Override public String toString() { - String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3}, label: {4}, kind: {5}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId, this.label, this.kind); + String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3}, kind: {4}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId, this.kind); } } diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/components/HierarchyComponent.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/components/HierarchyComponent.java index a16f387e8d..e86e957c7d 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/components/HierarchyComponent.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/components/HierarchyComponent.java @@ -46,7 +46,6 @@ public Element render() { String id = optionalPreviousHierarchy.map(Hierarchy::getId).orElseGet(() -> UUID.randomUUID().toString()); String targetObjectId = hierarchyDescription.getTargetObjectIdProvider().apply(variableManager); - String label = variableManager.get(HierarchyDescription.LABEL, String.class).orElse(""); String kind = hierarchyDescription.getKind(); List previousNodes = optionalPreviousHierarchy.map(Hierarchy::getChildNodes).orElse(List.of()); @@ -54,7 +53,7 @@ public Element render() { HierarchyNodeComponentProps nodeComponentProps = new HierarchyNodeComponentProps(variableManager, hierarchyDescription, previousNodes, id); List children = List.of(new Element(HierarchyNodeComponent.class, nodeComponentProps)); - HierarchyElementProps hierarchyElementProps = new HierarchyElementProps(id, hierarchyDescription.getId(), targetObjectId, label, kind, children); + HierarchyElementProps hierarchyElementProps = new HierarchyElementProps(id, hierarchyDescription.getId(), targetObjectId, kind, children); return new Element(HierarchyElementProps.TYPE, hierarchyElementProps); } diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/elements/HierarchyElementProps.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/elements/HierarchyElementProps.java index 77aa4d7147..e5f7076c7a 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/elements/HierarchyElementProps.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/elements/HierarchyElementProps.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 Obeo. + * Copyright (c) 2022, 2024 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 @@ -33,17 +33,14 @@ public class HierarchyElementProps implements IProps { private final String targetObjectId; - private final String label; - private final String kind; private final List children; - public HierarchyElementProps(String id, String descriptionId, String targetObjectId, String label, String kind, List children) { + public HierarchyElementProps(String id, String descriptionId, String targetObjectId, String kind, List children) { this.id = Objects.requireNonNull(id); this.descriptionId = Objects.requireNonNull(descriptionId); this.targetObjectId = Objects.requireNonNull(targetObjectId); - this.label = Objects.requireNonNull(label); this.kind = Objects.requireNonNull(kind); this.children = Objects.requireNonNull(children); } @@ -60,10 +57,6 @@ public String getTargetObjectId() { return this.targetObjectId; } - public String getLabel() { - return this.label; - } - public String getKind() { return this.kind; } diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/renderer/HierarchyElementFactory.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/renderer/HierarchyElementFactory.java index 58f1c941cc..e887bc1afb 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/renderer/HierarchyElementFactory.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/hierarchy/renderer/HierarchyElementFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -40,23 +40,19 @@ public Object instantiateElement(String type, IProps props, List childre } private Hierarchy instantiateHierarchy(HierarchyElementProps props, List children) { - // @formatter:off List nodes = children.stream() .filter(HierarchyNode.class::isInstance) .map(HierarchyNode.class::cast) .toList(); - // @formatter:on - return new Hierarchy(props.getId(), props.getDescriptionId(), props.getTargetObjectId(), props.getLabel(), props.getKind(), nodes); + return new Hierarchy(props.getId(), props.getDescriptionId(), props.getTargetObjectId(), props.getKind(), nodes); } private HierarchyNode instantiateNode(HierarchyNodeElementProps props, List children) { - // @formatter:off List nodes = children.stream() .filter(HierarchyNode.class::isInstance) .map(HierarchyNode.class::cast) .toList(); - // @formatter:on return new HierarchyNode(props.getId(), props.getTargetObjectId(), props.getLabel(), nodes); } diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/PieChart.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/PieChart.java index 412a5fd464..d9af9575c9 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/PieChart.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/PieChart.java @@ -34,8 +34,6 @@ public final class PieChart implements IChart { private String descriptionId; - private String label; - private String kind; private String targetObjectId; @@ -58,11 +56,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return this.kind; @@ -87,8 +80,8 @@ public static Builder newPieChart(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, descriptionId: {2}, label: {3}, kind: {4}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.label, this.kind); + String pattern = "{0} '{'id: {1}, descriptionId: {2}, kind: {3}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.kind); } /** @@ -103,8 +96,6 @@ public static final class Builder { private String descriptionId; - private String label; - private String kind = KIND; private String targetObjectId; @@ -122,11 +113,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -145,7 +131,6 @@ public Builder style(PieChartStyle style) { public PieChart build() { PieChart pieChart = new PieChart(); pieChart.id = Objects.requireNonNull(this.id); - pieChart.label = Objects.requireNonNull(this.label); pieChart.descriptionId = Objects.requireNonNull(this.descriptionId); pieChart.kind = Objects.requireNonNull(this.kind); pieChart.targetObjectId = Objects.requireNonNull(this.targetObjectId); diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/components/PieChartComponent.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/components/PieChartComponent.java index b2146b3c3f..d5a689c959 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/components/PieChartComponent.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/components/PieChartComponent.java @@ -45,14 +45,12 @@ public Element render() { Optional optionalPreviousPieChart = this.props.getPreviousPieChart(); String id = optionalPreviousPieChart.map(PieChart::getId).orElseGet(() -> UUID.randomUUID().toString()); - String label = Optional.ofNullable(pieChartDescription.getLabel()).orElse(""); String targetObjectId = pieChartDescription.getTargetObjectIdProvider().apply(variableManager); List values = pieChartDescription.getValuesProvider().apply(variableManager); List keys = pieChartDescription.getKeysProvider().apply(variableManager); PieChartStyle pieChartStyle = pieChartDescription.getStyleProvider().apply(variableManager); Builder builder = PieChartElementProps.newPieChartElementProps(id) - .label(label) .descriptionId(pieChartDescription.getId()) .targetObjectId(targetObjectId) .values(values) diff --git a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/elements/PieChartElementProps.java b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/elements/PieChartElementProps.java index 0c339afe96..8c5a2dd3f3 100644 --- a/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/elements/PieChartElementProps.java +++ b/packages/charts/backend/sirius-components-charts/src/main/java/org/eclipse/sirius/components/charts/piechart/elements/PieChartElementProps.java @@ -31,8 +31,6 @@ public final class PieChartElementProps implements IProps { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -51,10 +49,6 @@ public String getId() { return this.id; } - public String getLabel() { - return this.label; - } - public String getTargetObjectId() { return this.targetObjectId; } @@ -88,8 +82,6 @@ public static Builder newPieChartElementProps(String id) { public static final class Builder { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -104,11 +96,6 @@ public Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -137,7 +124,6 @@ public Builder style(PieChartStyle style) { public PieChartElementProps build() { PieChartElementProps pieChartElementProps = new PieChartElementProps(); pieChartElementProps.id = Objects.requireNonNull(this.id); - pieChartElementProps.label = Objects.requireNonNull(this.label); pieChartElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); pieChartElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); pieChartElementProps.values = Objects.requireNonNull(this.values); diff --git a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/CreateHierarchyEventHandler.java b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/CreateHierarchyEventHandler.java index fbfeeafd53..2869410ae9 100644 --- a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/CreateHierarchyEventHandler.java +++ b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/CreateHierarchyEventHandler.java @@ -20,6 +20,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.charts.messages.ICollaborativeChartsMessageService; @@ -32,6 +33,7 @@ import org.eclipse.sirius.components.core.api.IObjectService; import org.eclipse.sirius.components.core.api.IPayload; import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; +import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; import io.micrometer.core.instrument.Counter; @@ -49,6 +51,8 @@ public class CreateHierarchyEventHandler implements IEditingContextEventHandler private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IObjectService objectService; @@ -59,10 +63,12 @@ public class CreateHierarchyEventHandler implements IEditingContextEventHandler private final Counter counter; - public CreateHierarchyEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, - IObjectService objectService, ICollaborativeChartsMessageService messageService, HierarchyCreationService hierarchyCreationService, MeterRegistry meterRegistry) { + public CreateHierarchyEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, + IRepresentationPersistenceService representationPersistenceService, IObjectService objectService, ICollaborativeChartsMessageService messageService, + HierarchyCreationService hierarchyCreationService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.objectService = Objects.requireNonNull(objectService); this.messageService = Objects.requireNonNull(messageService); this.hierarchyCreationService = Objects.requireNonNull(hierarchyCreationService); @@ -101,10 +107,16 @@ public void handle(One payloadSink, Many changeDesc Object object = optionalObject.get(); HierarchyDescription representationDescription = optionalHierarchyDescription.get(); - Hierarchy hierarchy = this.hierarchyCreationService.create(createRepresentationInput, createRepresentationInput.representationName(), object, representationDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(HierarchyDescription.LABEL, createRepresentationInput.representationName()); + String label = representationDescription.getLabelProvider().apply(variableManager); + + Hierarchy hierarchy = this.hierarchyCreationService.create(object, representationDescription, editingContext); + var representationMetadata = new RepresentationMetadata(hierarchy.getId(), hierarchy.getKind(), label, hierarchy.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, hierarchy.getTargetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, hierarchy); - var representationMetadata = new RepresentationMetadata(hierarchy.getId(), hierarchy.getKind(), hierarchy.getLabel(), hierarchy.getDescriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyCreationService.java b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyCreationService.java index 0560514d71..01dc059f24 100644 --- a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyCreationService.java +++ b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyCreationService.java @@ -26,7 +26,6 @@ import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IObjectService; import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; -import org.eclipse.sirius.components.events.ICause; import org.eclipse.sirius.components.representations.Element; import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; @@ -55,41 +54,35 @@ public HierarchyCreationService(IRepresentationDescriptionSearchService represen this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.objectService = Objects.requireNonNull(objectService); - // @formatter:off this.timer = Timer.builder(Monitoring.REPRESENTATION_EVENT_PROCESSOR_REFRESH) .tag(Monitoring.NAME, "hierarchy") .register(meterRegistry); - // @formatter:on } - public Hierarchy create(ICause cause, String label, Object targetObject, HierarchyDescription hierarchyDescription, IEditingContext editingContext) { - Hierarchy newHierarchy = this.doRender(cause, label, targetObject, editingContext, hierarchyDescription, Optional.empty()); - return newHierarchy; + public Hierarchy create(Object targetObject, HierarchyDescription hierarchyDescription, IEditingContext editingContext) { + return this.doRender(targetObject, editingContext, hierarchyDescription, Optional.empty()); } - public Optional refresh(ICause cause, IEditingContext editingContext, HierarchyContext hierarchyContext) { + public Optional refresh(IEditingContext editingContext, HierarchyContext hierarchyContext) { Hierarchy previousHierarchy = hierarchyContext.getHierarchy(); var optionalObject = this.objectService.getObject(editingContext, previousHierarchy.getTargetObjectId()); - // @formatter:off var optionalHierarchyDescription = this.representationDescriptionSearchService.findById(editingContext, previousHierarchy.getDescriptionId()) .filter(HierarchyDescription.class::isInstance) .map(HierarchyDescription.class::cast); - // @formatter:on if (optionalObject.isPresent() && optionalHierarchyDescription.isPresent()) { Object object = optionalObject.get(); HierarchyDescription hierarchyDescription = optionalHierarchyDescription.get(); - Hierarchy hierarchy = this.doRender(cause, previousHierarchy.getLabel(), object, editingContext, hierarchyDescription, Optional.of(hierarchyContext)); + Hierarchy hierarchy = this.doRender(object, editingContext, hierarchyDescription, Optional.of(hierarchyContext)); return Optional.of(hierarchy); } return Optional.empty(); } - private Hierarchy doRender(ICause cause, String label, Object targetObject, IEditingContext editingContext, HierarchyDescription hierarchyDescription, Optional optionalHierarchyContext) { + private Hierarchy doRender(Object targetObject, IEditingContext editingContext, HierarchyDescription hierarchyDescription, Optional optionalHierarchyContext) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); - variableManager.put(HierarchyDescription.LABEL, label); variableManager.put(VariableManager.SELF, targetObject); variableManager.put(IEditingContext.EDITING_CONTEXT, editingContext); @@ -100,8 +93,6 @@ private Hierarchy doRender(ICause cause, String label, Object targetObject, IEdi Hierarchy newHierarchy = new HierarchyRenderer().render(element); - this.representationPersistenceService.save(null, editingContext, newHierarchy); - long end = System.currentTimeMillis(); this.timer.record(end - start, TimeUnit.MILLISECONDS); return newHierarchy; diff --git a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessor.java b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessor.java index 6998b40b17..bbadc3e3af 100644 --- a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessor.java +++ b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessor.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.components.charts.hierarchy.Hierarchy; import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; +import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationSearchService; import org.eclipse.sirius.components.collaborative.api.ISubscriptionManager; import org.eclipse.sirius.components.core.api.IEditingContext; @@ -49,12 +50,15 @@ public class HierarchyEventProcessor implements IHierarchyEventProcessor { private final HierarchyCreationService hierarchyCreationService; + private final IRepresentationPersistenceService representationPersistenceService; + private final HierarchyEventFlux hierarchyEventFlux; private final IRepresentationSearchService representationSearchService; public HierarchyEventProcessor(IEditingContext editingContext, HierarchyContext hierarchyContext, ISubscriptionManager subscriptionManager, HierarchyCreationService hierarchyCreationService, + IRepresentationPersistenceService representationPersistenceService, IRepresentationSearchService representationSearchService) { this.logger.trace("Creating the hierarchy event processor {}", hierarchyContext.getHierarchy().getId()); @@ -62,11 +66,13 @@ public HierarchyEventProcessor(IEditingContext editingContext, HierarchyContext this.hierarchyContext = Objects.requireNonNull(hierarchyContext); this.subscriptionManager = Objects.requireNonNull(subscriptionManager); this.hierarchyCreationService = Objects.requireNonNull(hierarchyCreationService); + this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.representationSearchService = Objects.requireNonNull(representationSearchService); // We automatically refresh the representation before using it since things may have changed since the moment it // has been saved in the database. This is quite similar to the auto-refresh on loading in Sirius. - Hierarchy hierarchy = this.hierarchyCreationService.refresh(null, editingContext, hierarchyContext).orElse(null); + Hierarchy hierarchy = this.hierarchyCreationService.refresh(editingContext, hierarchyContext).orElse(null); + this.representationPersistenceService.save(null, editingContext, hierarchy); hierarchyContext.update(hierarchy); this.hierarchyEventFlux = new HierarchyEventFlux(hierarchy); @@ -91,7 +97,8 @@ public void handle(One payloadSink, Many changeDesc @Override public void refresh(ChangeDescription changeDescription) { if (this.shouldRefresh(changeDescription)) { - Hierarchy refreshedHierarchy = this.hierarchyCreationService.refresh(changeDescription.getInput(), this.editingContext, this.hierarchyContext).orElse(null); + Hierarchy refreshedHierarchy = this.hierarchyCreationService.refresh(this.editingContext, this.hierarchyContext).orElse(null); + this.representationPersistenceService.save(changeDescription.getInput(), this.editingContext, refreshedHierarchy); this.logger.trace("Hierarchy refreshed: {}", refreshedHierarchy.getId()); @@ -119,12 +126,10 @@ private boolean shouldRefresh(ChangeDescription changeDescription) { @Override public Flux getOutputEvents(IInput input) { - // @formatter:off return Flux.merge( this.hierarchyEventFlux.getFlux(input), this.subscriptionManager.getFlux(input) ); - // @formatter:on } @Override diff --git a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessorFactory.java b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessorFactory.java index a07051885d..4a5af22022 100644 --- a/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessorFactory.java +++ b/packages/charts/backend/sirius-components-collaborative-charts/src/main/java/org/eclipse/sirius/components/collaborative/charts/HierarchyEventProcessorFactory.java @@ -19,6 +19,7 @@ import org.eclipse.sirius.components.charts.hierarchy.Hierarchy; import org.eclipse.sirius.components.collaborative.api.IRepresentationEventProcessor; import org.eclipse.sirius.components.collaborative.api.IRepresentationEventProcessorFactory; +import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationSearchService; import org.eclipse.sirius.components.collaborative.api.ISubscriptionManagerFactory; import org.eclipse.sirius.components.core.api.IEditingContext; @@ -33,14 +34,17 @@ @Service public class HierarchyEventProcessorFactory implements IRepresentationEventProcessorFactory { + private final IRepresentationPersistenceService representationPersistenceService; + private final IRepresentationSearchService representationSearchService; private final HierarchyCreationService hierarchyCreationService; private final ISubscriptionManagerFactory subscriptionManagerFactory; - public HierarchyEventProcessorFactory(IRepresentationSearchService representationSearchService, HierarchyCreationService hierarchyCreationService, + public HierarchyEventProcessorFactory(IRepresentationPersistenceService representationPersistenceService, IRepresentationSearchService representationSearchService, HierarchyCreationService hierarchyCreationService, ISubscriptionManagerFactory subscriptionManagerFactory) { + this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.representationSearchService = Objects.requireNonNull(representationSearchService); this.hierarchyCreationService = Objects.requireNonNull(hierarchyCreationService); this.subscriptionManagerFactory = Objects.requireNonNull(subscriptionManagerFactory); @@ -63,7 +67,7 @@ public Optional createRepresentationEventProcesso HierarchyContext hierarchyContext = new HierarchyContext(hierarchy); IRepresentationEventProcessor hierarchyEventProcessor = new HierarchyEventProcessor(editingContext, hierarchyContext, - this.subscriptionManagerFactory.create(), this.hierarchyCreationService, this.representationSearchService); + this.subscriptionManagerFactory.create(), this.hierarchyCreationService, this.representationPersistenceService, this.representationSearchService); return Optional.of(hierarchyEventProcessor); } diff --git a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/diagrams/TestDiagramBuilder.java b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/diagrams/TestDiagramBuilder.java index b41873dad4..0738346b9e 100644 --- a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/diagrams/TestDiagramBuilder.java +++ b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/diagrams/TestDiagramBuilder.java @@ -50,7 +50,6 @@ public class TestDiagramBuilder { public Diagram getDiagram(String id) { return Diagram.newDiagram(id) - .label("diagramLabel") .descriptionId(UUID.randomUUID().toString()) .targetObjectId("diagramTargetObjectId") .nodes(List.of()) diff --git a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/CreateViewOperationHandlerTests.java b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/CreateViewOperationHandlerTests.java index 49118fdb3e..0917cf031c 100644 --- a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/CreateViewOperationHandlerTests.java +++ b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/CreateViewOperationHandlerTests.java @@ -92,7 +92,6 @@ public void initialize() { Diagram diagram = Diagram.newDiagram(UUID.randomUUID().toString()) .descriptionId(diagramDescription.getId()) .targetObjectId(UUID.randomUUID().toString()) - .label("DiagramTest") .nodes(new ArrayList<>()) .edges(List.of()) .build(); diff --git a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/DeleteViewOperationHandlerTests.java b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/DeleteViewOperationHandlerTests.java index eb4b613891..b46e3df908 100644 --- a/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/DeleteViewOperationHandlerTests.java +++ b/packages/compatibility/backend/sirius-components-compatibility-emf/src/test/java/org/eclipse/sirius/components/compatibility/emf/compatibility/operations/DeleteViewOperationHandlerTests.java @@ -127,7 +127,6 @@ public void initialize() { Diagram diagram = Diagram.newDiagram(UUID.randomUUID().toString()) .descriptionId(diagramDescription.getId()) .targetObjectId(UUID.randomUUID().toString()) - .label("DiagramTest") .nodes(List.of(node)) .edges(List.of()) .build(); diff --git a/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationMetadataPersistenceService.java b/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationMetadataPersistenceService.java new file mode 100644 index 0000000000..d5b6800154 --- /dev/null +++ b/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationMetadataPersistenceService.java @@ -0,0 +1,41 @@ +/******************************************************************************* + * Copyright (c) 2024 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 + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.components.collaborative.api; + +import org.eclipse.sirius.components.core.RepresentationMetadata; +import org.eclipse.sirius.components.core.api.IEditingContext; +import org.eclipse.sirius.components.events.ICause; + +/** + * Used to persist representation metadata. + * + * @author gcoutable + */ +public interface IRepresentationMetadataPersistenceService { + + void save(ICause cause, IEditingContext editingContext, RepresentationMetadata representationMetadata, String targetObjectId); + + /** + * Empty implementation, used for mocks in unit tests. + * + * @author pcdavid + */ + class NoOp implements IRepresentationMetadataPersistenceService { + + @Override + public void save(ICause cause, IEditingContext editingContext, RepresentationMetadata representationMetadata, String targetObjectId) { + // Do nothing + } + + } +} diff --git a/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationPersistenceService.java b/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationPersistenceService.java index 329d14f4c9..01463a66e1 100644 --- a/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationPersistenceService.java +++ b/packages/core/backend/sirius-components-collaborative/src/main/java/org/eclipse/sirius/components/collaborative/api/IRepresentationPersistenceService.java @@ -13,8 +13,8 @@ package org.eclipse.sirius.components.collaborative.api; import org.eclipse.sirius.components.core.api.IEditingContext; -import org.eclipse.sirius.components.representations.IRepresentation; import org.eclipse.sirius.components.events.ICause; +import org.eclipse.sirius.components.representations.IRepresentation; /** * Used to persist the representations. diff --git a/packages/core/backend/sirius-components-core/src/main/java/org/eclipse/sirius/components/core/api/IRepresentationMetadataProvider.java b/packages/core/backend/sirius-components-core/src/main/java/org/eclipse/sirius/components/core/api/IRepresentationMetadataProvider.java index 004ca5d91c..cc60f581d9 100644 --- a/packages/core/backend/sirius-components-core/src/main/java/org/eclipse/sirius/components/core/api/IRepresentationMetadataProvider.java +++ b/packages/core/backend/sirius-components-core/src/main/java/org/eclipse/sirius/components/core/api/IRepresentationMetadataProvider.java @@ -24,4 +24,17 @@ */ public interface IRepresentationMetadataProvider { Optional getMetadata(String representationId); + + /** + * Empty implementation, used for mocks in unit tests. + * + * @author gcoutable + */ + class NoOp implements IRepresentationMetadataProvider { + + @Override + public Optional getMetadata(String representationId) { + return Optional.empty(); + } + } } diff --git a/packages/core/backend/sirius-components-representations/src/main/java/org/eclipse/sirius/components/representations/IRepresentation.java b/packages/core/backend/sirius-components-representations/src/main/java/org/eclipse/sirius/components/representations/IRepresentation.java index 5f83f545d0..b9e9b2280d 100644 --- a/packages/core/backend/sirius-components-representations/src/main/java/org/eclipse/sirius/components/representations/IRepresentation.java +++ b/packages/core/backend/sirius-components-representations/src/main/java/org/eclipse/sirius/components/representations/IRepresentation.java @@ -24,8 +24,6 @@ public interface IRepresentation { String getDescriptionId(); - String getLabel(); - String getKind(); String getTargetObjectId(); @@ -46,11 +44,6 @@ public String getDescriptionId() { return ""; } - @Override - public String getLabel() { - return ""; - } - @Override public String getKind() { return ""; diff --git a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/api/IDeckCreationService.java b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/api/IDeckCreationService.java index 97a4daaf60..5579a1cb3f 100644 --- a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/api/IDeckCreationService.java +++ b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/api/IDeckCreationService.java @@ -28,8 +28,6 @@ public interface IDeckCreationService { /** * Creates a new deck representation using the given parameters. * - * @param label - * The label of the deck representation * @param targetObject * The object used as the target * @param deckDescription @@ -38,7 +36,7 @@ public interface IDeckCreationService { * The editing context * @return A new deck representation */ - Deck create(String label, Object targetObject, DeckDescription deckDescription, IEditingContext editingContext); + Deck create(Object targetObject, DeckDescription deckDescription, IEditingContext editingContext); /** * Refresh an existing deck. @@ -65,7 +63,7 @@ public interface IDeckCreationService { class NoOp implements IDeckCreationService { @Override - public Deck create(String label, Object targetObject, DeckDescription deckDescription, IEditingContext editingContext) { + public Deck create(Object targetObject, DeckDescription deckDescription, IEditingContext editingContext) { return null; } diff --git a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/CreateDeckEventHandler.java b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/CreateDeckEventHandler.java index f9f3c4459e..624653f63c 100644 --- a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/CreateDeckEventHandler.java +++ b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/CreateDeckEventHandler.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.deck.api.IDeckCreationService; @@ -33,6 +34,7 @@ import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; import org.eclipse.sirius.components.deck.Deck; import org.eclipse.sirius.components.deck.description.DeckDescription; +import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; import io.micrometer.core.instrument.Counter; @@ -50,6 +52,8 @@ public class CreateDeckEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IDeckCreationService deckCreationService; @@ -60,9 +64,10 @@ public class CreateDeckEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreateDeckEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreateDeckEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IDeckCreationService diagramCreationService, IObjectService objectService, ICollaborativeMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.deckCreationService = Objects.requireNonNull(diagramCreationService); this.objectService = Objects.requireNonNull(objectService); @@ -101,11 +106,16 @@ public void handle(One payloadSink, Many changeDesc DeckDescription deckDescription = optionalDeckDescription.get(); Object object = optionalObject.get(); - Deck deckDiagram = this.deckCreationService.create(createRepresentationInput.representationName(), object, deckDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(DeckDescription.LABEL, createRepresentationInput.representationName()); + String label = deckDescription.labelProvider().apply(variableManager); + Deck deckDiagram = this.deckCreationService.create(object, deckDescription, editingContext); + var representationMetadata = new RepresentationMetadata(deckDiagram.id(), deckDiagram.getKind(), label, deckDiagram.descriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, deckDiagram.getTargetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, deckDiagram); - var representationMetadata = new RepresentationMetadata(deckDiagram.id(), deckDiagram.getKind(), deckDiagram.label(), deckDiagram.descriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/RenameDeckEventHandler.java b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/RenameDeckEventHandler.java index ea8c0d8f13..7b2a1cfda6 100644 --- a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/RenameDeckEventHandler.java +++ b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/handlers/RenameDeckEventHandler.java @@ -83,7 +83,7 @@ public void handle(One payloadSink, Many changeDesc Optional optionalDiagram = this.representationSearchService.findById(editingContext, representationId, Deck.class); if (optionalDiagram.isPresent()) { Deck currentDeck = optionalDiagram.get(); - Deck renamedDeck = new Deck(representationId, currentDeck.descriptionId(), currentDeck.targetObjectId(), newLabel, currentDeck.style(), currentDeck.lanes()); + Deck renamedDeck = new Deck(representationId, currentDeck.descriptionId(), currentDeck.targetObjectId(), currentDeck.style(), currentDeck.lanes()); this.representationPersistenceService.save(renameDeckInput, editingContext, renamedDeck); payload = new RenameRepresentationSuccessPayload(deckInput.id(), renamedDeck); diff --git a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/service/DeckCreationService.java b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/service/DeckCreationService.java index 00e0a94d02..d36521a664 100644 --- a/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/service/DeckCreationService.java +++ b/packages/deck/backend/sirius-components-collaborative-deck/src/main/java/org/eclipse/sirius/components/collaborative/deck/service/DeckCreationService.java @@ -58,8 +58,8 @@ public DeckCreationService(IRepresentationDescriptionSearchService representatio } @Override - public Deck create(String label, Object targetObject, DeckDescription deckDescription, IEditingContext editingContext) { - return this.doRender(label, targetObject, editingContext, deckDescription, Optional.empty()); + public Deck create(Object targetObject, DeckDescription deckDescription, IEditingContext editingContext) { + return this.doRender(targetObject, editingContext, deckDescription, Optional.empty()); } @Override @@ -73,17 +73,16 @@ public Optional refresh(IEditingContext editingContext, IDeckContext deckC if (optionalObject.isPresent() && optionalDeckDescription.isPresent()) { Object object = optionalObject.get(); DeckDescription deckDescription = optionalDeckDescription.get(); - Deck deck = this.doRender(previousDeck.getLabel(), object, editingContext, deckDescription, Optional.of(deckContext)); + Deck deck = this.doRender(object, editingContext, deckDescription, Optional.of(deckContext)); return Optional.of(deck); } return Optional.empty(); } - private Deck doRender(String label, Object targetObject, IEditingContext editingContext, DeckDescription deckDescription, Optional optionalDeckContext) { + private Deck doRender(Object targetObject, IEditingContext editingContext, DeckDescription deckDescription, Optional optionalDeckContext) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); - variableManager.put(DeckDescription.LABEL, label); variableManager.put(VariableManager.SELF, targetObject); variableManager.put(DeckDescription.DECK_TARGET, targetObject); variableManager.put(IEditingContext.EDITING_CONTEXT, editingContext); diff --git a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/Deck.java b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/Deck.java index fe0d4270bb..6e8636d482 100644 --- a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/Deck.java +++ b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/Deck.java @@ -22,7 +22,7 @@ * * @author fbarbin */ -public record Deck(String id, String descriptionId, String targetObjectId, String label, DeckStyle style, List lanes) implements IRepresentation { +public record Deck(String id, String descriptionId, String targetObjectId, DeckStyle style, List lanes) implements IRepresentation { public static final String KIND = IRepresentation.KIND_PREFIX + "?type=Deck"; @@ -30,7 +30,6 @@ public record Deck(String id, String descriptionId, String targetObjectId, Strin Objects.requireNonNull(id); Objects.requireNonNull(targetObjectId); Objects.requireNonNull(descriptionId); - Objects.requireNonNull(label); Objects.requireNonNull(lanes); } @@ -49,11 +48,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return KIND; diff --git a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/DeckElementFactory.java b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/DeckElementFactory.java index ed791143e0..9a0fdeb25b 100644 --- a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/DeckElementFactory.java +++ b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/DeckElementFactory.java @@ -52,7 +52,7 @@ private Deck instantiateDeck(DeckElementProps props, List children) { .filter(Lane.class::isInstance)// .map(Lane.class::cast)// .toList(); - return new Deck(props.id(), props.descriptionId(), props.targetObjectId(), props.label(), props.style(), lanes); + return new Deck(props.id(), props.descriptionId(), props.targetObjectId(), props.style(), lanes); } private Lane instantiateLane(LaneElementProps props, List children) { diff --git a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/component/DeckComponent.java b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/component/DeckComponent.java index 68f10892b1..71782bf61f 100644 --- a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/component/DeckComponent.java +++ b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/component/DeckComponent.java @@ -49,7 +49,6 @@ public Element render() { List previousLanes = optionalPreviousDeck.map(Deck::lanes).orElse(List.of()); String deckId = optionalPreviousDeck.map(Deck::getId).orElseGet(() -> UUID.randomUUID().toString()); String targetObjectId = deckDescription.targetObjectIdProvider().apply(variableManager); - String label = optionalPreviousDeck.map(Deck::getLabel).orElseGet(() -> deckDescription.labelProvider().apply(variableManager)); DeckStyle deckStyle = deckDescription.deckStyleProvider().apply(variableManager); List children = deckDescription.laneDescriptions()// @@ -60,7 +59,7 @@ public Element render() { })// .toList(); - DeckElementProps deckElementProps = new DeckElementProps(deckId, deckDescription.getId(), targetObjectId, label, deckStyle, children); + DeckElementProps deckElementProps = new DeckElementProps(deckId, deckDescription.getId(), targetObjectId, deckStyle, children); return new Element(DeckElementProps.TYPE, deckElementProps); } diff --git a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/elements/DeckElementProps.java b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/elements/DeckElementProps.java index 8f8c1266ad..0a4a851f27 100644 --- a/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/elements/DeckElementProps.java +++ b/packages/deck/backend/sirius-components-deck/src/main/java/org/eclipse/sirius/components/deck/renderer/elements/DeckElementProps.java @@ -24,7 +24,7 @@ * * @author fbarbin */ -public record DeckElementProps(String id, String descriptionId, String targetObjectId, String label, DeckStyle style, List children) implements IProps { +public record DeckElementProps(String id, String descriptionId, String targetObjectId, DeckStyle style, List children) implements IProps { public static final String TYPE = "Deck"; @@ -32,7 +32,6 @@ public record DeckElementProps(String id, String descriptionId, String targetObj Objects.requireNonNull(id); Objects.requireNonNull(descriptionId); Objects.requireNonNull(targetObjectId); - Objects.requireNonNull(label); Objects.requireNonNull(children); } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramCreationService.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramCreationService.java index 134e8570ab..f7488559e7 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramCreationService.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramCreationService.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2024 Obeo and others. + * Copyright (c) 2019, 2024 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 @@ -69,25 +69,21 @@ public DiagramCreationService(IRepresentationDescriptionSearchService representa this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); this.objectService = Objects.requireNonNull(objectService); this.operationValidator = Objects.requireNonNull(operationValidator); - // @formatter:off this.timer = Timer.builder(Monitoring.REPRESENTATION_EVENT_PROCESSOR_REFRESH) .tag(Monitoring.NAME, "diagram") .register(meterRegistry); - // @formatter:on } @Override - public Diagram create(String label, Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { - // @formatter:off + public Diagram create(Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { var allDiagramDescriptions = this.representationDescriptionSearchService.findAll(editingContext) .values() .stream() .filter(DiagramDescription.class::isInstance) .map(DiagramDescription.class::cast) .toList(); - // @formatter:on - return this.doRender(label, targetObject, editingContext, diagramDescription, allDiagramDescriptions, Optional.empty()); + return this.doRender(targetObject, editingContext, diagramDescription, allDiagramDescriptions, Optional.empty()); } @Override @@ -95,7 +91,6 @@ public Optional refresh(IEditingContext editingContext, IDiagramContext Diagram previousDiagram = diagramContext.getDiagram(); var optionalObject = this.objectService.getObject(editingContext, previousDiagram.getTargetObjectId()); - // @formatter:off var optionalDiagramDescription = this.representationDescriptionSearchService.findById(editingContext, previousDiagram.getDescriptionId()) .filter(DiagramDescription.class::isInstance) .map(DiagramDescription.class::cast); @@ -106,22 +101,20 @@ public Optional refresh(IEditingContext editingContext, IDiagramContext .filter(DiagramDescription.class::isInstance) .map(DiagramDescription.class::cast) .toList(); - // @formatter:on if (optionalObject.isPresent() && optionalDiagramDescription.isPresent()) { Object object = optionalObject.get(); DiagramDescription diagramDescription = optionalDiagramDescription.get(); - Diagram diagram = this.doRender(previousDiagram.getLabel(), object, editingContext, diagramDescription, allDiagramDescriptions, Optional.of(diagramContext)); + Diagram diagram = this.doRender(object, editingContext, diagramDescription, allDiagramDescriptions, Optional.of(diagramContext)); return Optional.of(diagram); } return Optional.empty(); } - private Diagram doRender(String label, Object targetObject, IEditingContext editingContext, DiagramDescription diagramDescription, List allDiagramDescriptions, Optional optionalDiagramContext) { + private Diagram doRender(Object targetObject, IEditingContext editingContext, DiagramDescription diagramDescription, List allDiagramDescriptions, Optional optionalDiagramContext) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); - variableManager.put(DiagramDescription.LABEL, label); variableManager.put(VariableManager.SELF, targetObject); variableManager.put(IEditingContext.EDITING_CONTEXT, editingContext); variableManager.put(Environment.ENVIRONMENT, new Environment(Environment.SIRIUS_COMPONENTS)); @@ -133,7 +126,6 @@ private Diagram doRender(String label, Object targetObject, IEditingContext edit List viewCreationRequests = optionalDiagramContext.map(IDiagramContext::getViewCreationRequests).orElse(List.of()); List viewDeletionRequests = optionalDiagramContext.map(IDiagramContext::getViewDeletionRequests).orElse(List.of()); - //@formatter:off Builder builder = DiagramComponentProps.newDiagramComponentProps() .variableManager(variableManager) .diagramDescription(diagramDescription) @@ -143,7 +135,6 @@ private Diagram doRender(String label, Object targetObject, IEditingContext edit .viewDeletionRequests(viewDeletionRequests) .previousDiagram(optionalPreviousDiagram) .diagramEvents(diagramEvents); - //@formatter:on DiagramComponentProps props = builder.build(); Element element = new Element(DiagramComponent.class, props); diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessor.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessor.java index fc029ad465..13783925dc 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessor.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessor.java @@ -110,7 +110,7 @@ public DiagramEventProcessor(DiagramEventProcessorParameters parameters) { // We automatically refresh the representation before using it since things may have changed since the moment it // has been saved in the database. This is quite similar to the auto-refresh on loading in Sirius. Diagram diagram = this.diagramCreationService.refresh(this.editingContext, this.diagramContext).orElse(null); - this.representationPersistenceService.save(null, parameters.editingContext(), diagram); + this.representationPersistenceService.save(null, this.editingContext, diagram); this.diagramContext.update(diagram); this.diagramEventFlux = new DiagramEventFlux(diagram); @@ -226,17 +226,13 @@ private ReferencePosition getReferencePosition(IInput diagramInput) { */ public boolean shouldRefresh(ChangeDescription changeDescription) { Diagram diagram = this.diagramContext.getDiagram(); - // @formatter:off var optionalDiagramDescription = this.representationDescriptionSearchService.findById(this.editingContext, diagram.getDescriptionId()) .filter(DiagramDescription.class::isInstance) .map(DiagramDescription.class::cast); - // @formatter:on - // @formatter:off return optionalDiagramDescription.flatMap(this.representationRefreshPolicyRegistry::getRepresentationRefreshPolicy) .orElseGet(this::getDefaultRefreshPolicy) .shouldRefresh(changeDescription); - // @formatter:on } private IRepresentationRefreshPolicy getDefaultRefreshPolicy() { @@ -254,7 +250,6 @@ private IRepresentationRefreshPolicy getDefaultRefreshPolicy() { @Override public Flux getOutputEvents(IInput input) { - // @formatter:off return Flux.merge( this.diagramEventFlux.getFlux(this.currentRevisionId, this.currentRevisionCause), this.subscriptionManager.getFlux(input) diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramCreationService.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramCreationService.java index b7a2eea722..6434b5d629 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramCreationService.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramCreationService.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2021 Obeo. + * Copyright (c) 2019, 2024 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 @@ -28,8 +28,6 @@ public interface IDiagramCreationService { /** * Creates a new diagram using the given parameters. * - * @param label - * The label of the diagram * @param targetObject * The object used as the target * @param diagramDescription @@ -38,7 +36,7 @@ public interface IDiagramCreationService { * The editing context * @return A new diagram properly layouted and saved in the data store */ - Diagram create(String label, Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext); + Diagram create(Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext); /** * Refresh an existing diagram. @@ -65,7 +63,7 @@ public interface IDiagramCreationService { class NoOp implements IDiagramCreationService { @Override - public Diagram create(String label, Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { + public Diagram create(Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { return null; } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramEventProcessor.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramEventProcessor.java index 6f7d680b90..f922dd2a7b 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramEventProcessor.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/api/IDiagramEventProcessor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2021 Obeo. + * Copyright (c) 2019, 2024 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 @@ -21,13 +21,4 @@ */ public interface IDiagramEventProcessor extends IRepresentationEventProcessor { - /** - * Implementation which does nothing, used for mocks in unit tests. - * - * @author sbegaudeau - */ - class NoOp extends IRepresentationEventProcessor.NoOp implements IDiagramEventProcessor { - - } - } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandler.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandler.java index 2daa6b32da..09bd416b1c 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandler.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandler.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; @@ -33,6 +34,7 @@ import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; import org.eclipse.sirius.components.diagrams.Diagram; import org.eclipse.sirius.components.diagrams.description.DiagramDescription; +import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; import io.micrometer.core.instrument.Counter; @@ -51,6 +53,8 @@ public class CreateDiagramEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IDiagramCreationService diagramCreationService; @@ -61,9 +65,10 @@ public class CreateDiagramEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreateDiagramEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreateDiagramEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IDiagramCreationService diagramCreationService, IObjectService objectService, ICollaborativeDiagramMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.diagramCreationService = Objects.requireNonNull(diagramCreationService); this.objectService = Objects.requireNonNull(objectService); @@ -93,22 +98,25 @@ public void handle(One payloadSink, Many changeDesc ChangeDescription changeDescription = new ChangeDescription(ChangeKind.NOTHING, editingContext.getId(), input); if (input instanceof CreateRepresentationInput createRepresentationInput) { - // @formatter:off Optional optionalDiagramDescription = this.representationDescriptionSearchService.findById(editingContext, createRepresentationInput.representationDescriptionId()) .filter(DiagramDescription.class::isInstance) .map(DiagramDescription.class::cast); - // @formatter:on Optional optionalObject = this.objectService.getObject(editingContext, createRepresentationInput.objectId()); if (optionalDiagramDescription.isPresent() && optionalObject.isPresent()) { DiagramDescription diagramDescription = optionalDiagramDescription.get(); Object object = optionalObject.get(); - Diagram diagram = this.diagramCreationService.create(createRepresentationInput.representationName(), object, diagramDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(DiagramDescription.LABEL, createRepresentationInput.representationName()); + String label = diagramDescription.getLabelProvider().apply(variableManager); + Diagram diagram = this.diagramCreationService.create(object, diagramDescription, editingContext); + var representationMetadata = new RepresentationMetadata(diagram.getId(), diagram.getKind(), label, diagram.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, diagram.getTargetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, diagram); - var representationMetadata = new RepresentationMetadata(diagram.getId(), diagram.getKind(), diagram.getLabel(), diagram.getDescriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandler.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandler.java index b1c1966631..ff0fff1a8d 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandler.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/main/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandler.java @@ -59,11 +59,9 @@ public RenameDiagramEventHandler(IRepresentationSearchService representationSear this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.messageService = Objects.requireNonNull(messageService); - // @formatter:off this.counter = Counter.builder(Monitoring.EVENT_HANDLER) .tag(Monitoring.NAME, this.getClass().getSimpleName()) .register(meterRegistry); - // @formatter:on } @Override @@ -87,7 +85,7 @@ public void handle(One payloadSink, Many changeDesc if (optionalDiagram.isPresent()) { Diagram diagram = optionalDiagram.get(); - Diagram renamedDiagram = Diagram.newDiagram(diagram).label(newLabel).build(); + Diagram renamedDiagram = Diagram.newDiagram(diagram).build(); this.representationPersistenceService.save(renameRepresentationInput, editingContext, renamedDiagram); diagramContext.update(renamedDiagram); diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessorTests.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessorTests.java index 442c1d351a..4c47befdfe 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessorTests.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/DiagramEventProcessorTests.java @@ -25,12 +25,15 @@ import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; import org.eclipse.sirius.components.collaborative.diagrams.dto.DiagramEventInput; import org.eclipse.sirius.components.collaborative.diagrams.dto.DiagramRefreshedEventPayload; +import org.eclipse.sirius.components.collaborative.diagrams.handlers.TestDiagramBuilder; import org.eclipse.sirius.components.collaborative.representations.SubscriptionManager; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IInput; import org.eclipse.sirius.components.core.api.IPayload; import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; import org.eclipse.sirius.components.diagrams.Diagram; +import org.eclipse.sirius.components.diagrams.InsideLabel; +import org.eclipse.sirius.components.diagrams.Node; import org.junit.jupiter.api.Test; import reactor.test.StepVerifier; @@ -46,11 +49,12 @@ public class DiagramEventProcessorTests { private static final String DIAGRAM_DESCRIPTION_ID = UUID.randomUUID().toString(); + private static final Node INITIAL_TEST_NODE = getInitialTestNode(); + private static final Diagram INITIAL_TEST_DIAGRAM = Diagram.newDiagram(DIAGRAM_ID) .descriptionId(DIAGRAM_DESCRIPTION_ID) - .label(String.valueOf(0)) .targetObjectId("targetObjectId") - .nodes(List.of()) + .nodes(List.of(INITIAL_TEST_NODE)) .edges(List.of()) .build(); @@ -63,10 +67,20 @@ public Diagram getDiagram() { } }; + private static Node getInitialTestNode() { + var initNode = new TestDiagramBuilder().getNode(UUID.randomUUID().toString(), true); + var insideLabel = InsideLabel.newInsideLabel(initNode.getInsideLabel()) + .text(String.valueOf(0)) + .build(); + return Node.newNode(initNode) + .insideLabel(insideLabel) + .build(); + } + private Predicate getRefreshDiagramEventPayloadPredicate(int count) { return representationEventPayload -> { if (representationEventPayload instanceof DiagramRefreshedEventPayload payload) { - return payload.diagram() != null && payload.diagram().getLabel().equals(String.valueOf(count)); + return payload.diagram() != null && payload.diagram().getNodes().get(0).getInsideLabel().getText().equals(String.valueOf(count)); } return false; }; diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/MockDiagramCreationService.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/MockDiagramCreationService.java index df3d2f7fc0..ec736cde34 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/MockDiagramCreationService.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/MockDiagramCreationService.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 Obeo. + * Copyright (c) 2022, 2024 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 @@ -12,6 +12,7 @@ *******************************************************************************/ package org.eclipse.sirius.components.collaborative.diagrams; +import java.util.List; import java.util.Objects; import java.util.Optional; @@ -19,6 +20,8 @@ import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.diagrams.Diagram; +import org.eclipse.sirius.components.diagrams.InsideLabel; +import org.eclipse.sirius.components.diagrams.Node; import org.eclipse.sirius.components.diagrams.description.DiagramDescription; /** @@ -37,7 +40,7 @@ public MockDiagramCreationService(Diagram diagram) { } @Override - public Diagram create(String label, Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { + public Diagram create(Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { return this.diagram; } @@ -45,11 +48,15 @@ public Diagram create(String label, Object targetObject, DiagramDescription diag public Optional refresh(IEditingContext editingContext, IDiagramContext diagramContext) { this.count = this.count + 1; - // @formatter:off + var node = this.diagram.getNodes().get(0); + var insideLabel = InsideLabel.newInsideLabel(node.getInsideLabel()) + .text(String.valueOf(this.count)) + .build(); + + this.diagram = Diagram.newDiagram(this.diagram) - .label(String.valueOf(this.count)) + .nodes(List.of(Node.newNode(node).insideLabel(insideLabel).build())) .build(); - // @formatter:on return Optional.of(this.diagram); } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandlerTests.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandlerTests.java index 4689ab3e47..6f2c02ab3a 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandlerTests.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/CreateDiagramEventHandlerTests.java @@ -22,6 +22,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; import org.eclipse.sirius.components.collaborative.diagrams.messages.ICollaborativeDiagramMessageService; @@ -54,7 +55,6 @@ public void testDiagramCreation() { IRepresentationDescriptionSearchService representationDescriptionSearchService = new IRepresentationDescriptionSearchService.NoOp() { @Override public Optional findById(IEditingContext editingContext, String id) { - // @formatter:off DiagramDescription diagramDescription = DiagramDescription.newDiagramDescription(UUID.randomUUID().toString()) .label("label") .canCreatePredicate(variableManager -> Boolean.TRUE) @@ -65,7 +65,6 @@ public Optional findById(IEditingContext editingCont .targetObjectIdProvider(variableManager -> "targetObjectId") .dropHandler(variableManager -> new Failure("")) .build(); - // @formatter:on return Optional.of(diagramDescription); } @@ -74,7 +73,7 @@ public Optional findById(IEditingContext editingCont AtomicBoolean hasBeenCalled = new AtomicBoolean(); IDiagramCreationService diagramCreationService = new IDiagramCreationService.NoOp() { @Override - public Diagram create(String label, Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { + public Diagram create(Object targetObject, DiagramDescription diagramDescription, IEditingContext editingContext) { hasBeenCalled.set(true); return new TestDiagramBuilder().getDiagram(UUID.randomUUID().toString()); } @@ -88,7 +87,7 @@ public Optional getObject(IEditingContext editingContext, String objectI } }; - CreateDiagramEventHandler handler = new CreateDiagramEventHandler(representationDescriptionSearchService, new IRepresentationPersistenceService.NoOp(), diagramCreationService, objectService, + CreateDiagramEventHandler handler = new CreateDiagramEventHandler(representationDescriptionSearchService, new IRepresentationMetadataPersistenceService.NoOp(), new IRepresentationPersistenceService.NoOp(), diagramCreationService, objectService, new ICollaborativeDiagramMessageService.NoOp(), new SimpleMeterRegistry()); var input = new CreateRepresentationInput(UUID.randomUUID(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), "objectId", "representationName"); diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetConnectorToolsEventHandlerTests.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetConnectorToolsEventHandlerTests.java index a16da59e9b..17a349c544 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetConnectorToolsEventHandlerTests.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetConnectorToolsEventHandlerTests.java @@ -225,7 +225,6 @@ public boolean canHandle(DiagramDescription diagramDescription) { private Diagram getDiagram(String id, List nodes) { return Diagram.newDiagram(id) - .label(DIAGRAM_LABEL) .descriptionId(DIAGRAM_DESCRIPTION_ID.toString()) .targetObjectId("diagramTargetObjectId") .nodes(nodes) diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetNodeDescriptionsEventHandlerTests.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetNodeDescriptionsEventHandlerTests.java index 5f2fd6a195..bb7aa0db9b 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetNodeDescriptionsEventHandlerTests.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/GetNodeDescriptionsEventHandlerTests.java @@ -106,7 +106,6 @@ public Diagram getDiagram() { return Diagram.newDiagram(UUID.randomUUID().toString()) .descriptionId(DIAGRAM_DESCRIPTION_ID) .edges(List.of()) - .label("") .layoutData(new DiagramLayoutData(Map.of(), Map.of(), Map.of())) .nodes(List.of()) .targetObjectId("") diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandlerTests.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandlerTests.java index 79bd9e55ab..c1f22113e7 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandlerTests.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/RenameDiagramEventHandlerTests.java @@ -58,7 +58,6 @@ public void testRenameRepresentation() { DiagramDescription diagramDescription = new TestDiagramDescriptionBuilder().getDiagramDescription(UUID.randomUUID().toString(), List.of(), List.of(), List.of()); Diagram diagram = Diagram.newDiagram(representationId) - .label(OLD_LABEL) .descriptionId(diagramDescription.getId()) .targetObjectId(targetObjectId.toString()) .nodes(Collections.emptyList()) @@ -94,6 +93,5 @@ public boolean existByIdAndKind(String representationId, List kinds) { IPayload payload = payloadSink.asMono().block(); assertThat(payload).isInstanceOf(RenameRepresentationSuccessPayload.class); - assertThat(((RenameRepresentationSuccessPayload) payload).representation().getLabel()).isEqualTo(NEW_LABEL); } } diff --git a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/TestDiagramBuilder.java b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/TestDiagramBuilder.java index 8e1939a6d5..a6edd81fcd 100644 --- a/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/TestDiagramBuilder.java +++ b/packages/diagrams/backend/sirius-components-collaborative-diagrams/src/test/java/org/eclipse/sirius/components/collaborative/diagrams/handlers/TestDiagramBuilder.java @@ -53,7 +53,6 @@ public class TestDiagramBuilder { public Diagram getDiagram(String id) { return Diagram.newDiagram(id) - .label("diagramLabel") .descriptionId(UUID.randomUUID().toString()) .targetObjectId("diagramTargetObjectId") .nodes(List.of()) diff --git a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/DiagramAssert.java b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/DiagramAssert.java index 5af7581367..85ac77774d 100644 --- a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/DiagramAssert.java +++ b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/DiagramAssert.java @@ -100,7 +100,6 @@ public DiagramAssert matches(Diagram diagram, IdPolicy idPolicy, LayoutPolicy la assertThat(this.actual.getTargetObjectId()).isEqualTo(diagram.getTargetObjectId()); assertThat(this.actual.getDescriptionId()).isEqualTo(diagram.getDescriptionId()); - assertThat(this.actual.getLabel()).isEqualTo(diagram.getLabel()); } else { this.isNull(); diff --git a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/assertions/DiagramAssert.java b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/assertions/DiagramAssert.java index 43fc77885f..b733fab58a 100644 --- a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/assertions/DiagramAssert.java +++ b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/assertions/DiagramAssert.java @@ -48,8 +48,4 @@ public DiagramAssert hasDescriptionId(String descriptionId) { return this; } - public DiagramAssert hasLabel(String label) { - assertThat(this.actual.getLabel()).isEqualTo(label); - return this; - } } diff --git a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/builder/TestLayoutDiagramBuilder.java b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/builder/TestLayoutDiagramBuilder.java index 09c2f5baab..12b2eb777f 100644 --- a/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/builder/TestLayoutDiagramBuilder.java +++ b/packages/diagrams/backend/sirius-components-diagrams-tests/src/main/java/org/eclipse/sirius/components/diagrams/tests/builder/TestLayoutDiagramBuilder.java @@ -78,7 +78,6 @@ public Diagram build() { return Diagram.newDiagram(Objects.requireNonNull(this.diagramId)) .nodes(nodes) .edges(edges) - .label(Objects.requireNonNull(this.targetObjectId)) .descriptionId(DIAGRAM_DESCRIPTION_ID) .targetObjectId(this.targetObjectId) .build(); diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java index 94337df5ba..71fc7f8744 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/Diagram.java @@ -38,8 +38,6 @@ public final class Diagram implements IRepresentation { private String descriptionId; - private String label; - private List nodes; private List edges; @@ -70,11 +68,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - public List getNodes() { return this.nodes; } @@ -97,8 +90,8 @@ public static Builder newDiagram(Diagram diagram) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3}, label: {4}, nodeCount: {5}, edgeCount: {6}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId, this.label, this.nodes.size(), this.edges.size()); + String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3}, nodeCount: {4}, edgeCount: {5}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId, this.nodes.size(), this.edges.size()); } /** @@ -116,8 +109,6 @@ public static final class Builder { private String descriptionId; - private String label; - private List nodes; private List edges; @@ -132,7 +123,6 @@ private Builder(Diagram diagram) { this.id = diagram.getId(); this.targetObjectId = diagram.getTargetObjectId(); this.descriptionId = diagram.getDescriptionId(); - this.label = diagram.getLabel(); this.nodes = diagram.getNodes(); this.edges = diagram.getEdges(); this.layoutData = diagram.getLayoutData(); @@ -148,11 +138,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder nodes(List nodes) { this.nodes = Objects.requireNonNull(nodes); return this; @@ -174,7 +159,6 @@ public Diagram build() { diagram.kind = Objects.requireNonNull(this.kind); diagram.targetObjectId = Objects.requireNonNull(this.targetObjectId); diagram.descriptionId = Objects.requireNonNull(this.descriptionId); - diagram.label = Objects.requireNonNull(this.label); diagram.nodes = Objects.requireNonNull(this.nodes); diagram.edges = Objects.requireNonNull(this.edges); diagram.layoutData = Objects.requireNonNull(this.layoutData); diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/InsideLabel.java b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/InsideLabel.java index c364af7931..8765c23421 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/InsideLabel.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/InsideLabel.java @@ -127,6 +127,7 @@ public Builder(InsideLabel insideLabel) { this.isHeader = insideLabel.isIsHeader(); this.headerSeparatorDisplayMode = insideLabel.getHeaderSeparatorDisplayMode(); this.overflowStrategy = insideLabel.getOverflowStrategy(); + this.textAlign = insideLabel.getTextAlign(); } public Builder text(String text) { diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/components/DiagramComponent.java b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/components/DiagramComponent.java index 47f1f62c5f..6350166728 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/components/DiagramComponent.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/components/DiagramComponent.java @@ -49,8 +49,6 @@ public Element render() { variableManager.put(DiagramComponentProps.PREVIOUS_DIAGRAM, optionalPreviousDiagram.orElse(null)); variableManager.put(IDiagramEvent.DIAGRAM_EVENTS, this.props.getDiagramEvents()); - String label = diagramDescription.getLabelProvider().apply(variableManager); - String diagramId = optionalPreviousDiagram.map(Diagram::getId).orElseGet(() -> UUID.randomUUID().toString()); String targetObjectId = diagramDescription.getTargetObjectIdProvider().apply(variableManager); @@ -99,7 +97,6 @@ public Element render() { DiagramElementProps diagramElementProps = DiagramElementProps.newDiagramElementProps(diagramId) .targetObjectId(targetObjectId) .descriptionId(diagramDescription.getId()) - .label(label) .children(children) .build(); return new Element(DiagramElementProps.TYPE, diagramElementProps); diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/elements/DiagramElementProps.java b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/elements/DiagramElementProps.java index 36c97636df..c5619a8cf7 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/elements/DiagramElementProps.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/elements/DiagramElementProps.java @@ -35,8 +35,6 @@ public final class DiagramElementProps implements IProps { private String descriptionId; - private String label; - private List children; private DiagramElementProps() { @@ -55,10 +53,6 @@ public String getDescriptionId() { return this.descriptionId; } - public String getLabel() { - return this.label; - } - @Override public List getChildren() { return this.children; @@ -87,8 +81,6 @@ public static final class Builder { private String descriptionId; - private String label; - private List children; private Builder(String id) { @@ -105,11 +97,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder children(List children) { this.children = Objects.requireNonNull(children); return this; @@ -120,7 +107,6 @@ public DiagramElementProps build() { diagramElementProps.id = Objects.requireNonNull(this.id); diagramElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); diagramElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); - diagramElementProps.label = Objects.requireNonNull(this.label); diagramElementProps.children = Objects.requireNonNull(this.children); return diagramElementProps; } diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/renderer/DiagramElementFactory.java b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/renderer/DiagramElementFactory.java index 7aed4ea464..983712dc53 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/renderer/DiagramElementFactory.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/main/java/org/eclipse/sirius/components/diagrams/renderer/DiagramElementFactory.java @@ -74,7 +74,6 @@ private Diagram instantiateDiagram(IProps props, List children) { return Diagram.newDiagram(diagramElementProps.getId()) .targetObjectId(diagramElementProps.getTargetObjectId()) .descriptionId(diagramElementProps.getDescriptionId()) - .label(diagramElementProps.getLabel()) .nodes(nodes) .edges(edges) .build(); diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererEdgeTests.java b/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererEdgeTests.java index a72465f0b3..cdac23a08c 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererEdgeTests.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererEdgeTests.java @@ -82,7 +82,6 @@ public void testSimpleEdgeRendering() { assertThat(diagram).isNotNull(); assertThat(diagram.getId()).asString().isNotBlank(); - assertThat(diagram.getLabel()).isNotBlank(); assertThat(diagram.getTargetObjectId()).isNotBlank(); assertThat(diagram.getNodes()).hasSize(2); diff --git a/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererNodeTests.java b/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererNodeTests.java index b107f3f5f3..b1610f2cc5 100644 --- a/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererNodeTests.java +++ b/packages/diagrams/backend/sirius-components-diagrams/src/test/java/org/eclipse/sirius/components/diagrams/renderer/DiagramRendererNodeTests.java @@ -84,7 +84,6 @@ public void testSimpleNodeRendering() { assertThat(diagram).isNotNull(); assertThat(diagram.getId()).asString().isNotBlank(); - assertThat(diagram.getLabel()).isEqualTo(DIAGRAM_LABEL); assertThat(diagram.getTargetObjectId()).isNotBlank(); assertThat(diagram.getNodes()).hasSize(1); @@ -116,7 +115,6 @@ public void testSimpleNodeRenderingWithSizeProvider() { assertThat(diagram).isNotNull(); assertThat(diagram.getId()).asString().isNotBlank(); - assertThat(diagram.getLabel()).isEqualTo(DIAGRAM_LABEL); assertThat(diagram.getTargetObjectId()).isNotBlank(); assertThat(diagram.getNodes()).hasSize(1); @@ -151,7 +149,6 @@ public void testImageNodeRendering() { assertThat(diagram).isNotNull(); assertThat(diagram.getId()).asString().isNotBlank(); - assertThat(diagram.getLabel()).isEqualTo(DIAGRAM_LABEL); assertThat(diagram.getTargetObjectId()).isNotBlank(); assertThat(diagram.getNodes()).hasSize(1); diff --git a/packages/emf/backend/sirius-components-emf/src/main/java/org/eclipse/sirius/components/emf/services/DefaultLabelService.java b/packages/emf/backend/sirius-components-emf/src/main/java/org/eclipse/sirius/components/emf/services/DefaultLabelService.java index 5db73b64ec..730f678794 100644 --- a/packages/emf/backend/sirius-components-emf/src/main/java/org/eclipse/sirius/components/emf/services/DefaultLabelService.java +++ b/packages/emf/backend/sirius-components-emf/src/main/java/org/eclipse/sirius/components/emf/services/DefaultLabelService.java @@ -31,6 +31,7 @@ import org.eclipse.emf.edit.provider.ReflectiveItemProvider; import org.eclipse.sirius.components.collaborative.api.IRepresentationImageProvider; import org.eclipse.sirius.components.core.api.IDefaultLabelService; +import org.eclipse.sirius.components.core.api.IRepresentationMetadataProvider; import org.eclipse.sirius.components.core.api.labels.StyledString; import org.eclipse.sirius.components.emf.ResourceMetadataAdapter; import org.eclipse.sirius.components.representations.IRepresentation; @@ -50,6 +51,8 @@ public class DefaultLabelService implements IDefaultLabelService { private static final String DEFAULT_LABEL_FEATURE = "name"; + private final List representationMetadataProviders; + private final LabelFeatureProviderRegistry labelFeatureProviderRegistry; private final ComposedAdapterFactory composedAdapterFactory; @@ -58,7 +61,9 @@ public class DefaultLabelService implements IDefaultLabelService { private final Logger logger = LoggerFactory.getLogger(LabelFeatureProviderRegistry.class); - public DefaultLabelService(LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, List representationImageProviders) { + public DefaultLabelService(List representationMetadataProviders, LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, + List representationImageProviders) { + this.representationMetadataProviders = Objects.requireNonNull(representationMetadataProviders); this.labelFeatureProviderRegistry = Objects.requireNonNull(labelFeatureProviderRegistry); this.composedAdapterFactory = Objects.requireNonNull(composedAdapterFactory); this.representationImageProviders = Objects.requireNonNull(representationImageProviders); @@ -78,7 +83,12 @@ public StyledString getStyledLabel(Object object) { .map(Object::toString) .orElse(""); } else if (object instanceof IRepresentation representation) { - label = representation.getLabel(); + var optionalRepresentationMetadata = this.representationMetadataProviders.stream() + .flatMap(provider -> provider.getMetadata(representation.getId()).stream()) + .findFirst(); + if (optionalRepresentationMetadata.isPresent()) { + label = optionalRepresentationMetadata.get().getLabel(); + } } else if (object instanceof Resource resource) { label = this.getResourceLabel(resource); } @@ -103,8 +113,6 @@ public String getFullLabel(Object object) { if (label != null && !label.isEmpty()) { fullLabel += " " + label; } - } else if (object instanceof IRepresentation representation) { - fullLabel = representation.getLabel(); } else if (object instanceof Resource resource) { fullLabel = this.getResourceLabel(resource); } else { diff --git a/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/query/EMFQueryServiceTests.java b/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/query/EMFQueryServiceTests.java index 47fe083163..88a9ac4dfb 100644 --- a/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/query/EMFQueryServiceTests.java +++ b/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/query/EMFQueryServiceTests.java @@ -12,6 +12,7 @@ *******************************************************************************/ package org.eclipse.sirius.components.emf.query; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -35,6 +36,8 @@ import org.eclipse.sirius.components.collaborative.dto.QueryBasedIntSuccessPayload; import org.eclipse.sirius.components.collaborative.dto.QueryBasedObjectInput; import org.eclipse.sirius.components.collaborative.dto.QueryBasedObjectSuccessPayload; +import org.eclipse.sirius.components.collaborative.dto.QueryBasedObjectsInput; +import org.eclipse.sirius.components.collaborative.dto.QueryBasedObjectsSuccessPayload; import org.eclipse.sirius.components.core.api.ErrorPayload; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IPayload; @@ -63,10 +66,10 @@ public List getEPackages(String editingContextId) { }; IQueryService queryService = new EMFQueryService(editingContextEPackageService, List.of()); - QueryBasedIntInput input = new QueryBasedIntInput(UUID.randomUUID(), "aql:editingContext.allContents()->size()", Map.of()); + QueryBasedObjectsInput input = new QueryBasedObjectsInput(UUID.randomUUID(), "aql:editingContext.allContents()", Map.of()); IPayload payload = queryService.execute(editingContext, input); - assertTrue(payload instanceof QueryBasedIntSuccessPayload); - assertEquals(8, ((QueryBasedIntSuccessPayload) payload).result()); + assertThat(payload).isInstanceOf(QueryBasedObjectsSuccessPayload.class); + assertThat(((QueryBasedObjectsSuccessPayload) payload).result()).size().isEqualTo(8); } @Test @@ -101,7 +104,6 @@ public List getEPackages(String editingContextId) { IQueryService queryService = new EMFQueryService(editingContextEPackageService, List.of()); - // @formatter:off EObject eObjectToRetrieve = editingContext.getDomain().getResourceSet() .getResources().get(0) .getContents().get(0); @@ -112,7 +114,6 @@ public List getEPackages(String editingContextId) { .findFirst(); String id = optionalIDAdapter.map(IDAdapter::getId).map(Object::toString).orElse(""); - // @formatter:on QueryBasedObjectInput input = new QueryBasedObjectInput(UUID.randomUUID(), "aql:editingContext.getObjectById('" + id + "')", Map.of()); IPayload payload = queryService.execute(editingContext, input); diff --git a/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/services/DefaultLabelServiceTests.java b/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/services/DefaultLabelServiceTests.java index d2115a8fac..fd19c2943f 100644 --- a/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/services/DefaultLabelServiceTests.java +++ b/packages/emf/backend/sirius-components-emf/src/test/java/org/eclipse/sirius/components/emf/services/DefaultLabelServiceTests.java @@ -29,9 +29,9 @@ import org.eclipse.emf.edit.provider.ItemProviderAdapter; import org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory; import org.eclipse.emf.edit.provider.StyledString; +import org.eclipse.sirius.components.core.api.IRepresentationMetadataProvider; import org.eclipse.sirius.components.core.api.labels.BorderStyle; import org.eclipse.sirius.components.core.api.labels.UnderLineStyle; - import org.junit.jupiter.api.Test; /** @@ -45,7 +45,7 @@ public void testFindImagePathOnCompositeImage() { ComposedAdapterFactory composedAdapterFactory = new ComposedAdapterFactory(List.of(new EcoreItemProviderAdapterFactory())); composedAdapterFactory.addAdapterFactory(new EcoreAdapterFactory()); composedAdapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); - DefaultLabelService labelService = new DefaultLabelService(new LabelFeatureProviderRegistry(), composedAdapterFactory, List.of()); + DefaultLabelService labelService = new DefaultLabelService(List.of(new IRepresentationMetadataProvider.NoOp()), new LabelFeatureProviderRegistry(), composedAdapterFactory, List.of()); EAttribute attr = EcoreFactory.eINSTANCE.createEAttribute(); List imagePath = labelService.getImagePath(attr); assertThat(imagePath).hasSize(1); @@ -59,7 +59,6 @@ public void testStyledStringConverter() { composedAdapterFactory.addAdapterFactory(new EcoreAdapterFactory()); composedAdapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory()); var styledLabelProvider = new ItemStyledLabelProvider(composedAdapterFactory); - DefaultLabelService labelService = new DefaultLabelService(new LabelFeatureProviderRegistry(), composedAdapterFactory, List.of()); StyledStringConverter styledStringConverter = new StyledStringConverter(); diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorCreationService.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorCreationService.java index 5962e0ffa3..3a92e4d455 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorCreationService.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorCreationService.java @@ -75,17 +75,12 @@ public FormDescriptionEditorCreationService(IRepresentationDescriptionSearchServ } @Override - public FormDescriptionEditor create(ICause cause, String label, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { - FormDescriptionEditor newFormDescriptionEditor = FormDescriptionEditor.newFormDescriptionEditor(UUID.randomUUID().toString()) - .label(label) + public FormDescriptionEditor create(ICause cause, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { + return FormDescriptionEditor.newFormDescriptionEditor(UUID.randomUUID().toString()) .targetObjectId(this.objectService.getId(targetObject)) .descriptionId(formDescriptionEditorDescription.getId()) .pages(List.of()) // We don't store form description editor pages, it will be re-render by the FormDescriptionEditorProcessor. .build(); - - this.representationPersistenceService.save(cause, editingContext, newFormDescriptionEditor); - - return newFormDescriptionEditor; } @Override @@ -99,20 +94,19 @@ public FormDescriptionEditor refresh(IEditingContext editingContext, IFormDescri if (optionalObject.isPresent() && optionalFormDescriptionEditorDescription.isPresent()) { Object object = optionalObject.get(); FormDescriptionEditorDescription formDescriptionEditorDescription = optionalFormDescriptionEditorDescription.get(); - return this.doRender(previousFormDescriptionEditor.getLabel(), object, editingContext, formDescriptionEditorDescription, + return this.doRender(object, editingContext, formDescriptionEditorDescription, Optional.of(formDescriptionEditorContext)); } return null; } - private FormDescriptionEditor doRender(String label, Object targetObject, IEditingContext editingContext, FormDescriptionEditorDescription formDescriptionEditorDescription, + private FormDescriptionEditor doRender(Object targetObject, IEditingContext editingContext, FormDescriptionEditorDescription formDescriptionEditorDescription, Optional optionalFormDescriptionEditorContext) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); variableManager.put(VariableManager.SELF, targetObject); - variableManager.put(FormDescriptionEditor.LABEL, label); variableManager.put(IEditingContext.EDITING_CONTEXT, editingContext); variableManager.put(Environment.ENVIRONMENT, new Environment(Environment.SIRIUS_COMPONENTS)); diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/api/IFormDescriptionEditorCreationService.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/api/IFormDescriptionEditorCreationService.java index 63be15e0a8..fdcfd035dd 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/api/IFormDescriptionEditorCreationService.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/api/IFormDescriptionEditorCreationService.java @@ -23,7 +23,7 @@ * @author arichard */ public interface IFormDescriptionEditorCreationService { - FormDescriptionEditor create(ICause cause, String label, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext); + FormDescriptionEditor create(ICause cause, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext); FormDescriptionEditor refresh(IEditingContext editingContext, IFormDescriptionEditorContext formDescriptionEditorContext); @@ -35,7 +35,7 @@ public interface IFormDescriptionEditorCreationService { class NoOp implements IFormDescriptionEditorCreationService { @Override - public FormDescriptionEditor create(ICause cause, String label, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { + public FormDescriptionEditor create(ICause cause, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { return null; } diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandler.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandler.java index 575ac4d4e8..39956c05f6 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandler.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandler.java @@ -18,6 +18,8 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; +import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationSuccessPayload; @@ -49,6 +51,10 @@ public class CreateFormDescriptionEditorEventHandler implements IEditingContextE private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + + private final IRepresentationPersistenceService representationPersistenceService; + private final IObjectService objectService; private final ICollaborativeFormDescriptionEditorMessageService messageService; @@ -57,9 +63,12 @@ public class CreateFormDescriptionEditorEventHandler implements IEditingContextE private final Counter counter; - public CreateFormDescriptionEditorEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IObjectService objectService, + public CreateFormDescriptionEditorEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, + IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IObjectService objectService, ICollaborativeFormDescriptionEditorMessageService messageService, IFormDescriptionEditorCreationService formDescriptionEditorCreationService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); + this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.objectService = Objects.requireNonNull(objectService); this.messageService = Objects.requireNonNull(messageService); this.formDescriptionEditorCreationService = Objects.requireNonNull(formDescriptionEditorCreationService); @@ -96,13 +105,18 @@ public void handle(One payloadSink, Many changeDesc Optional optionalObject = this.objectService.getObject(editingContext, createRepresentationInput.objectId()); if (optionalFormDescriptionEditorDescription.isPresent() && optionalObject.isPresent()) { - Object object = optionalObject.get(); FormDescriptionEditorDescription representationDescription = optionalFormDescriptionEditorDescription.get(); - FormDescriptionEditor formDescriptionEditor = this.formDescriptionEditorCreationService.create(createRepresentationInput, createRepresentationInput.representationName(), object, representationDescription, - editingContext); + Object object = optionalObject.get(); + + String label = createRepresentationInput.representationName(); - var representationMetadata = new RepresentationMetadata(formDescriptionEditor.getId(), formDescriptionEditor.getKind(), formDescriptionEditor.getLabel(), + FormDescriptionEditor formDescriptionEditor = this.formDescriptionEditorCreationService.create(createRepresentationInput, object, representationDescription, + editingContext); + var representationMetadata = new RepresentationMetadata(formDescriptionEditor.getId(), formDescriptionEditor.getKind(), label, formDescriptionEditor.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, formDescriptionEditor.getTargetObjectId()); + this.representationPersistenceService.save(createRepresentationInput, editingContext, formDescriptionEditor); + payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandler.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandler.java index 589248f55f..8f85a30679 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandler.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandler.java @@ -55,11 +55,9 @@ public RenameFormDescriptionEditorEventHandler(IRepresentationPersistenceService this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.messageService = Objects.requireNonNull(messageService); - // @formatter:off this.counter = Counter.builder(Monitoring.EVENT_HANDLER) .tag(Monitoring.NAME, this.getClass().getSimpleName()) .register(meterRegistry); - // @formatter:on } @Override @@ -81,7 +79,6 @@ public void handle(One payloadSink, Many changeDesc String newLabel = renameRepresentationInput.newLabel(); FormDescriptionEditor renamedFormDescriptionEditor = FormDescriptionEditor.newFormDescriptionEditor(formDescriptionEditorContext.getFormDescriptionEditor()) - .label(newLabel) .pages(List.of()) // We don't store form description editor pages, it will be re-render by // the FormDescriptionEditorProcessor. .build(); diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorEventProcessorTests.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorEventProcessorTests.java index 52191634fd..3d7c44b862 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorEventProcessorTests.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/FormDescriptionEditorEventProcessorTests.java @@ -30,6 +30,7 @@ import org.eclipse.sirius.components.core.api.IPayload; import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; import org.eclipse.sirius.components.formdescriptioneditors.FormDescriptionEditor; +import org.eclipse.sirius.components.forms.Page; import org.junit.jupiter.api.Test; import reactor.test.StepVerifier; @@ -47,9 +48,12 @@ public class FormDescriptionEditorEventProcessorTests { private static final FormDescriptionEditor INITIAL_TEST_FORMDESCRIPTIONEDITOR = FormDescriptionEditor.newFormDescriptionEditor(FORMDESCRIPTIONEDITOR_ID) .descriptionId(FORMDESCRIPTIONEDITOR_DESCRIPTION_ID) - .label(String.valueOf(0)) .targetObjectId("targetObjectId") - .pages(List.of()) + .pages(List.of(Page.newPage(UUID.randomUUID().toString()) + .label(String.valueOf(0)) + .groups(List.of()) + .build() + )) .build(); private final IFormDescriptionEditorCreationService formDescriptionEditorCreationService = new MockFormDescriptionEditorCreationService(INITIAL_TEST_FORMDESCRIPTIONEDITOR); @@ -65,7 +69,7 @@ private Predicate getRefreshFormDescriptionEditorEventPayloadPredicate return representationEventPayload -> { if (representationEventPayload instanceof FormDescriptionEditorRefreshedEventPayload) { FormDescriptionEditorRefreshedEventPayload payload = (FormDescriptionEditorRefreshedEventPayload) representationEventPayload; - return payload.formDescriptionEditor() != null && payload.formDescriptionEditor().getLabel().equals(String.valueOf(count)); + return payload.formDescriptionEditor() != null && payload.formDescriptionEditor().getPages().get(0).getLabel().equals(String.valueOf(count)); } return false; }; diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/MockFormDescriptionEditorCreationService.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/MockFormDescriptionEditorCreationService.java index 24a8698f33..ffb7e7a7a8 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/MockFormDescriptionEditorCreationService.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/MockFormDescriptionEditorCreationService.java @@ -12,6 +12,7 @@ *******************************************************************************/ package org.eclipse.sirius.components.collaborative.formdescriptioneditors; +import java.util.List; import java.util.Objects; import org.eclipse.sirius.components.collaborative.formdescriptioneditors.api.IFormDescriptionEditorContext; @@ -20,6 +21,7 @@ import org.eclipse.sirius.components.events.ICause; import org.eclipse.sirius.components.formdescriptioneditors.FormDescriptionEditor; import org.eclipse.sirius.components.formdescriptioneditors.description.FormDescriptionEditorDescription; +import org.eclipse.sirius.components.forms.Page; /** * Mock of the form description editor creation service. @@ -37,7 +39,7 @@ public MockFormDescriptionEditorCreationService(FormDescriptionEditor formDescri } @Override - public FormDescriptionEditor create(ICause cause, String label, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { + public FormDescriptionEditor create(ICause cause, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { return this.formDescriptionEditor; } @@ -45,11 +47,14 @@ public FormDescriptionEditor create(ICause cause, String label, Object targetObj public FormDescriptionEditor refresh(IEditingContext editingContext, IFormDescriptionEditorContext formDescriptionEditorContext) { this.count = this.count + 1; - // @formatter:off - this.formDescriptionEditor = FormDescriptionEditor.newFormDescriptionEditor(this.formDescriptionEditor) + Page updatedPage = Page.newPage(this.formDescriptionEditor.getPages().get(0)) .label(String.valueOf(this.count)) .build(); - // @formatter:on + + this.formDescriptionEditor = FormDescriptionEditor.newFormDescriptionEditor(this.formDescriptionEditor) + .pages(List.of(updatedPage)) + .build(); + return this.formDescriptionEditor; } diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/TestFormDescriptionEditorBuilder.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/TestFormDescriptionEditorBuilder.java index 231ffd7f44..f165b8205c 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/TestFormDescriptionEditorBuilder.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/TestFormDescriptionEditorBuilder.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -40,7 +40,6 @@ public FormDescriptionEditor getFormDescriptionEditor(String id) { .build(); return FormDescriptionEditor.newFormDescriptionEditor(id) - .label("formDescriptionEditorLabel") .descriptionId(UUID.randomUUID().toString()) .targetObjectId("formDescriptionEditorTargetObjectId") .pages(List.of(page)) diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandlerTests.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandlerTests.java index ca25a542c0..262b93e596 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandlerTests.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/CreateFormDescriptionEditorEventHandlerTests.java @@ -20,6 +20,8 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; +import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationSuccessPayload; import org.eclipse.sirius.components.collaborative.formdescriptioneditors.TestFormDescriptionEditorBuilder; @@ -51,13 +53,11 @@ public void testFormDescriptionEditorCreation() { IRepresentationDescriptionSearchService representationDescriptionSearchService = new IRepresentationDescriptionSearchService.NoOp() { @Override public Optional findById(IEditingContext editingContext, String id) { - // @formatter:off FormDescriptionEditorDescription formDescriptionEditorDescription = FormDescriptionEditorDescription.newFormDescriptionEditorDescription(UUID.randomUUID().toString()) .label("label") .canCreatePredicate(variableManager -> Boolean.TRUE) .targetObjectIdProvider(variableManager -> "targetObjectId") .build(); - // @formatter:on return Optional.of(formDescriptionEditorDescription); } @@ -66,7 +66,7 @@ public Optional findById(IEditingContext editingCont AtomicBoolean hasBeenCalled = new AtomicBoolean(); IFormDescriptionEditorCreationService formDescriptionEditorCreationService = new IFormDescriptionEditorCreationService.NoOp() { @Override - public FormDescriptionEditor create(ICause cause, String label, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { + public FormDescriptionEditor create(ICause cause, Object targetObject, FormDescriptionEditorDescription formDescriptionEditorDescription, IEditingContext editingContext) { hasBeenCalled.set(true); return new TestFormDescriptionEditorBuilder().getFormDescriptionEditor(UUID.randomUUID().toString()); } @@ -80,7 +80,7 @@ public Optional getObject(IEditingContext editingContext, String objectI } }; - CreateFormDescriptionEditorEventHandler handler = new CreateFormDescriptionEditorEventHandler(representationDescriptionSearchService, objectService, + CreateFormDescriptionEditorEventHandler handler = new CreateFormDescriptionEditorEventHandler(representationDescriptionSearchService, new IRepresentationMetadataPersistenceService.NoOp(), new IRepresentationPersistenceService.NoOp(), objectService, new ICollaborativeFormDescriptionEditorMessageService.NoOp(), formDescriptionEditorCreationService, new SimpleMeterRegistry()); var input = new CreateRepresentationInput(UUID.randomUUID(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), "objectId", "representationName"); diff --git a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandlerTests.java b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandlerTests.java index 098521d04c..310c30c3c7 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandlerTests.java +++ b/packages/formdescriptioneditors/backend/sirius-components-collaborative-formdescriptioneditors/src/test/java/org/eclipse/sirius/components/collaborative/formdescriptioneditors/handlers/RenameFormDescriptionEditorEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -53,7 +53,6 @@ public void testRenameRepresentation() { UUID targetObjectId = UUID.randomUUID(); FormDescriptionEditor formDescriptionEditor = FormDescriptionEditor.newFormDescriptionEditor(representationId) - .label(OLD_LABEL) .descriptionId(formDescriptionEditorDescriptionId) .targetObjectId(targetObjectId.toString()) .pages(List.of()) @@ -86,6 +85,5 @@ public FormDescriptionEditor getFormDescriptionEditor() { IPayload payload = payloadSink.asMono().block(); assertThat(payload).isInstanceOf(RenameRepresentationSuccessPayload.class); - assertThat(((RenameRepresentationSuccessPayload) payload).representation().getLabel()).isEqualTo(NEW_LABEL); } } diff --git a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/FormDescriptionEditor.java b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/FormDescriptionEditor.java index 9eefda6957..fe316f7842 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/FormDescriptionEditor.java +++ b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/FormDescriptionEditor.java @@ -30,14 +30,10 @@ public final class FormDescriptionEditor implements IRepresentation { public static final String KIND = IRepresentation.KIND_PREFIX + "?type=FormDescriptionEditor"; - public static final String LABEL = "label"; - private String id; private String kind; - private String label; - private String targetObjectId; private String descriptionId; @@ -58,11 +54,6 @@ public String getKind() { return this.kind; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getTargetObjectId() { return this.targetObjectId; @@ -87,8 +78,8 @@ public static Builder newFormDescriptionEditor(FormDescriptionEditor formDescrip @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}, targetObjectId: {3}, descriptionId: {4}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label, this.targetObjectId, this.descriptionId); + String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId); } /** @@ -103,8 +94,6 @@ public static final class Builder { private String kind = KIND; - private String label; - private String targetObjectId; private String descriptionId; @@ -117,17 +106,11 @@ private Builder(String id) { public Builder(FormDescriptionEditor formDescriptionEditor) { this.id = formDescriptionEditor.id; - this.label = formDescriptionEditor.label; this.targetObjectId = formDescriptionEditor.targetObjectId; this.descriptionId = formDescriptionEditor.descriptionId; this.pages = formDescriptionEditor.pages; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -147,7 +130,6 @@ public FormDescriptionEditor build() { FormDescriptionEditor formDescriptionEditor = new FormDescriptionEditor(); formDescriptionEditor.id = Objects.requireNonNull(this.id); formDescriptionEditor.kind = Objects.requireNonNull(this.kind); - formDescriptionEditor.label = Objects.requireNonNull(this.label); formDescriptionEditor.targetObjectId = Objects.requireNonNull(this.targetObjectId); formDescriptionEditor.descriptionId = Objects.requireNonNull(this.descriptionId); formDescriptionEditor.pages = Objects.requireNonNull(this.pages); diff --git a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/components/FormDescriptionEditorComponent.java b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/components/FormDescriptionEditorComponent.java index 0b84018a03..dd29f1fab0 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/components/FormDescriptionEditorComponent.java +++ b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/components/FormDescriptionEditorComponent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -47,8 +47,6 @@ public Element render() { var optionalPreviousFormDescriptionEditor = this.props.optionalPreviousFormDescriptionEditor(); String id = optionalPreviousFormDescriptionEditor.map(FormDescriptionEditor::getId).orElseGet(() -> UUID.randomUUID().toString()); - String label = optionalPreviousFormDescriptionEditor.map(FormDescriptionEditor::getLabel) - .orElseGet(() -> variableManager.get(FormDescriptionEditor.LABEL, String.class).orElse("Form Description Editor")); Function targetObjectIdProvider = formDescriptionEditorDescription.getTargetObjectIdProvider(); String targetObjectId = targetObjectIdProvider.apply(variableManager); @@ -65,7 +63,6 @@ public Element render() { }); FormDescriptionEditorElementProps formDescriptionEditorElementProps = FormDescriptionEditorElementProps.newFormDescriptionEditorElementProps(id) - .label(label) .targetObjectId(targetObjectId) .descriptionId(formDescriptionEditorDescription.getId()) .children(childrenWidgets) diff --git a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/elements/FormDescriptionEditorElementProps.java b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/elements/FormDescriptionEditorElementProps.java index bfaee1d677..9b125ddfa0 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/elements/FormDescriptionEditorElementProps.java +++ b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/elements/FormDescriptionEditorElementProps.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022 Obeo. + * Copyright (c) 2022, 2024 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 @@ -31,8 +31,6 @@ public final class FormDescriptionEditorElementProps implements IProps { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -47,10 +45,6 @@ public String getId() { return this.id; } - public String getLabel() { - return this.label; - } - public String getTargetObjectId() { return this.targetObjectId; } @@ -70,8 +64,8 @@ public static Builder newFormDescriptionEditorElementProps(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label); + String pattern = "{0} '{'id: {1}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id); } /** @@ -83,8 +77,6 @@ public String toString() { public static final class Builder { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -95,11 +87,6 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -118,7 +105,6 @@ public Builder children(List children) { public FormDescriptionEditorElementProps build() { FormDescriptionEditorElementProps formDescriptionEditorElementProps = new FormDescriptionEditorElementProps(); formDescriptionEditorElementProps.id = Objects.requireNonNull(this.id); - formDescriptionEditorElementProps.label = Objects.requireNonNull(this.label); formDescriptionEditorElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); formDescriptionEditorElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); formDescriptionEditorElementProps.children = Objects.requireNonNull(this.children); diff --git a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/renderer/FormDescriptionEditorElementFactory.java b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/renderer/FormDescriptionEditorElementFactory.java index 18697316d4..74785db534 100644 --- a/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/renderer/FormDescriptionEditorElementFactory.java +++ b/packages/formdescriptioneditors/backend/sirius-components-formdescriptioneditors/src/main/java/org/eclipse/sirius/components/formdescriptioneditors/renderer/FormDescriptionEditorElementFactory.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -62,7 +62,6 @@ private FormDescriptionEditor instantiateFormDescriptionEditor(FormDescriptionEd .toList(); return FormDescriptionEditor.newFormDescriptionEditor(props.getId()) - .label(props.getLabel()) .targetObjectId(props.getTargetObjectId()) .descriptionId(props.getDescriptionId()) .pages(pages) diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessor.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessor.java index c8c3768f79..4a4fefb820 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessor.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessor.java @@ -41,7 +41,6 @@ import org.eclipse.sirius.components.forms.Form; import org.eclipse.sirius.components.forms.components.FormComponent; import org.eclipse.sirius.components.forms.components.FormComponentProps; -import org.eclipse.sirius.components.forms.description.FormDescription; import org.eclipse.sirius.components.forms.renderer.FormRenderer; import org.eclipse.sirius.components.forms.renderer.IWidgetDescriptor; import org.eclipse.sirius.components.representations.Element; @@ -125,9 +124,6 @@ private VariableManager initializeVariableManager(FormCreationParameters formDes initialVariableManager.put(FormVariableProvider.SELECTION.name(), this.formCreationParameters.getSelection()); initialVariableManager.put(GetOrCreateRandomIdProvider.PREVIOUS_REPRESENTATION_ID, this.formCreationParameters.getId()); initialVariableManager.put(IEditingContext.EDITING_CONTEXT, this.formCreationParameters.getEditingContext()); - if (formDescriptionParameters.getLabel() != null) { - initialVariableManager.put(FormDescription.LABEL, formDescriptionParameters.getLabel()); - } var initializer = formDescription.getVariableManagerInitializer(); return initializer.apply(initialVariableManager); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessorFactory.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessorFactory.java index 9006e0395c..d3a4a24c67 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessorFactory.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/FormEventProcessorFactory.java @@ -93,7 +93,6 @@ public Optional createRepresentationEventProcesso .editingContext(editingContext) .formDescription(formDescription) .object(object) - .label(form.getLabel()) .selection(List.of()) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/FormCreationParameters.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/FormCreationParameters.java index 369b7688eb..1eff16c967 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/FormCreationParameters.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/FormCreationParameters.java @@ -35,8 +35,6 @@ public final class FormCreationParameters { private Object object; - private String label; - private List selection; private FormDescription formDescription; @@ -56,7 +54,6 @@ public static Builder newFormCreationParameters(FormCreationParameters formCreat .formDescription(formCreationParameters.getFormDescription()) .editingContext(formCreationParameters.getEditingContext()) .object(formCreationParameters.getObject()) - .label(formCreationParameters.getLabel()) .selection(formCreationParameters.getSelection()); } @@ -64,10 +61,6 @@ public Object getObject() { return this.object; } - public String getLabel() { - return this.label; - } - public FormDescription getFormDescription() { return this.formDescription; } @@ -102,8 +95,6 @@ public static final class Builder { private Object object; - private String label; - private List selection; private FormDescription formDescription; @@ -119,11 +110,6 @@ public Builder object(Object object) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder selection(List selection) { this.selection = Objects.requireNonNull(selection); return this; @@ -143,7 +129,6 @@ public FormCreationParameters build() { FormCreationParameters formCreationParameters = new FormCreationParameters(); formCreationParameters.id = this.id; formCreationParameters.object = Objects.requireNonNull(this.object); - formCreationParameters.label = this.label; // Can be null on purpose formCreationParameters.selection = Objects.requireNonNull(this.selection); formCreationParameters.formDescription = Objects.requireNonNull(this.formDescription); formCreationParameters.editingContext = Objects.requireNonNull(this.editingContext); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/IFormEventProcessor.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/IFormEventProcessor.java index 1f90b71e75..7480618ada 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/IFormEventProcessor.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/api/IFormEventProcessor.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2021 Obeo. + * Copyright (c) 2019, 2024 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 @@ -21,12 +21,4 @@ */ public interface IFormEventProcessor extends IRepresentationEventProcessor { - /** - * Implementation which does nothing, used for mocks in unit tests. - * - * @author sbegaudeau - */ - class NoOp extends IRepresentationEventProcessor.NoOp implements IFormEventProcessor { - - } } diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandler.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandler.java index 5659b2130b..c0e20ca398 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandler.java @@ -20,6 +20,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; @@ -35,6 +36,7 @@ import org.eclipse.sirius.components.forms.Form; import org.eclipse.sirius.components.forms.description.FormDescription; import org.eclipse.sirius.components.representations.IRepresentationDescription; +import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; import io.micrometer.core.instrument.Counter; @@ -52,6 +54,8 @@ public class CreateFormEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IObjectService objectService; @@ -60,9 +64,10 @@ public class CreateFormEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreateFormEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreateFormEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IObjectService objectService, ICollaborativeFormMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.objectService = Objects.requireNonNull(objectService); this.messageService = Objects.requireNonNull(messageService); @@ -97,19 +102,26 @@ public void handle(One payloadSink, Many changeDesc Optional optionalObject = this.objectService.getObject(editingContext, createRepresentationInput.objectId()); if (optionalRepresentationDescription.isPresent() && optionalObject.isPresent()) { + var object = optionalObject.get(); IRepresentationDescription representationDescription = optionalRepresentationDescription.get(); - String targetObjectId = this.objectService.getId(optionalObject.get()); - if (representationDescription instanceof FormDescription) { + String targetObjectId = this.objectService.getId(object); + if (representationDescription instanceof FormDescription formDescription) { + + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(FormDescription.LABEL, createRepresentationInput.representationName()); + String label = formDescription.getLabelProvider().apply(variableManager); + Form form = Form.newForm(UUID.randomUUID().toString()) - .label(createRepresentationInput.representationName()) .targetObjectId(targetObjectId) .descriptionId(representationDescription.getId()) .pages(List.of()) // We don't store form pages, it will be re-render by the FormProcessor. .build(); + var representationMetadata = new RepresentationMetadata(form.getId(), form.getKind(), label, form.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, targetObjectId); this.representationPersistenceService.save(createRepresentationInput, editingContext, form); - var representationMetadata = new RepresentationMetadata(form.getId(), form.getKind(), form.getLabel(), form.getDescriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandler.java b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandler.java index 1cd610a0af..99bb1ed360 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/main/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandler.java @@ -53,11 +53,9 @@ public RenameFormEventHandler(IRepresentationPersistenceService representationPe this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.messageService = Objects.requireNonNull(messageService); - // @formatter:off this.counter = Counter.builder(Monitoring.EVENT_HANDLER) .tag(Monitoring.NAME, this.getClass().getSimpleName()) .register(meterRegistry); - // @formatter:on } @Override @@ -77,12 +75,9 @@ public void handle(One payloadSink, Many changeDesc RenameFormInput renameRepresentationInput = (RenameFormInput) formInput; String newLabel = renameRepresentationInput.newLabel(); - // @formatter:off Form renamedForm = Form.newForm(form) - .label(newLabel) .pages(List.of()) // We don't store form pages, it will be re-render by the FormProcessor. .build(); - // @formatter:on this.representationPersistenceService.save(renameRepresentationInput, editingContext, renamedForm); payload = new RenameRepresentationSuccessPayload(formInput.id(), renamedForm); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/FormQueryServiceTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/FormQueryServiceTests.java index 0dff73a5c6..228cdbb1b9 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/FormQueryServiceTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/FormQueryServiceTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -70,7 +70,6 @@ public void testFindWidget() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CompletionProposalEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CompletionProposalEventHandlerTests.java index 2753490e0b..83b33a7ca8 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CompletionProposalEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CompletionProposalEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -58,7 +58,6 @@ public void testRequestCompletion() { return new Success(); }; List proposals = List.of(new CompletionProposal("Proposal", "textToInsert", 0)); - // @formatter:off Textfield textfield = Textfield.newTextfield(id) .label("label") .value("Previous value") @@ -80,10 +79,8 @@ public void testRequestCompletion() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandlerTests.java index 7a55603a3d..ecd70fdc65 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/CreateFormEventHandlerTests.java @@ -21,10 +21,12 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationSuccessPayload; import org.eclipse.sirius.components.collaborative.forms.messages.ICollaborativeFormMessageService; +import org.eclipse.sirius.components.core.RepresentationMetadata; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IObjectService; import org.eclipse.sirius.components.core.api.IPayload; @@ -49,7 +51,6 @@ public class CreateFormEventHandlerTests { @Test public void testFormCreation() { - // @formatter:off var formDescription = FormDescription.newFormDescription("representationDescriptionId") .label("label") .canCreatePredicate(variableManager -> true) @@ -58,7 +59,6 @@ public void testFormCreation() { .labelProvider(variableManager -> "label") .targetObjectIdProvider(variableManager -> "targetObjectId") .build(); - // @formatter:on IRepresentationDescriptionSearchService representationDescriptionSearchService = new IRepresentationDescriptionSearchService.NoOp() { @Override @@ -67,11 +67,19 @@ public Optional findById(IEditingContext editingCont } }; - AtomicBoolean hasBeenExecuted = new AtomicBoolean(); + AtomicBoolean representationHasBeenPersisted = new AtomicBoolean(); IRepresentationPersistenceService representationPersistenceService = new IRepresentationPersistenceService.NoOp() { @Override public void save(ICause cause, IEditingContext editingContext, IRepresentation representation) { - hasBeenExecuted.set(true); + representationHasBeenPersisted.set(true); + } + }; + + AtomicBoolean representationMetadataHasBeenPersisted = new AtomicBoolean(); + IRepresentationMetadataPersistenceService representationMetadataPersistenceService = new IRepresentationMetadataPersistenceService.NoOp() { + @Override + public void save(ICause cause, IEditingContext editingContext, RepresentationMetadata representationMetadata, String targetObjectId) { + representationMetadataHasBeenPersisted.set(true); } }; @@ -82,7 +90,7 @@ public Optional getObject(IEditingContext editingContext, String objectI } }; - var handler = new CreateFormEventHandler(representationDescriptionSearchService, representationPersistenceService, objectService, new ICollaborativeFormMessageService.NoOp(), + var handler = new CreateFormEventHandler(representationDescriptionSearchService, representationMetadataPersistenceService, representationPersistenceService, objectService, new ICollaborativeFormMessageService.NoOp(), new SimpleMeterRegistry()); var input = new CreateRepresentationInput(UUID.randomUUID(), "editingContextId", "representationDescriptionId", "objectId", "representationName"); IEditingContext editingContext = () -> "editingContextId"; @@ -100,6 +108,7 @@ public Optional getObject(IEditingContext editingContext, String objectI IPayload payload = payloadSink.asMono().block(); assertThat(payload).isInstanceOf(CreateRepresentationSuccessPayload.class); - assertThat(hasBeenExecuted.get()).isTrue(); + assertThat(representationHasBeenPersisted.get()).isTrue(); + assertThat(representationMetadataHasBeenPersisted.get()).isTrue(); } } diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditCheckboxEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditCheckboxEventHandlerTests.java index f0c5fb4ffe..d10da9da6c 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditCheckboxEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditCheckboxEventHandlerTests.java @@ -83,7 +83,6 @@ public void testCheckboxEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); @@ -142,7 +141,6 @@ public void testCheckboxEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditMultiSelectEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditMultiSelectEventHandlerTests.java index 6be4b2e207..3f1002a637 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditMultiSelectEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditMultiSelectEventHandlerTests.java @@ -67,7 +67,6 @@ public void testMultiSelectEdition() { return new Success(); }; - // @formatter:off SelectOption trueOption = SelectOption.newSelectOption(TRUE) .label("True") .build(); @@ -96,10 +95,8 @@ public void testMultiSelectEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -136,7 +133,6 @@ public void testMultiSelectEditionReadOnly() { return new Success(); }; - // @formatter:off SelectOption trueOption = SelectOption.newSelectOption(TRUE) .label("True") .build(); @@ -165,10 +161,8 @@ public void testMultiSelectEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditRadioEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditRadioEventHandlerTests.java index 4fc7f95a70..752cab7e2d 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditRadioEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditRadioEventHandlerTests.java @@ -66,7 +66,6 @@ public void testRadioEdition() { return new Success(); }; - // @formatter:off RadioOption option = RadioOption.newRadioOption(OPTION_ID) .label("Option label") .selected(false) @@ -93,10 +92,8 @@ public void testRadioEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -133,7 +130,6 @@ public void testRadioEditionReadOnly() { return new Success(); }; - // @formatter:off RadioOption option = RadioOption.newRadioOption(OPTION_ID) .label("Option label") .selected(false) @@ -160,10 +156,8 @@ public void testRadioEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditSelectEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditSelectEventHandlerTests.java index 7f4044978f..bedea90f8c 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditSelectEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditSelectEventHandlerTests.java @@ -68,7 +68,6 @@ public void testSelectEdition() { return new Success(); }; - // @formatter:off SelectOption trueOption = SelectOption.newSelectOption(TRUE) .label("True") .build(); @@ -97,10 +96,8 @@ public void testSelectEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -137,7 +134,6 @@ public void testSelectEditionReadOnly() { return new Success(); }; - // @formatter:off SelectOption trueOption = SelectOption.newSelectOption(TRUE) .label("True") .build(); @@ -166,10 +162,8 @@ public void testSelectEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTextfieldEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTextfieldEventHandlerTests.java index b4ed269406..5f0079b7ed 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTextfieldEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTextfieldEventHandlerTests.java @@ -63,7 +63,6 @@ public void testTextfieldEdition() { return new Success(); }; - // @formatter:off Textfield textfield = Textfield.newTextfield(id) .label("label") .value("Previous value") @@ -85,10 +84,8 @@ public void testTextfieldEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -125,7 +122,6 @@ public void testTextfieldEditionReadOnly() { return new Success(); }; - // @formatter:off Textfield textfield = Textfield.newTextfield(id) .label("label") .value("Previous value") @@ -147,10 +143,8 @@ public void testTextfieldEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -171,4 +165,4 @@ public Optional findWidget(Form form, String widgetId) { assertThat(((ErrorPayload) payload).message()).isNotNull(); assertThat(hasBeenExecuted.get()).isFalse(); } -} \ No newline at end of file +} diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTreeCheckboxEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTreeCheckboxEventHandlerTests.java index eddd550c3f..42cba82118 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTreeCheckboxEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/EditTreeCheckboxEventHandlerTests.java @@ -100,7 +100,6 @@ public void testCheckboxEdition() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); @@ -173,7 +172,6 @@ public void testCheckboxEditionReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/HelpTextRequestEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/HelpTextRequestEventHandlerTests.java index f2d6d48216..8d14f5bfdc 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/HelpTextRequestEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/HelpTextRequestEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -100,7 +100,6 @@ public void testHelpText() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/ListItemEventHandlersTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/ListItemEventHandlersTests.java index a5426fcf5c..2fafc26853 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/ListItemEventHandlersTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/ListItemEventHandlersTests.java @@ -93,7 +93,6 @@ private static Form getForm(Page page) { return Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); } @@ -129,7 +128,6 @@ public void testListItemDeletion() { return new Success(changeKind, parameters); }; - // @formatter:off ListItem listItem = getListItemWithDeleteHandler(listItemId, deleteHandler); List list = getList(LIST_ID, listItem, false); @@ -139,7 +137,6 @@ public void testListItemDeletion() { Page page = getPage(group); Form form = getForm(page); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -182,7 +179,6 @@ public void testListItemDeletionReadOnly() { return new Success(changeKind, parameters); }; - // @formatter:off ListItem listItem = getListItemWithDeleteHandler(listItemId, deleteHandler); List list = getList(LIST_ID, listItem, true); @@ -192,7 +188,6 @@ public void testListItemDeletionReadOnly() { Page page = getPage(group); Form form = getForm(page); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -230,7 +225,6 @@ public void testListItemSelection() { return new Success(changeKind, parameters); }; - // @formatter:off ListItem listItem = getListItemWithClickHandler(listItemId, selectHandler); List list = getList(LIST_ID, listItem, false); @@ -240,7 +234,6 @@ public void testListItemSelection() { Page page = getPage(group); Form form = getForm(page); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -283,7 +276,6 @@ public void testListItemSelectionReadOnly() { return new Success(changeKind, parameters); }; - // @formatter:off ListItem listItem = getListItemWithClickHandler(listItemId, selectHandler); List list = getList(LIST_ID, listItem, true); @@ -293,7 +285,6 @@ public void testListItemSelectionReadOnly() { Page page = getPage(group); Form form = getForm(page); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/PushButtonEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/PushButtonEventHandlerTests.java index e607c3fc0c..0b9b047fd2 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/PushButtonEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/PushButtonEventHandlerTests.java @@ -63,7 +63,6 @@ public void testPushButton() { return new Success(); }; - // @formatter:off Button button = Button.newButton(id) .label("label") .pushButtonHandler(pushButtonHandler) @@ -84,10 +83,8 @@ public void testPushButton() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override @@ -124,7 +121,6 @@ public void testPushButtonReadOnly() { return new Success(); }; - // @formatter:off Button button = Button.newButton(id) .label("label") .pushButtonHandler(pushButtonHandler) @@ -145,10 +141,8 @@ public void testPushButtonReadOnly() { Form form = Form.newForm(FORM_ID) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(List.of(page)) .build(); - // @formatter:on IFormQueryService formQueryService = new IFormQueryService.NoOp() { @Override diff --git a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandlerTests.java index 3a9f265977..62af71a52e 100644 --- a/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-forms/src/test/java/org/eclipse/sirius/components/collaborative/forms/handlers/RenameFormEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2022, 2023 Obeo. + * Copyright (c) 2022, 2024 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 @@ -50,14 +50,11 @@ public void testRenameRepresentation() { String representationId = UUID.randomUUID().toString(); UUID targetObjectId = UUID.randomUUID(); - // @formatter:off Form form = Form.newForm(representationId) - .label(OLD_LABEL) .descriptionId(formDescriptionId) .targetObjectId(targetObjectId.toString()) .pages(List.of()) .build(); - // @formatter:on RenameFormEventHandler handler = new RenameFormEventHandler(new IRepresentationPersistenceService.NoOp(), new ICollaborativeFormMessageService.NoOp(), new SimpleMeterRegistry()); @@ -74,6 +71,5 @@ public void testRenameRepresentation() { IPayload payload = payloadSink.asMono().block(); assertThat(payload).isInstanceOf(RenameRepresentationSuccessPayload.class); - assertThat(((RenameRepresentationSuccessPayload) payload).representation().getLabel()).isEqualTo(NEW_LABEL); } } diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/AddReferenceValuesEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/AddReferenceValuesEventHandlerTests.java index 79c21e11d5..feea7a5ab0 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/AddReferenceValuesEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/AddReferenceValuesEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -113,7 +113,6 @@ public Optional getObject(IEditingContext editingContext, String objectI Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -186,7 +185,6 @@ public void testAddReferenceValuesReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ClearReferenceEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ClearReferenceEventHandlerTests.java index 328ab64d19..7e90da6bb7 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ClearReferenceEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ClearReferenceEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -100,7 +100,6 @@ public void testClearReference() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -173,7 +172,6 @@ public void testClearReferenceReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandlerTests.java index cd6bb31460..8effba334e 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandlerTests.java @@ -23,6 +23,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.forms.api.IFormQueryService; +import org.eclipse.sirius.components.collaborative.widget.reference.api.IReferenceWidgetCreateElementHandler; import org.eclipse.sirius.components.collaborative.widget.reference.dto.CreateElementInReferenceSuccessPayload; import org.eclipse.sirius.components.collaborative.widget.reference.dto.CreateElementInput; import org.eclipse.sirius.components.collaborative.widget.reference.messages.IReferenceMessageService; @@ -36,7 +37,6 @@ import org.eclipse.sirius.components.forms.Form; import org.eclipse.sirius.components.forms.Group; import org.eclipse.sirius.components.forms.Page; -import org.eclipse.sirius.components.collaborative.widget.reference.api.IReferenceWidgetCreateElementHandler; import org.eclipse.sirius.components.widget.reference.ReferenceValue; import org.eclipse.sirius.components.widget.reference.ReferenceWidget; import org.junit.jupiter.api.Test; @@ -103,7 +103,6 @@ public Optional getObject(IEditingContext editingContext, String objectI Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -175,7 +174,6 @@ public void testCreateElementInReferenceReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/MoveReferenceValueEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/MoveReferenceValueEventHandlerTests.java index 11de239f5a..e5d4a71faa 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/MoveReferenceValueEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/MoveReferenceValueEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -114,7 +114,6 @@ public Optional getObject(IEditingContext editingContext, String objectI Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -187,7 +186,6 @@ public void testMoveReferenceValueReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceValueOptionsEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceValueOptionsEventHandlerTests.java index 9e0ee6f43f..96d501c7e9 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceValueOptionsEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceValueOptionsEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -98,7 +98,6 @@ public void testGetReferenceValueOptions() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/RemoveReferenceValueEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/RemoveReferenceValueEventHandlerTests.java index de93f6dfe3..e990a263d2 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/RemoveReferenceValueEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/RemoveReferenceValueEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -105,7 +105,6 @@ public void testRemoveReferenceValue() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -183,7 +182,6 @@ public void testRemoveReferenceValueReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/SetReferenceValueEventHandlerTests.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/SetReferenceValueEventHandlerTests.java index fe49d0802d..20bb9c94fe 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/SetReferenceValueEventHandlerTests.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/test/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/SetReferenceValueEventHandlerTests.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2023 Obeo. + * Copyright (c) 2023, 2024 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 @@ -113,7 +113,6 @@ public Optional getObject(IEditingContext editingContext, String objectI Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); @@ -186,7 +185,6 @@ public void testSetReferenceValueReadOnly() { Form form = Form.newForm(FORM_ID.toString()) .targetObjectId("targetObjectId") .descriptionId(UUID.randomUUID().toString()) - .label("form label") .pages(Collections.singletonList(page)) .build(); diff --git a/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssert.java b/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssert.java deleted file mode 100644 index bdeff58e06..0000000000 --- a/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssert.java +++ /dev/null @@ -1,36 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2019, 2024 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 - * https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * Obeo - initial API and implementation - *******************************************************************************/ -package org.eclipse.sirius.components.forms.tests.assertions; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.assertj.core.api.AbstractAssert; -import org.eclipse.sirius.components.forms.Form; - -/** - * Custom assertion class used to performs some tests on a form. - * - * @author lfasani - */ -public class FormAssert extends AbstractAssert { - - public FormAssert(Form form) { - super(form, FormAssert.class); - } - - public FormAssert hasLabel(String label) { - assertThat(this.actual.getLabel()).isEqualTo(label); - - return this; - } -} diff --git a/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssertions.java b/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssertions.java index a1b825939b..cdbe4d7b53 100644 --- a/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssertions.java +++ b/packages/forms/backend/sirius-components-forms-tests/src/main/java/org/eclipse/sirius/components/forms/tests/assertions/FormAssertions.java @@ -15,7 +15,6 @@ import org.assertj.core.api.Assertions; import org.eclipse.sirius.components.forms.Checkbox; import org.eclipse.sirius.components.forms.DateTime; -import org.eclipse.sirius.components.forms.Form; import org.eclipse.sirius.components.forms.Group; import org.eclipse.sirius.components.forms.Link; import org.eclipse.sirius.components.forms.MultiSelect; @@ -35,9 +34,6 @@ * @author lfasani */ public class FormAssertions extends Assertions { - public static FormAssert assertThat(Form form) { - return new FormAssert(form); - } public static PageAssert assertThat(Page page) { return new PageAssert(page); diff --git a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Form.java b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Form.java index ae5a17d728..6ecc71591f 100644 --- a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Form.java +++ b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Form.java @@ -35,8 +35,6 @@ public final class Form implements IRepresentation { private String kind; - private String label; - private String targetObjectId; private String descriptionId; @@ -57,11 +55,6 @@ public String getKind() { return this.kind; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getTargetObjectId() { return this.targetObjectId; @@ -86,8 +79,8 @@ public static Builder newForm(Form form) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}, targetObjectId: {3}, descriptionId: {4} pageCount: {5}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label, this.targetObjectId, this.descriptionId, this.pages.size()); + String pattern = "{0} '{'id: {1}, targetObjectId: {2}, descriptionId: {3} pageCount: {4}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.targetObjectId, this.descriptionId, this.pages.size()); } /** @@ -101,8 +94,6 @@ public static final class Builder { private String kind = KIND; - private String label; - private String targetObjectId; private String descriptionId; @@ -117,15 +108,9 @@ private Builder(Form form) { this.id = form.getId(); this.targetObjectId = form.getTargetObjectId(); this.descriptionId = form.getDescriptionId(); - this.label = form.getLabel(); this.pages = new ArrayList<>(form.getPages()); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -145,7 +130,6 @@ public Form build() { Form form = new Form(); form.id = Objects.requireNonNull(this.id); form.kind = Objects.requireNonNull(this.kind); - form.label = Objects.requireNonNull(this.label); form.targetObjectId = Objects.requireNonNull(this.targetObjectId); form.descriptionId = Objects.requireNonNull(this.descriptionId); form.pages = Objects.requireNonNull(this.pages); diff --git a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Page.java b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Page.java index 692774b618..622f1c8842 100644 --- a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Page.java +++ b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/Page.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2023 Obeo. + * Copyright (c) 2019, 2024 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 @@ -13,6 +13,7 @@ package org.eclipse.sirius.components.forms; import java.text.MessageFormat; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -58,6 +59,10 @@ public static Builder newPage(String id) { return new Builder(id); } + public static Builder newPage(Page page) { + return new Builder(page); + } + @Override public String toString() { String pattern = "{0} '{'id: {1}, label: {2}, groupCount: {3}'}'"; @@ -84,6 +89,13 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } + private Builder(Page page) { + this.id = page.id; + this.label = page.label; + this.toolbarActions = new ArrayList<>(page.toolbarActions); + this.groups = new ArrayList<>(page.groups); + } + public Builder label(String label) { this.label = Objects.requireNonNull(label); return this; diff --git a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/components/FormComponent.java b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/components/FormComponent.java index 1efa323cfe..8d131f4874 100644 --- a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/components/FormComponent.java +++ b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/components/FormComponent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2023 Obeo. + * Copyright (c) 2019, 2024 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 @@ -65,12 +65,9 @@ public Element render() { VariableManager variableManager = this.props.getVariableManager(); FormDescription formDescription = this.props.getFormDescription(); - String label = formDescription.getLabelProvider().apply(variableManager); - VariableManager idVariableManager = variableManager.createChild(); idVariableManager.put(FormComponent.TARGET_OBJECT_ID, formDescription.getTargetObjectIdProvider().apply(variableManager)); idVariableManager.put(FormComponent.CONTROL_DESCRIPTION_ID, formDescription.getId()); - idVariableManager.put(FormComponent.WIDGET_LABEL, label); String id = formDescription.getIdProvider().apply(idVariableManager); String targetObjectId = formDescription.getTargetObjectIdProvider().apply(variableManager); @@ -102,7 +99,6 @@ public Element render() { .toList(); FormElementProps formElementProps = FormElementProps.newFormElementProps(id) - .label(label) .targetObjectId(targetObjectId) .descriptionId(formDescription.getId()) .children(children) diff --git a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/elements/FormElementProps.java b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/elements/FormElementProps.java index 680ce80f68..019ab276b3 100644 --- a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/elements/FormElementProps.java +++ b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/elements/FormElementProps.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2019, 2022 Obeo. + * Copyright (c) 2019, 2024 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 @@ -31,8 +31,6 @@ public final class FormElementProps implements IProps { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -47,10 +45,6 @@ public String getId() { return this.id; } - public String getLabel() { - return this.label; - } - public String getTargetObjectId() { return this.targetObjectId; } @@ -70,8 +64,8 @@ public static Builder newFormElementProps(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label); + String pattern = "{0} '{'id: {1}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id); } /** @@ -83,8 +77,6 @@ public String toString() { public static final class Builder { private String id; - private String label; - private String targetObjectId; private String descriptionId; @@ -95,11 +87,6 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -118,7 +105,6 @@ public Builder children(List children) { public FormElementProps build() { FormElementProps formElementProps = new FormElementProps(); formElementProps.id = Objects.requireNonNull(this.id); - formElementProps.label = Objects.requireNonNull(this.label); formElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); formElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); formElementProps.children = Objects.requireNonNull(this.children); diff --git a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/renderer/FormElementFactory.java b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/renderer/FormElementFactory.java index 923c0af535..0a479581bf 100644 --- a/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/renderer/FormElementFactory.java +++ b/packages/forms/backend/sirius-components-forms/src/main/java/org/eclipse/sirius/components/forms/renderer/FormElementFactory.java @@ -156,7 +156,6 @@ private Object instantiateBarChart(BarChartElementProps props) { List entries = this.getBarChartEntries(props); Builder builder = BarChart.newBarChart(props.getId()) .descriptionId(props.getDescriptionId()) - .label(props.getLabel()) .targetObjectId(props.getTargetObjectId()) .width(props.getWidth()) .height(props.getHeight()) @@ -175,7 +174,6 @@ private Object instantiatePieChart(PieChartElementProps props) { org.eclipse.sirius.components.charts.piechart.PieChart.Builder builder = PieChart.newPieChart(props.getId()) .descriptionId(props.getDescriptionId()) .targetObjectId(props.getTargetObjectId()) - .label(props.getLabel()) .entries(entries); if (props.getStyle() != null) { @@ -216,7 +214,6 @@ private Form instantiateForm(FormElementProps props, List children) { .toList(); return Form.newForm(props.getId()) - .label(props.getLabel()) .targetObjectId(props.getTargetObjectId()) .descriptionId(props.getDescriptionId()) .pages(pages) diff --git a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/api/IGanttCreationService.java b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/api/IGanttCreationService.java index 4130e66e28..3892eecac8 100644 --- a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/api/IGanttCreationService.java +++ b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/api/IGanttCreationService.java @@ -29,8 +29,6 @@ public interface IGanttCreationService { /** * Creates a new gantt diagram using the given parameters. * - * @param label - * The label of the diagram * @param targetObject * The object used as the target * @param ganttDescription @@ -39,7 +37,7 @@ public interface IGanttCreationService { * The editing context * @return A new gantt diagram */ - Gantt create(String label, Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext); + Gantt create(Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext); /** * Refresh an existing gantt. @@ -66,7 +64,7 @@ public interface IGanttCreationService { class NoOp implements IGanttCreationService { @Override - public Gantt create(String label, Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext) { + public Gantt create(Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext) { return null; } diff --git a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/CreateGanttEventHandler.java b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/CreateGanttEventHandler.java index 34ce415a7f..bd032d3827 100644 --- a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/CreateGanttEventHandler.java +++ b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/CreateGanttEventHandler.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; @@ -33,6 +34,7 @@ import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; import org.eclipse.sirius.components.gantt.Gantt; import org.eclipse.sirius.components.gantt.description.GanttDescription; +import org.eclipse.sirius.components.representations.VariableManager; import org.springframework.stereotype.Service; import io.micrometer.core.instrument.Counter; @@ -50,6 +52,8 @@ public class CreateGanttEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IGanttCreationService ganttCreationService; @@ -60,9 +64,10 @@ public class CreateGanttEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreateGanttEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreateGanttEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IGanttCreationService ganttCreationService, IObjectService objectService, ICollaborativeMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.ganttCreationService = Objects.requireNonNull(ganttCreationService); this.objectService = Objects.requireNonNull(objectService); @@ -101,10 +106,16 @@ public void handle(One payloadSink, Many changeDesc GanttDescription ganttDescription = optionalGanttDescription.get(); Object object = optionalObject.get(); - Gantt gantt = this.ganttCreationService.create(createRepresentationInput.representationName(), object, ganttDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(GanttDescription.LABEL, createRepresentationInput.representationName()); + String label = ganttDescription.labelProvider().apply(variableManager); + Gantt gantt = this.ganttCreationService.create(object, ganttDescription, editingContext); + var representationMetadata = new RepresentationMetadata(gantt.getId(), gantt.getKind(), label, gantt.descriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, gantt.targetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, gantt); - var representationMetadata = new RepresentationMetadata(gantt.getId(), gantt.getKind(), gantt.getLabel(), gantt.descriptionId()); + payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/RenameGanttEventHandler.java b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/RenameGanttEventHandler.java index 790d490a33..5c9886a62d 100644 --- a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/RenameGanttEventHandler.java +++ b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/handlers/RenameGanttEventHandler.java @@ -85,7 +85,7 @@ public void handle(One payloadSink, Many changeDesc if (optionalDiagram.isPresent()) { Gantt currentGantt = optionalDiagram.get(); - Gantt renamedGantt = Gantt.newGantt(currentGantt).label(newLabel).build(); + Gantt renamedGantt = Gantt.newGantt(currentGantt).build(); this.representationPersistenceService.save(renameRepresentationInput, editingContext, renamedGantt); payload = new RenameRepresentationSuccessPayload(ganttInput.id(), renamedGantt); diff --git a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/service/GanttCreationService.java b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/service/GanttCreationService.java index ed6ae03772..f4bc25a5f2 100644 --- a/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/service/GanttCreationService.java +++ b/packages/gantt/backend/sirius-components-collaborative-gantt/src/main/java/org/eclipse/sirius/components/collaborative/gantt/service/GanttCreationService.java @@ -61,8 +61,8 @@ public GanttCreationService(IRepresentationDescriptionSearchService representati } @Override - public Gantt create(String label, Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext) { - Gantt newGanttDiagram = this.doRender(label, targetObject, editingContext, ganttDescription, Optional.empty()); + public Gantt create(Object targetObject, GanttDescription ganttDescription, IEditingContext editingContext) { + Gantt newGanttDiagram = this.doRender(targetObject, editingContext, ganttDescription, Optional.empty()); return newGanttDiagram; } @@ -76,17 +76,16 @@ public Optional refresh(IEditingContext editingContext, GanttContext gant if (optionalObject.isPresent() && optionalGanttDescription.isPresent()) { Object object = optionalObject.get(); GanttDescription ganttDescription = optionalGanttDescription.get(); - Gantt gantt = this.doRender(ganttContext.getGantt().getLabel(), object, editingContext, ganttDescription, Optional.of(ganttContext)); + Gantt gantt = this.doRender(object, editingContext, ganttDescription, Optional.of(ganttContext)); return Optional.of(gantt); } return Optional.empty(); } - private Gantt doRender(String label, Object targetObject, IEditingContext editingContext, GanttDescription ganttDescription, Optional optionalGanttContext) { + private Gantt doRender(Object targetObject, IEditingContext editingContext, GanttDescription ganttDescription, Optional optionalGanttContext) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); - variableManager.put(GanttDescription.LABEL, label); variableManager.put(VariableManager.SELF, targetObject); variableManager.put(IEditingContext.EDITING_CONTEXT, editingContext); diff --git a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/Gantt.java b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/Gantt.java index c3bc47bd9f..73a46bb0cd 100644 --- a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/Gantt.java +++ b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/Gantt.java @@ -22,7 +22,7 @@ * * @author lfasani */ -public record Gantt(String id, String descriptionId, String targetObjectId, String label, List tasks, List columns, GanttDateRounding dateRounding) implements IRepresentation { +public record Gantt(String id, String descriptionId, String targetObjectId, List tasks, List columns, GanttDateRounding dateRounding) implements IRepresentation { public static final String KIND = IRepresentation.KIND_PREFIX + "?type=Gantt"; @@ -51,11 +51,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return KIND; @@ -74,8 +69,6 @@ public static final class Builder { private String descriptionId; - private String label; - private List tasks; private List columns; @@ -90,7 +83,6 @@ private Builder(Gantt gantt) { this.id = gantt.getId(); this.targetObjectId = gantt.getTargetObjectId(); this.descriptionId = gantt.getDescriptionId(); - this.label = gantt.getLabel(); this.dateRounding = gantt.dateRounding(); } @@ -104,11 +96,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder tasks(List tasks) { this.tasks = Objects.requireNonNull(tasks); return this; @@ -125,7 +112,7 @@ public Builder dateRounding(GanttDateRounding dateRounding) { } public Gantt build() { - Gantt gantt = new Gantt(this.id, this.descriptionId, this.targetObjectId, this.label, this.tasks, this.columns, this.dateRounding); + Gantt gantt = new Gantt(this.id, this.descriptionId, this.targetObjectId, this.tasks, this.columns, this.dateRounding); return gantt; } } diff --git a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/GanttElementFactory.java b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/GanttElementFactory.java index a6f407a5f9..251445b7f7 100644 --- a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/GanttElementFactory.java +++ b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/GanttElementFactory.java @@ -52,7 +52,7 @@ private Gantt instantiateGantt(GanttElementProps props, List children) { .map(Task.class::cast) .toList(); - return new Gantt(props.id(), props.descriptionId(), props.targetObjectId(), props.label(), tasks, props.columns(), props.dateRounding()); + return new Gantt(props.id(), props.descriptionId(), props.targetObjectId(), tasks, props.columns(), props.dateRounding()); } private Task instantiateTask(TaskElementProps props, List children) { diff --git a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/component/GanttComponent.java b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/component/GanttComponent.java index c2b1dcf222..9d85ad755b 100644 --- a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/component/GanttComponent.java +++ b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/component/GanttComponent.java @@ -56,7 +56,6 @@ public Element render() { String ganttId = optionalPreviousGantt.map(Gantt::getId).orElseGet(() -> UUID.randomUUID().toString()); String targetObjectId = ganttDescription.targetObjectIdProvider().apply(variableManager); - String label = optionalPreviousGantt.map(Gantt::getLabel).orElseGet(() -> ganttDescription.labelProvider().apply(variableManager)); List columns = computeColumn(optionalPreviousGantt); String dateRoundingString = ganttDescription.dateRoundingProvider().apply(variableManager); GanttDateRounding dateRounding = getDateRounding(dateRoundingString); @@ -72,7 +71,7 @@ public Element render() { return new Element(TaskDescriptionComponent.class, taskComponentProps); }).toList(); - GanttElementProps ganttElementProps = new GanttElementProps(ganttId, ganttDescription.getId(), targetObjectId, label, children, columns, dateRounding); + GanttElementProps ganttElementProps = new GanttElementProps(ganttId, ganttDescription.getId(), targetObjectId, children, columns, dateRounding); return new Element(GanttElementProps.TYPE, ganttElementProps); } diff --git a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/elements/GanttElementProps.java b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/elements/GanttElementProps.java index 3159543aa3..d8ec174b9c 100644 --- a/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/elements/GanttElementProps.java +++ b/packages/gantt/backend/sirius-components-gantt/src/main/java/org/eclipse/sirius/components/gantt/renderer/elements/GanttElementProps.java @@ -25,7 +25,7 @@ * * @author lfasani */ -public record GanttElementProps(String id, String descriptionId, String targetObjectId, String label, List children, List columns, GanttDateRounding dateRounding) implements IProps { +public record GanttElementProps(String id, String descriptionId, String targetObjectId, List children, List columns, GanttDateRounding dateRounding) implements IProps { public static final String TYPE = "Gantt"; @@ -33,7 +33,6 @@ public record GanttElementProps(String id, String descriptionId, String targetOb Objects.requireNonNull(id); Objects.requireNonNull(descriptionId); Objects.requireNonNull(targetObjectId); - Objects.requireNonNull(label); Objects.requireNonNull(children); Objects.requireNonNull(columns); Objects.requireNonNull(dateRounding); diff --git a/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/CreatePortalEventHandler.java b/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/CreatePortalEventHandler.java index c6242fb5b7..c7657fadfd 100644 --- a/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/CreatePortalEventHandler.java +++ b/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/CreatePortalEventHandler.java @@ -17,6 +17,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; @@ -49,6 +50,8 @@ public class CreatePortalEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IObjectService objectService; @@ -57,9 +60,10 @@ public class CreatePortalEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreatePortalEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreatePortalEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, IObjectService objectService, ICollaborativePortalMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.objectService = Objects.requireNonNull(objectService); this.messageService = Objects.requireNonNull(messageService); @@ -96,11 +100,13 @@ public void handle(One payloadSink, Many changeDesc VariableManager variableManager = new VariableManager(); variableManager.put(VariableManager.SELF, object); variableManager.put("name", createRepresentationInput.representationName()); + String label = portalDescription.getLabelProvider().apply(variableManager); Portal portal = new PortalRenderer(variableManager, portalDescription).render(); + var representationMetadata = new RepresentationMetadata(portal.getId(), portal.getKind(), label, portal.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, portal.getTargetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, portal); - var representationMetadata = new RepresentationMetadata(portal.getId(), portal.getKind(), portal.getLabel(), portal.getDescriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/RenamePortalEventHandler.java b/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/RenamePortalEventHandler.java index e5a7ad416f..ca3768ecc8 100644 --- a/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/RenamePortalEventHandler.java +++ b/packages/portals/backend/sirius-components-collaborative-portals/src/main/java/org/eclipse/sirius/components/collaborative/portals/handlers/RenamePortalEventHandler.java @@ -70,7 +70,7 @@ public void handle(One payloadSink, Many changeDesc try { if (portalInput instanceof RenamePortalInput renameRepresentationInput) { String newLabel = renameRepresentationInput.newLabel(); - var renamedPortal = Portal.newPortal(context.getCurrentPortal()).label(newLabel).build(); + var renamedPortal = Portal.newPortal(context.getCurrentPortal()).build(); this.representationPersistenceService.save(renameRepresentationInput, context.getEditingContext(), renamedPortal); context.setNextPortal(renamedPortal); diff --git a/packages/portals/backend/sirius-components-collaborative-portals/src/test/java/org/eclipse/sirius/components/collaborative/portals/services/PortalServicesTests.java b/packages/portals/backend/sirius-components-collaborative-portals/src/test/java/org/eclipse/sirius/components/collaborative/portals/services/PortalServicesTests.java index c0b071666b..3aa3b58576 100644 --- a/packages/portals/backend/sirius-components-collaborative-portals/src/test/java/org/eclipse/sirius/components/collaborative/portals/services/PortalServicesTests.java +++ b/packages/portals/backend/sirius-components-collaborative-portals/src/test/java/org/eclipse/sirius/components/collaborative/portals/services/PortalServicesTests.java @@ -66,7 +66,6 @@ public void setup() { public void testReferencesRepresentationOnEmptyPortal() { Portal emptyPortal = Portal.newPortal(PORTAL_ID) .descriptionId(PORTAL_DESCRIPTION_ID) - .label("Empty Portal") .targetObjectId(TARGET_OBJECT_ID) .build(); assertThat(this.services.referencesRepresentation(emptyPortal, null)).isFalse(); @@ -79,7 +78,6 @@ public void testReferencesRepresentationOnSimplePortal() { var representationId = "someRepresentation"; Portal simplePortal = Portal.newPortal(PORTAL_ID) .descriptionId(PORTAL_DESCRIPTION_ID) - .label("Simple Portal") .targetObjectId(TARGET_OBJECT_ID) .views(List.of(PortalView.newPortalView("aView").representationId(representationId).build())) .build(); @@ -129,7 +127,7 @@ public void testChangeLayoutPortal() { @Test public void testPreventDirectLoop() { - Portal portal = Portal.newPortal(PORTAL_ID).descriptionId(PORTAL_DESCRIPTION_ID).label(PORTAL_ID).targetObjectId(TARGET_OBJECT_ID).build(); + Portal portal = Portal.newPortal(PORTAL_ID).descriptionId(PORTAL_DESCRIPTION_ID).targetObjectId(TARGET_OBJECT_ID).build(); IRepresentationSearchService mockSearchService = new IRepresentationSearchService() { @Override public Optional findById(IEditingContext editingContext, String representationId, Class representationClass) { @@ -147,8 +145,8 @@ public boolean existByIdAndKind(String representationId, List kinds) { @Test public void testPreventIndirectLoop() { - Portal portal1 = Portal.newPortal(PORTAL_ID + "_1").descriptionId(PORTAL_DESCRIPTION_ID).label(PORTAL_ID + "_1").targetObjectId(TARGET_OBJECT_ID).build(); - Portal portal2 = Portal.newPortal(PORTAL_ID + "_2").descriptionId(PORTAL_DESCRIPTION_ID).label(PORTAL_ID + "_2").targetObjectId(TARGET_OBJECT_ID).build(); + Portal portal1 = Portal.newPortal(PORTAL_ID + "_1").descriptionId(PORTAL_DESCRIPTION_ID).targetObjectId(TARGET_OBJECT_ID).build(); + Portal portal2 = Portal.newPortal(PORTAL_ID + "_2").descriptionId(PORTAL_DESCRIPTION_ID).targetObjectId(TARGET_OBJECT_ID).build(); Collection portalsRepository = new ArrayList<>(); portalsRepository.add(portal1); @@ -185,7 +183,6 @@ private Portal createSamplePortal(int nbViews) { var layoutData = IntStream.range(0, nbViews).mapToObj(index -> PortalViewLayoutData.newPortalViewLayoutData("view-" + index).x(index).build()).toList(); Portal portal = Portal.newPortal(PORTAL_ID) .descriptionId(PORTAL_DESCRIPTION_ID) - .label("Portal") .targetObjectId(TARGET_OBJECT_ID) .views(views) .layoutData(layoutData) diff --git a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/Portal.java b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/Portal.java index ce0b768922..d04e033863 100644 --- a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/Portal.java +++ b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/Portal.java @@ -35,8 +35,6 @@ public final class Portal implements IRepresentation { private String descriptionId; - private String label; - private String targetObjectId; private List views; @@ -62,11 +60,6 @@ public String getKind() { return this.kind; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getTargetObjectId() { return this.targetObjectId; @@ -87,7 +80,6 @@ public static Builder newPortal(String id) { public static Builder newPortal(Portal portal) { return Portal.newPortal(portal.getId()) .descriptionId(portal.getDescriptionId()) - .label(portal.getLabel()) .targetObjectId(portal.getTargetObjectId()) .views(portal.getViews()) .layoutData(portal.getLayoutData()); @@ -95,8 +87,8 @@ public static Builder newPortal(Portal portal) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, descriptionId: {2}, label: {3}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.label); + String pattern = "{0} '{'id: {1}, descriptionId: {2}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId); } /** @@ -112,8 +104,6 @@ public static final class Builder { private String descriptionId; - private String label; - private String targetObjectId; private List views = List.of(); @@ -129,11 +119,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -154,7 +139,6 @@ public Portal build() { portal.id = Objects.requireNonNull(this.id); portal.kind = Objects.requireNonNull(this.kind); portal.descriptionId = Objects.requireNonNull(this.descriptionId); - portal.label = Objects.requireNonNull(this.label); portal.targetObjectId = Objects.requireNonNull(this.targetObjectId); portal.views = Objects.requireNonNull(this.views); portal.layoutData = Objects.requireNonNull(this.layoutData); diff --git a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/PortalView.java b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/PortalView.java index 30791bde2f..844ca80134 100644 --- a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/PortalView.java +++ b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/PortalView.java @@ -46,10 +46,6 @@ public String toString() { return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.getId(), this.getRepresentationId()); } - public static Builder newPortalView(PortalView portalView) { - return new Builder(portalView.id).representationId(portalView.getRepresentationId()); - } - public static Builder newPortalView(String id) { return new Builder(id); } @@ -67,11 +63,6 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder id(String id) { - this.id = Objects.requireNonNull(id); - return this; - } - public Builder representationId(String representationId) { this.representationId = Objects.requireNonNull(representationId); return this; diff --git a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/renderer/PortalRenderer.java b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/renderer/PortalRenderer.java index a3d6908924..4a3e62e021 100644 --- a/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/renderer/PortalRenderer.java +++ b/packages/portals/backend/sirius-components-portals/src/main/java/org/eclipse/sirius/components/portals/renderer/PortalRenderer.java @@ -36,11 +36,9 @@ public PortalRenderer(VariableManager variableManager, PortalDescription portalD public Portal render() { String id = this.portalDescription.getIdProvider().apply(this.variableManager); - String label = this.portalDescription.getLabelProvider().apply(this.variableManager); String targetObjectId = this.portalDescription.getTargetObjectIdProvider().apply(this.variableManager); return Portal.newPortal(id) - .label(label) .descriptionId(this.portalDescription.getId()) .targetObjectId(targetObjectId) .build(); diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/document/services/api/IUploadDocumentReportProvider.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/document/services/api/IUploadDocumentReportProvider.java index fbe55a66ce..75bbfefcfe 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/document/services/api/IUploadDocumentReportProvider.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/document/services/api/IUploadDocumentReportProvider.java @@ -25,20 +25,4 @@ public interface IUploadDocumentReportProvider { String createReport(Resource resource); - /** - * Implementation which does nothing, used for mocks in unit tests. - * - * @author arichard - */ - class NoOp implements IUploadDocumentReportProvider { - - @Override - public boolean canHandle(Resource resource) { - return false; - } - @Override - public String createReport(Resource resource) { - return ""; - } - } } diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/editingcontext/services/api/IEditingDomainFactory.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/editingcontext/services/api/IEditingDomainFactory.java index 77923c4444..96f2d15dbe 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/editingcontext/services/api/IEditingDomainFactory.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/editingcontext/services/api/IEditingDomainFactory.java @@ -24,16 +24,4 @@ public interface IEditingDomainFactory { AdapterFactoryEditingDomain createEditingDomain(Project project); - /** - * Implementation which does nothing, used for mocks in unit tests. - * - * @author frouene - */ - class NoOp implements IEditingDomainFactory { - - @Override - public AdapterFactoryEditingDomain createEditingDomain(Project project) { - return null; - } - } } diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationMetadataPersistenceService.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationMetadataPersistenceService.java new file mode 100644 index 0000000000..f0a7b8b948 --- /dev/null +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationMetadataPersistenceService.java @@ -0,0 +1,57 @@ +/******************************************************************************* + * Copyright (c) 2024 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 + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.web.application.representation.services; + +import java.util.Objects; + +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; +import org.eclipse.sirius.components.core.api.IEditingContext; +import org.eclipse.sirius.components.events.ICause; +import org.eclipse.sirius.web.application.UUIDParser; +import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.RepresentationMetadata; +import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationMetadataCreationService; +import org.springframework.data.jdbc.core.mapping.AggregateReference; +import org.springframework.stereotype.Service; + +/** + * Used to persist representation metadata. + * + * @author gcoutable + */ +@Service +public class RepresentationMetadataPersistenceService implements IRepresentationMetadataPersistenceService { + + private final IRepresentationMetadataCreationService representationMetadataCreationService; + + public RepresentationMetadataPersistenceService(IRepresentationMetadataCreationService representationMetadataCreationService) { + this.representationMetadataCreationService = Objects.requireNonNull(representationMetadataCreationService); + } + + @Override + public void save(ICause cause, IEditingContext editingContext, org.eclipse.sirius.components.core.RepresentationMetadata representationMetadata, String targetObjectId) { + var optionalProjectId = new UUIDParser().parse(editingContext.getId()); + var optionalRepresentationId = new UUIDParser().parse(representationMetadata.getId()); + if (optionalProjectId.isPresent() && optionalRepresentationId.isPresent()) { + var projectId = optionalProjectId.get(); + var representationId = optionalRepresentationId.get(); + var swRepresentationMetadata = RepresentationMetadata.newRepresentationMetadata(representationId) + .project(AggregateReference.to(projectId)) + .label(representationMetadata.getLabel()) + .kind(representationMetadata.getKind()) + .descriptionId(representationMetadata.getDescriptionId()) + .targetObjectId(targetObjectId) + .build(cause); + this.representationMetadataCreationService.create(swRepresentationMetadata); + } + } +} diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationPersistenceService.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationPersistenceService.java index 81d2ca22f1..88a616419a 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationPersistenceService.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/representation/services/RepresentationPersistenceService.java @@ -28,10 +28,9 @@ import org.eclipse.sirius.components.representations.IRepresentation; import org.eclipse.sirius.web.application.UUIDParser; import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.RepresentationContent; -import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.RepresentationMetadata; import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationContentCreationService; +import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationContentSearchService; import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationContentUpdateService; -import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationMetadataCreationService; import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.services.api.IRepresentationMetadataSearchService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,7 +50,7 @@ public class RepresentationPersistenceService implements IRepresentationPersiste private final IRepresentationMetadataSearchService representationMetadataSearchService; - private final IRepresentationMetadataCreationService representationMetadataCreationService; + private final IRepresentationContentSearchService representationContentSearchService; private final IRepresentationContentCreationService representationContentCreationService; @@ -63,10 +62,9 @@ public class RepresentationPersistenceService implements IRepresentationPersiste private final List migrationParticipants; - public RepresentationPersistenceService(IRepresentationMetadataSearchService representationMetadataSearchService, IRepresentationMetadataCreationService representationMetadataCreationService, - IRepresentationContentCreationService representationContentCreationService, IRepresentationContentUpdateService representationContentUpdateService, ObjectMapper objectMapper, List migrationParticipants) { + public RepresentationPersistenceService(IRepresentationMetadataSearchService representationMetadataSearchService, IRepresentationContentSearchService representationContentSearchService, IRepresentationContentCreationService representationContentCreationService, IRepresentationContentUpdateService representationContentUpdateService, ObjectMapper objectMapper, List migrationParticipants) { this.representationMetadataSearchService = Objects.requireNonNull(representationMetadataSearchService); - this.representationMetadataCreationService = Objects.requireNonNull(representationMetadataCreationService); + this.representationContentSearchService = Objects.requireNonNull(representationContentSearchService); this.representationContentCreationService = Objects.requireNonNull(representationContentCreationService); this.representationContentUpdateService = Objects.requireNonNull(representationContentUpdateService); this.objectMapper = Objects.requireNonNull(objectMapper); @@ -76,29 +74,19 @@ public RepresentationPersistenceService(IRepresentationMetadataSearchService rep @Override @Transactional public void save(ICause cause, IEditingContext editingContext, IRepresentation representation) { - var optionalProjectId = new UUIDParser().parse(editingContext.getId()); var optionalRepresentationId = new UUIDParser().parse(representation.getId()); - if (optionalProjectId.isPresent() && optionalRepresentationId.isPresent()) { - var projectId = optionalProjectId.get(); + if (optionalRepresentationId.isPresent()) { var representationId = optionalRepresentationId.get(); String content = this.toString(representation); - var exists = this.representationMetadataSearchService.existsById(representationId); + var exists = this.representationContentSearchService.contentExistsByRepresentationMetadata(AggregateReference.to(representationId)); if (exists) { var migrationData = this.getLastMigrationData(representation.getKind()); this.representationContentUpdateService.updateContentByRepresentationIdWithMigrationData(cause, representationId, content, migrationData.lastMigrationPerformed(), migrationData.migrationVersion()); } else { var migrationData = this.getInitialMigrationData(representation.getKind()); - var representationMetadata = RepresentationMetadata.newRepresentationMetadata(representationId) - .project(AggregateReference.to(projectId)) - .label(representation.getLabel()) - .kind(representation.getKind()) - .descriptionId(representation.getDescriptionId()) - .targetObjectId(representation.getTargetObjectId()) - .build(cause); - var representationContent = RepresentationContent.newRepresentationContent(UUID.randomUUID()) .representationMetadata(AggregateReference.to(representationId)) .content(content) @@ -106,7 +94,6 @@ public void save(ICause cause, IEditingContext editingContext, IRepresentation r .migrationVersion(migrationData.migrationVersion()) .build(cause); - this.representationMetadataCreationService.create(representationMetadata); this.representationContentCreationService.create(representationContent); } } diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializer.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializer.java index b30eaed9ba..3bacdc6cdf 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializer.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializer.java @@ -22,6 +22,7 @@ import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; import org.eclipse.sirius.components.core.RepresentationMetadata; @@ -31,6 +32,7 @@ import org.eclipse.sirius.components.diagrams.description.DiagramDescription; import org.eclipse.sirius.components.emf.services.api.IEMFEditingContext; import org.eclipse.sirius.components.events.ICause; +import org.eclipse.sirius.components.representations.VariableManager; import org.eclipse.sirius.web.application.UUIDParser; import org.eclipse.sirius.web.application.project.services.api.IProjectTemplateInitializer; import org.eclipse.sirius.web.application.studio.services.api.IDefaultDomainResourceProvider; @@ -59,17 +61,21 @@ public class StudioProjectTemplateInitializer implements IProjectTemplateInitial private final IDiagramCreationService diagramCreationService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final IDomainDiagramDescriptionProvider domainDiagramDescriptionProvider; - public StudioProjectTemplateInitializer(IDomainNameProvider domainNameProvider, IDefaultDomainResourceProvider defaultDomainResourceProvider, IDefaultViewResourceProvider defaultViewResourceProvider, IRepresentationDescriptionSearchService representationDescriptionSearchService, IDiagramCreationService diagramCreationService, IRepresentationPersistenceService representationPersistenceService, IDomainDiagramDescriptionProvider domainDiagramDescriptionProvider) { + public StudioProjectTemplateInitializer(IDomainNameProvider domainNameProvider, IDefaultDomainResourceProvider defaultDomainResourceProvider, IDefaultViewResourceProvider defaultViewResourceProvider, + IDomainDiagramDescriptionProvider domainDiagramDescriptionProvider, StudioProjectTemplateInitializerParameters studioProjectTemplateInitializerParameters) { this.domainNameProvider = Objects.requireNonNull(domainNameProvider); this.defaultDomainResourceProvider = Objects.requireNonNull(defaultDomainResourceProvider); this.defaultViewResourceProvider = Objects.requireNonNull(defaultViewResourceProvider); - this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); - this.diagramCreationService = Objects.requireNonNull(diagramCreationService); - this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); + this.representationDescriptionSearchService = studioProjectTemplateInitializerParameters.representationDescriptionSearchService(); + this.diagramCreationService = studioProjectTemplateInitializerParameters.diagramCreationService(); + this.representationMetadataPersistenceService = studioProjectTemplateInitializerParameters.representationMetadataPersistenceService(); + this.representationPersistenceService = studioProjectTemplateInitializerParameters.representationPersistenceService(); this.domainDiagramDescriptionProvider = Objects.requireNonNull(domainDiagramDescriptionProvider); } @@ -105,10 +111,17 @@ private Optional createStudio(ICause cause, IEditingCont DiagramDescription domainDiagramDescription = optionalDomainDiagramDescription.get(); Object semanticTarget = domainResource.getContents().get(0); - Diagram diagram = this.diagramCreationService.create(domainDiagramDescription.getLabel(), semanticTarget, domainDiagramDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, semanticTarget); + variableManager.put(DiagramDescription.LABEL, domainDiagramDescription.getLabel()); + String label = domainDiagramDescription.getLabelProvider().apply(variableManager); + + Diagram diagram = this.diagramCreationService.create(semanticTarget, domainDiagramDescription, editingContext); + var representationMetadata = new RepresentationMetadata(diagram.getId(), diagram.getKind(), label, diagram.getDescriptionId()); + this.representationMetadataPersistenceService.save(cause, editingContext, representationMetadata, diagram.getTargetObjectId()); this.representationPersistenceService.save(cause, editingContext, diagram); - result = Optional.of(new RepresentationMetadata(diagram.getId(), diagram.getKind(), diagram.getLabel(), diagram.getDescriptionId())); + result = Optional.of(representationMetadata); } return result; diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializerParameters.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializerParameters.java new file mode 100644 index 0000000000..68c1281182 --- /dev/null +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/studio/services/StudioProjectTemplateInitializerParameters.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright (c) 2024 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 + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.web.application.studio.services; + +import java.util.Objects; + +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; +import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; +import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; +import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; +import org.springframework.stereotype.Service; + +/** + * Bundles the bean dependencies that {@link StudioProjectTemplateInitializer} needs into a single object for convenience. + * + * @author gcoutable + */ +@Service +public record StudioProjectTemplateInitializerParameters(IRepresentationDescriptionSearchService representationDescriptionSearchService, IDiagramCreationService diagramCreationService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService) { + + public StudioProjectTemplateInitializerParameters { + Objects.requireNonNull(representationDescriptionSearchService); + Objects.requireNonNull(diagramCreationService); + Objects.requireNonNull(representationMetadataPersistenceService); + Objects.requireNonNull(representationPersistenceService); + } +} diff --git a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/views/representations/services/RepresentationsFormDescriptionProvider.java b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/views/representations/services/RepresentationsFormDescriptionProvider.java index 947c5aa219..861a69d70c 100644 --- a/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/views/representations/services/RepresentationsFormDescriptionProvider.java +++ b/packages/sirius-web/backend/sirius-web-application/src/main/java/org/eclipse/sirius/web/application/views/representations/services/RepresentationsFormDescriptionProvider.java @@ -163,7 +163,7 @@ private GroupDescription getGroupDescription() { TreeDescription treeDescription = TreeDescription.newTreeDescription("PortalContentsTree") .idProvider(new WidgetIdProvider()) .targetObjectIdProvider(this::getTargetObjectId) - .labelProvider(variableManager -> variableManager.get(VariableManager.SELF, Portal.class).map(Portal::getLabel).orElse("Portal") + " contents") + .labelProvider(variableManager -> variableManager.get("label", String.class).orElse("Portal") + " contents") .iconURLProvider(variableManager -> List.of()) .childrenProvider(this::getChildren) .nodeIdProvider(this::getNodeId) diff --git a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/repositories/IRepresentationContentRepository.java b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/repositories/IRepresentationContentRepository.java index 20c196dbfc..93e5d7f779 100644 --- a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/repositories/IRepresentationContentRepository.java +++ b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/repositories/IRepresentationContentRepository.java @@ -36,4 +36,11 @@ public interface IRepresentationContentRepository extends ListPagingAndSortingRe """) Optional findContentByRepresentationMetadataId(UUID representationMetadataId); + @Query(""" + SELECT CASE WHEN COUNT(*) > 0 THEN true ELSE false END + FROM representation_content representationContent + WHERE representationContent.representation_metadata_id = :representationMetadataId + """) + boolean contentExistsByRepresentationMetadataId(UUID representationMetadataId); + } diff --git a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/RepresentationContentSearchService.java b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/RepresentationContentSearchService.java index edbeb39711..c1cdc3b8da 100644 --- a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/RepresentationContentSearchService.java +++ b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/RepresentationContentSearchService.java @@ -42,4 +42,9 @@ public RepresentationContentSearchService(IRepresentationContentRepository repre public Optional findContentByRepresentationMetadata(AggregateReference representationMetadata) { return this.representationContentRepository.findContentByRepresentationMetadataId(representationMetadata.getId()); } + + @Override + public boolean contentExistsByRepresentationMetadata(AggregateReference representationMetadata) { + return this.representationContentRepository.contentExistsByRepresentationMetadataId(representationMetadata.getId()); + } } diff --git a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/api/IRepresentationContentSearchService.java b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/api/IRepresentationContentSearchService.java index 115efaa8d0..d33536700f 100644 --- a/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/api/IRepresentationContentSearchService.java +++ b/packages/sirius-web/backend/sirius-web-domain/src/main/java/org/eclipse/sirius/web/domain/boundedcontexts/representationdata/services/api/IRepresentationContentSearchService.java @@ -28,4 +28,6 @@ public interface IRepresentationContentSearchService { Optional findContentByRepresentationMetadata(AggregateReference representationMetadata); + + boolean contentExistsByRepresentationMetadata(AggregateReference representationMetadata); } diff --git a/packages/sirius-web/backend/sirius-web-papaya/src/main/java/org/eclipse/sirius/web/papaya/services/PapayaLabelProvider.java b/packages/sirius-web/backend/sirius-web-papaya/src/main/java/org/eclipse/sirius/web/papaya/services/PapayaLabelProvider.java index 2006daaae3..1c19a14467 100644 --- a/packages/sirius-web/backend/sirius-web-papaya/src/main/java/org/eclipse/sirius/web/papaya/services/PapayaLabelProvider.java +++ b/packages/sirius-web/backend/sirius-web-papaya/src/main/java/org/eclipse/sirius/web/papaya/services/PapayaLabelProvider.java @@ -21,6 +21,7 @@ import org.eclipse.emf.edit.provider.IItemStyledLabelProvider; import org.eclipse.sirius.components.collaborative.api.IRepresentationImageProvider; import org.eclipse.sirius.components.core.api.ILabelServiceDelegate; +import org.eclipse.sirius.components.core.api.IRepresentationMetadataProvider; import org.eclipse.sirius.components.core.api.labels.StyledString; import org.eclipse.sirius.components.emf.services.DefaultLabelService; import org.eclipse.sirius.components.emf.services.LabelFeatureProviderRegistry; @@ -39,8 +40,8 @@ public class PapayaLabelProvider extends DefaultLabelService implements ILabelSe private final IStyledStringConverter styledStringConverter; - public PapayaLabelProvider(LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, List representationImageProviders, IStyledStringConverter styledStringConverter) { - super(labelFeatureProviderRegistry, composedAdapterFactory, representationImageProviders); + public PapayaLabelProvider(List representationMetadataProviders, LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, List representationImageProviders, IStyledStringConverter styledStringConverter) { + super(representationMetadataProviders, labelFeatureProviderRegistry, composedAdapterFactory, representationImageProviders); this.styledStringConverter = Objects.requireNonNull(styledStringConverter); } diff --git a/packages/tests/backend/sirius-components-graphql-tests/src/main/java/org/eclipse/sirius/components/graphql/tests/RepresentationMetadataQueryRunner.java b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationMetadataQueryRunner.java similarity index 97% rename from packages/tests/backend/sirius-components-graphql-tests/src/main/java/org/eclipse/sirius/components/graphql/tests/RepresentationMetadataQueryRunner.java rename to packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationMetadataQueryRunner.java index eaf2462792..328408fc0a 100644 --- a/packages/tests/backend/sirius-components-graphql-tests/src/main/java/org/eclipse/sirius/components/graphql/tests/RepresentationMetadataQueryRunner.java +++ b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationMetadataQueryRunner.java @@ -10,7 +10,7 @@ * Contributors: * Obeo - initial API and implementation *******************************************************************************/ -package org.eclipse.sirius.components.graphql.tests; +package org.eclipse.sirius.web.tests.graphql; import java.util.Map; import java.util.Objects; diff --git a/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationsMetadataQueryRunner.java b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationsMetadataQueryRunner.java new file mode 100644 index 0000000000..23eab8b981 --- /dev/null +++ b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/graphql/RepresentationsMetadataQueryRunner.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright (c) 2024 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 + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.web.tests.graphql; + +import java.util.Map; +import java.util.Objects; + +import org.eclipse.sirius.components.graphql.tests.api.IGraphQLRequestor; +import org.eclipse.sirius.components.graphql.tests.api.IQueryRunner; +import org.springframework.stereotype.Service; + +/** + * Used to get the many representation metadata with the GraphQL API. + * + * @author gdaniel + */ +@Service +public class RepresentationsMetadataQueryRunner implements IQueryRunner { + + private static final String REPRESENTATIONS_METADATA_QUERY = """ + query getRepresentationMetadata($editingContextId: ID!, $representationIds: [ID!]) { + viewer { + editingContext(editingContextId: $editingContextId) { + representations(representationIds: $representationIds) { + edges { + node { + id + label + kind + } + } + } + } + } + } + """; + + private final IGraphQLRequestor graphQLRequestor; + + public RepresentationsMetadataQueryRunner(IGraphQLRequestor graphQLRequestor) { + this.graphQLRequestor = Objects.requireNonNull(graphQLRequestor); + } + + @Override + public String run(Map variables) { + return this.graphQLRequestor.execute(REPRESENTATIONS_METADATA_QUERY, variables); + } + +} diff --git a/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/services/representation/RepresentationMetadataLabelVerifier.java b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/services/representation/RepresentationMetadataLabelVerifier.java new file mode 100644 index 0000000000..b1c3f0182a --- /dev/null +++ b/packages/sirius-web/backend/sirius-web-tests/src/main/java/org/eclipse/sirius/web/tests/services/representation/RepresentationMetadataLabelVerifier.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2024 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 + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Obeo - initial API and implementation + *******************************************************************************/ +package org.eclipse.sirius.web.tests.services.representation; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.fail; + +import com.jayway.jsonpath.JsonPath; + +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.UUID; +import java.util.function.Consumer; + +import org.eclipse.sirius.components.representations.IRepresentation; +import org.eclipse.sirius.web.application.UUIDParser; +import org.eclipse.sirius.web.tests.graphql.RepresentationMetadataQueryRunner; +import org.springframework.stereotype.Service; + +/** + * Used to verify the label of a representation thanks to its metadata. + * + * @author gcoutable + */ +@Service +public class RepresentationMetadataLabelVerifier { + + private final RepresentationMetadataQueryRunner representationMetadataQueryRunner; + + public RepresentationMetadataLabelVerifier(RepresentationMetadataQueryRunner representationMetadataQueryRunner) { + this.representationMetadataQueryRunner = Objects.requireNonNull(representationMetadataQueryRunner); + } + + public void verify(UUID editingContextId, IRepresentation representation, String expectedRepresentationName, String errorIfMissing) { + Consumer> checkRepresentationMetadataLabel = (variables) -> { + var result = this.representationMetadataQueryRunner.run(variables); + + String label = JsonPath.read(result, "$.data.viewer.editingContext.representation.label"); + assertThat(label).isEqualTo(expectedRepresentationName); + }; + + Optional.of(representation) + .map(IRepresentation::getId) + .flatMap(new UUIDParser()::parse) + .ifPresentOrElse(representationId -> { + Map getRepresentationMetadataVariables = Map.of("editingContextId", editingContextId, "representationId", representationId); + checkRepresentationMetadataLabel.accept(getRepresentationMetadataVariables); + }, () -> fail(errorIfMissing)); + } +} diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TextfieldControllerTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TextfieldControllerTests.java index 9e2c2cc140..e1ddf6b845 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TextfieldControllerTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TextfieldControllerTests.java @@ -26,6 +26,7 @@ import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; import org.eclipse.sirius.components.collaborative.forms.dto.EditTextfieldInput; import org.eclipse.sirius.components.collaborative.forms.dto.FormRefreshedEventPayload; +import org.eclipse.sirius.components.core.api.ErrorPayload; import org.eclipse.sirius.components.core.api.SuccessPayload; import org.eclipse.sirius.components.forms.Textfield; import org.eclipse.sirius.components.forms.tests.graphql.EditTextfieldMutationRunner; @@ -161,10 +162,19 @@ public void givenTextfieldWidgetWhenItIsEditedThenItsValueIsUpdated() { .isReadOnly(); }, () -> fail("Missing form")); + Runnable tryEditReadOnlyTextField = () -> { + var input = new EditTextfieldInput(UUID.randomUUID(), StudioIdentifiers.SAMPLE_STUDIO_PROJECT.toString(), formId.get(), textfieldId.get(), "buck"); + var result = this.editTextfieldMutationRunner.run(input); + + String typename = JsonPath.read(result, "$.data.editTextfield.__typename"); + assertThat(typename).isEqualTo(ErrorPayload.class.getSimpleName()); + }; + StepVerifier.create(flux) .consumeNextWith(initialFormContentConsumer) .then(editTextfield) .consumeNextWith(updatedFormContentConsumer) + .then(tryEditReadOnlyTextField) .thenCancel() .verify(Duration.ofSeconds(10)); } diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TitleExpressionControllerTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TitleExpressionControllerTests.java index 832567c44b..5ff93602e0 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TitleExpressionControllerTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/forms/TitleExpressionControllerTests.java @@ -13,7 +13,6 @@ package org.eclipse.sirius.web.application.controllers.forms; import static org.assertj.core.api.Assertions.fail; -import static org.eclipse.sirius.components.forms.tests.assertions.FormAssertions.assertThat; import java.time.Duration; import java.util.Optional; @@ -27,6 +26,7 @@ import org.eclipse.sirius.web.services.forms.FormWithTitleExpressionDescriptionProvider; import org.eclipse.sirius.web.tests.services.api.IGivenCreatedFormSubscription; import org.eclipse.sirius.web.tests.services.api.IGivenInitialServerState; +import org.eclipse.sirius.web.tests.services.representation.RepresentationMetadataLabelVerifier; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -54,6 +54,9 @@ public class TitleExpressionControllerTests extends AbstractIntegrationTests { @Autowired private IGivenCreatedFormSubscription givenCreatedFormSubscription; + @Autowired + private RepresentationMetadataLabelVerifier representationMetadataLabelVerifier; + @Autowired private FormWithTitleExpressionDescriptionProvider formWithTitleExpressionDescriptionProvider; @@ -85,9 +88,10 @@ public void givenFormWithTitleExpressionWhenItIsCreatedThenItsLabelIsInitialized .map(FormRefreshedEventPayload.class::cast) .map(FormRefreshedEventPayload::form) .ifPresentOrElse(form -> { - assertThat(form).hasLabel("FormWithTitleExpression"); + this.representationMetadataLabelVerifier.verify(PapayaIdentifiers.PAPAYA_PROJECT, form, "FormWithTitleExpression", "Missing form id"); }, () -> fail("Missing form")); + StepVerifier.create(flux) .consumeNextWith(initialFormContentConsumer) .thenCancel() diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/hierarchy/HierarchyLifecycleControllerTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/hierarchy/HierarchyLifecycleControllerTests.java index 3000415567..f47a754aa5 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/hierarchy/HierarchyLifecycleControllerTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/hierarchy/HierarchyLifecycleControllerTests.java @@ -28,6 +28,7 @@ import org.eclipse.sirius.web.data.TestIdentifiers; import org.eclipse.sirius.web.services.hierarchy.GivenCreatedHierarchySubscription; import org.eclipse.sirius.web.services.hierarchy.HierarchyDescriptionProvider; +import org.eclipse.sirius.web.tests.services.representation.RepresentationMetadataLabelVerifier; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -53,6 +54,9 @@ public class HierarchyLifecycleControllerTests extends AbstractIntegrationTests @Autowired private GivenCreatedHierarchySubscription givenCreatedHierarchySubscription; + @Autowired + private RepresentationMetadataLabelVerifier representationMetadataLabelVerifier; + @BeforeEach public void beforeEach() { this.editingContextEventProcessorRegistry.getEditingContextEventProcessors().stream() @@ -74,7 +78,7 @@ public void givenAnArbitrarySemanticElementThenWeCanCreateHierarchyOnIt() { .map(HierarchyRefreshedEventPayload.class::cast) .map(HierarchyRefreshedEventPayload::hierarchy) .ifPresentOrElse(hierarchy -> { - assertThat(hierarchy.getLabel()).isEqualTo("Sample Hierarchy"); + this.representationMetadataLabelVerifier.verify(TestIdentifiers.ECORE_SAMPLE_PROJECT, hierarchy, "Sample Hierarchy", "Missing hierarchy id"); assertThat(hierarchy.getChildNodes()).isEmpty(); }, () -> fail("Missing hierarchy")); }; diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/portal/PortalControllerIntegrationTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/portal/PortalControllerIntegrationTests.java index de95879ac0..eb8476e5d6 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/portal/PortalControllerIntegrationTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/portal/PortalControllerIntegrationTests.java @@ -50,6 +50,7 @@ import org.eclipse.sirius.web.domain.boundedcontexts.representationdata.repositories.IRepresentationContentRepository; import org.eclipse.sirius.web.tests.services.api.IGivenCommittedTransaction; import org.eclipse.sirius.web.tests.services.portals.GivenCreatedPortalSubscription; +import org.eclipse.sirius.web.tests.services.representation.RepresentationMetadataLabelVerifier; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -116,6 +117,9 @@ subscription portalEvent($input: PortalEventInput!) { @Autowired private RemovePortalViewMutationRunner removePortalViewMutationRunner; + @Autowired + private RepresentationMetadataLabelVerifier representationMetadataLabelVerifier; + @Autowired private IGraphQLRequestor graphQLRequestor; @@ -221,7 +225,7 @@ public void addRepresentationToNewCreatedPortal() { .map(PortalRefreshedEventPayload.class::cast) .map(PortalRefreshedEventPayload::portal) .ifPresentOrElse(portal -> { - assertThat(portal.getLabel()).isEqualTo(SAMPLE_PORTAL); + this.representationMetadataLabelVerifier.verify(TestIdentifiers.ECORE_SAMPLE_PROJECT, portal, SAMPLE_PORTAL, "Missing portal id"); assertThat(portal.getViews()).isEmpty(); assertThat(portal.getLayoutData()).isEmpty(); portalId.set(portal.getId()); @@ -274,7 +278,7 @@ public void givenAnArbitrarySemanticElementWhenCreatingPortalOnItThenEmptyPortal .map(PortalRefreshedEventPayload.class::cast) .map(PortalRefreshedEventPayload::portal) .ifPresentOrElse(portal -> { - assertThat(portal.getLabel()).isEqualTo("Sample Portal"); + this.representationMetadataLabelVerifier.verify(TestIdentifiers.ECORE_SAMPLE_PROJECT, portal, SAMPLE_PORTAL, "Missing portal id"); assertThat(portal.getViews()).isEmpty(); assertThat(portal.getLayoutData()).isEmpty(); }, () -> fail("Missing Portal")); @@ -306,7 +310,7 @@ public void givenAnArbitrarySemanticElementWhenCreatingAPortalThenWeCanMoveAnExi .map(PortalRefreshedEventPayload::portal) .ifPresentOrElse(portal -> { representationId.set(portal.getId()); - assertThat(portal.getLabel()).isEqualTo("Sample Portal"); + this.representationMetadataLabelVerifier.verify(TestIdentifiers.ECORE_SAMPLE_PROJECT, portal, SAMPLE_PORTAL, "Missing portal id"); assertThat(portal.getViews()).isEmpty(); assertThat(portal.getLayoutData()).isEmpty(); }, () -> fail("Missing Portal")); @@ -316,7 +320,7 @@ public void givenAnArbitrarySemanticElementWhenCreatingAPortalThenWeCanMoveAnExi .map(PortalRefreshedEventPayload.class::cast) .map(PortalRefreshedEventPayload::portal) .ifPresentOrElse(portal -> { - assertThat(portal.getLabel()).isEqualTo("Sample Portal"); + this.representationMetadataLabelVerifier.verify(TestIdentifiers.ECORE_SAMPLE_PROJECT, portal, SAMPLE_PORTAL, "Missing portal id"); assertThat(portal.getViews().size()).isEqualTo(1); assertThat(portal.getLayoutData().size()).isEqualTo(1); }, () -> fail("Missing Portal")); diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/representations/RepresentationControllerIntegrationTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/representations/RepresentationControllerIntegrationTests.java index d59f97fb7d..99dc093abf 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/representations/RepresentationControllerIntegrationTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/application/controllers/representations/RepresentationControllerIntegrationTests.java @@ -21,10 +21,11 @@ import org.eclipse.sirius.components.graphql.tests.AllRepresentationDescriptionsQueryRunner; import org.eclipse.sirius.components.graphql.tests.AllRepresentationMetadataQueryRunner; -import org.eclipse.sirius.components.graphql.tests.RepresentationMetadataQueryRunner; import org.eclipse.sirius.web.AbstractIntegrationTests; import org.eclipse.sirius.web.data.TestIdentifiers; import org.eclipse.sirius.web.services.api.IDomainEventCollector; +import org.eclipse.sirius.web.tests.graphql.RepresentationMetadataQueryRunner; +import org.eclipse.sirius.web.tests.graphql.RepresentationsMetadataQueryRunner; import org.eclipse.sirius.web.tests.services.api.IGivenInitialServerState; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -57,6 +58,9 @@ public class RepresentationControllerIntegrationTests extends AbstractIntegratio @Autowired private AllRepresentationDescriptionsQueryRunner allRepresentationDescriptionsQueryRunner; + @Autowired + private RepresentationsMetadataQueryRunner representationsMetadataQueryRunner; + @Autowired private IDomainEventCollector domainEventCollector; @@ -140,6 +144,19 @@ public void givenEditingContextIdWhenQueryIsPerformedThenAllTheRepresentationMet .contains(TestIdentifiers.EPACKAGE_EMPTY_PORTAL_REPRESENTATION.toString()); } + @Test + @DisplayName("Given many representation ids, when the query to retrieve many representation metadata, then representation metadata are returned") + @Sql(scripts = { "/scripts/initialize.sql" }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) + @Sql(scripts = { "/scripts/cleanup.sql" }, executionPhase = Sql.ExecutionPhase.AFTER_TEST_METHOD, config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) + public void getManyRepresentationMetadata() { + Map variables = Map.of("editingContextId", TestIdentifiers.ECORE_SAMPLE_PROJECT.toString(), + "representationIds", List.of(TestIdentifiers.EPACKAGE_PORTAL_REPRESENTATION, TestIdentifiers.EPACKAGE_EMPTY_PORTAL_REPRESENTATION)); + var result = this.representationsMetadataQueryRunner.run(variables); + + List representationIds = JsonPath.read(result, "$.data.viewer.editingContext.representations.edges[*].node.label"); + assertThat(representationIds).allMatch("Portal"::equals); + } + @Test @DisplayName("Given an object id, when a query is performed, then all the representation descriptions are returned") @Sql(scripts = { "/scripts/initialize.sql" }, executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD) diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestCreateRepresentationEventHandler.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestCreateRepresentationEventHandler.java index a6a938fe08..badea060d2 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestCreateRepresentationEventHandler.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestCreateRepresentationEventHandler.java @@ -17,6 +17,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationSuccessPayload; @@ -36,9 +37,12 @@ @Service public class TestCreateRepresentationEventHandler implements IEditingContextEventHandler { + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; - public TestCreateRepresentationEventHandler(IRepresentationPersistenceService representationPersistenceService) { + public TestCreateRepresentationEventHandler(IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService) { + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); } @@ -51,9 +55,10 @@ public boolean canHandle(IEditingContext editingContext, IInput input) { public void handle(Sinks.One payloadSink, Sinks.Many changeDescriptionSink, IEditingContext editingContext, IInput input) { var test = new TestRepresentation(); + var representationMetadata = new RepresentationMetadata(test.getId(), test.getKind(), "Test", test.getDescriptionId()); + this.representationMetadataPersistenceService.save(input, editingContext, representationMetadata, test.getTargetObjectId()); this.representationPersistenceService.save(input, editingContext, test); - var representationMetadata = new RepresentationMetadata(test.getId(), test.getKind(), test.getLabel(), test.getDescriptionId()); payloadSink.tryEmitValue(new CreateRepresentationSuccessPayload(input.id(), representationMetadata)); changeDescriptionSink.tryEmitNext(new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input)); } diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestRepresentation.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestRepresentation.java index 75e53faf06..6beecd44ad 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestRepresentation.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/TestRepresentation.java @@ -34,11 +34,6 @@ public String getDescriptionId() { return new TestRepresentationDescription().getId(); } - @Override - public String getLabel() { - return "Test"; - } - @Override public String getKind() { return IRepresentation.KIND_PREFIX + this.getDescriptionId(); diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/hierarchy/HierarchyDescriptionProvider.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/hierarchy/HierarchyDescriptionProvider.java index 14bd380ffd..0cbf436328 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/hierarchy/HierarchyDescriptionProvider.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/hierarchy/HierarchyDescriptionProvider.java @@ -61,8 +61,7 @@ private IRepresentationDescription createHierarchyDescription() { .map(this.objectService::getId) .orElse(null); - Function labelProvider = variableManager -> variableManager.get(VariableManager.SELF, Object.class) - .map(this.objectService::getLabel) + Function labelProvider = variableManager -> variableManager.get(HierarchyDescription.LABEL, String.class) .orElse(null); Function> childSemanticElementsProvider = variableManager -> variableManager.get(VariableManager.SELF, EObject.class) @@ -76,4 +75,4 @@ private IRepresentationDescription createHierarchyDescription() { // @formatter:on return new HierarchyDescription(HIERARCHY_DESCRIPTION_ID, "Sample Hierarchy Description", KIND, canCreatePredicate, targetObjectIdProvider, labelProvider, childSemanticElementsProvider); } -} \ No newline at end of file +} diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/migration/MigrationParticipantOrderTests.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/migration/MigrationParticipantOrderTests.java index 6a98e0ee59..6b583c6364 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/migration/MigrationParticipantOrderTests.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/migration/MigrationParticipantOrderTests.java @@ -18,8 +18,10 @@ import java.util.UUID; import org.eclipse.sirius.components.charts.hierarchy.Hierarchy; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationSearchService; +import org.eclipse.sirius.components.core.RepresentationMetadata; import org.eclipse.sirius.components.core.api.IEditingContextSearchService; import org.eclipse.sirius.components.emf.ResourceMetadataAdapter; import org.eclipse.sirius.web.AbstractIntegrationTests; @@ -35,6 +37,7 @@ import org.springframework.data.jdbc.core.mapping.AggregateReference; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.SqlConfig; +import org.springframework.test.context.transaction.TestTransaction; import org.springframework.transaction.annotation.Transactional; /** @@ -59,6 +62,9 @@ public class MigrationParticipantOrderTests extends AbstractIntegrationTests { @Autowired private IRepresentationSearchService representationSearchService; + @Autowired + private IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + @Autowired private IRepresentationPersistenceService representationPersistenceService; @@ -99,10 +105,16 @@ public void testRepresentationMigrationParticipantOnCreatedRepresentation() { var optionalRepresentation = this.representationSearchService.findById(optionalEditingContext.get(), MigrationIdentifiers.MIGRATION_STUDIO_DIAGRAM_HIERARCHY.toString(), Hierarchy.class); assertThat(optionalRepresentation).isPresent(); var representation = optionalRepresentation.get(); - var newHierarchy = new Hierarchy(UUID.randomUUID().toString(), representation.getDescriptionId(), representation.getTargetObjectId(), representation.getLabel(), representation.getKind(), representation.getChildNodes()); + var newHierarchy = new Hierarchy(UUID.randomUUID().toString(), representation.getDescriptionId(), representation.getTargetObjectId(), representation.getKind(), representation.getChildNodes()); + var representationMetadata = new RepresentationMetadata(newHierarchy.getId(), newHierarchy.getKind(), "new Hierarchy", newHierarchy.getDescriptionId()); + representationMetadataPersistenceService.save(null, optionalEditingContext.get(), representationMetadata, newHierarchy.getTargetObjectId()); this.representationPersistenceService.save(null, optionalEditingContext.get(), newHierarchy); + TestTransaction.flagForCommit(); + TestTransaction.end(); + TestTransaction.start(); + var optionalUpdatedRepresentationContent = this.representationContentSearchService.findContentByRepresentationMetadata(AggregateReference.to(UUID.fromString(newHierarchy.getId()))); assertThat(optionalUpdatedRepresentationContent).isPresent(); var updatedRepresentationContent = optionalUpdatedRepresentationContent.get(); @@ -133,4 +145,4 @@ public void testMigrationParticipantExecutionOrder() { assertThat(migrationData.lastMigrationPerformed()).isEqualTo(""); } } -} \ No newline at end of file +} diff --git a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/tree/EcoreSampleStyledLabelService.java b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/tree/EcoreSampleStyledLabelService.java index 0097a86aba..7d889f8289 100644 --- a/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/tree/EcoreSampleStyledLabelService.java +++ b/packages/sirius-web/backend/sirius-web/src/test/java/org/eclipse/sirius/web/services/tree/EcoreSampleStyledLabelService.java @@ -17,7 +17,9 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.sirius.components.collaborative.api.IRepresentationImageProvider; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.core.api.ILabelServiceDelegate; +import org.eclipse.sirius.components.core.api.IRepresentationMetadataProvider; import org.eclipse.sirius.components.core.api.labels.StyledString; import org.eclipse.sirius.components.core.api.labels.StyledStringFragment; import org.eclipse.sirius.components.core.api.labels.StyledStringFragmentStyle; @@ -35,8 +37,8 @@ public class EcoreSampleStyledLabelService extends DefaultLabelService implement private static final String NAME = "name"; - public EcoreSampleStyledLabelService(LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, List representationImageProviders) { - super(labelFeatureProviderRegistry, composedAdapterFactory, representationImageProviders); + public EcoreSampleStyledLabelService(List representationMetadataProviders, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, LabelFeatureProviderRegistry labelFeatureProviderRegistry, ComposedAdapterFactory composedAdapterFactory, List representationImageProviders) { + super(representationMetadataProviders, labelFeatureProviderRegistry, composedAdapterFactory, representationImageProviders); } @Override @@ -61,4 +63,4 @@ public StyledString getStyledLabel(Object object) { } return StyledString.of(""); } -} \ No newline at end of file +} diff --git a/packages/starters/backend/sirius-components-flow-starter/src/main/java/org/eclipse/sirius/components/flow/starter/services/FlowProjectTemplatesInitializer.java b/packages/starters/backend/sirius-components-flow-starter/src/main/java/org/eclipse/sirius/components/flow/starter/services/FlowProjectTemplatesInitializer.java index b938bc97b1..8c79de25e4 100644 --- a/packages/starters/backend/sirius-components-flow-starter/src/main/java/org/eclipse/sirius/components/flow/starter/services/FlowProjectTemplatesInitializer.java +++ b/packages/starters/backend/sirius-components-flow-starter/src/main/java/org/eclipse/sirius/components/flow/starter/services/FlowProjectTemplatesInitializer.java @@ -24,6 +24,7 @@ import java.util.Optional; import java.util.UUID; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.diagrams.api.IDiagramCreationService; import org.eclipse.sirius.components.core.RepresentationMetadata; @@ -35,6 +36,7 @@ import org.eclipse.sirius.components.emf.services.JSONResourceFactory; import org.eclipse.sirius.components.emf.services.api.IEMFEditingContext; import org.eclipse.sirius.components.events.ICause; +import org.eclipse.sirius.components.representations.VariableManager; import org.eclipse.sirius.web.application.project.services.api.IProjectTemplateInitializer; import org.springframework.stereotype.Service; @@ -52,13 +54,17 @@ public class FlowProjectTemplatesInitializer implements IProjectTemplateInitiali private final IDiagramCreationService diagramCreationService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; public FlowProjectTemplatesInitializer(IRepresentationDescriptionSearchService representationDescriptionSearchService, - IDiagramCreationService diagramCreationService, IRepresentationPersistenceService representationPersistenceService, MeterRegistry meterRegistry) { + IDiagramCreationService diagramCreationService, IRepresentationPersistenceService representationPersistenceService, MeterRegistry meterRegistry, + IRepresentationMetadataPersistenceService representationMetadataPersistenceService) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); this.diagramCreationService = Objects.requireNonNull(diagramCreationService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); } @Override @@ -90,10 +96,17 @@ private Optional initializeFlowProject(ICause cause, IEd DiagramDescription topographyDiagram = optionalTopographyDiagram.get(); Object semanticTarget = resource.getContents().get(0); - Diagram diagram = this.diagramCreationService.create(topographyDiagram.getLabel(), semanticTarget, topographyDiagram, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, semanticTarget); + variableManager.put(DiagramDescription.LABEL, topographyDiagram.getLabel()); + String label = topographyDiagram.getLabelProvider().apply(variableManager); + + Diagram diagram = this.diagramCreationService.create(semanticTarget, topographyDiagram, editingContext); + var representationMetadata = new RepresentationMetadata(diagram.getId(), diagram.getKind(), label, diagram.getDescriptionId()); + this.representationMetadataPersistenceService.save(cause, editingContext, representationMetadata, diagram.getTargetObjectId()); this.representationPersistenceService.save(cause, editingContext, diagram); - result = Optional.of(new RepresentationMetadata(diagram.getId(), diagram.getKind(), diagram.getLabel(), diagram.getDescriptionId())); + result = Optional.of(representationMetadata); } } return result; diff --git a/packages/starters/backend/sirius-components-task-starter/src/main/java/org/eclipse/sirius/components/task/starter/services/TaskLabelServiceDelegate.java b/packages/starters/backend/sirius-components-task-starter/src/main/java/org/eclipse/sirius/components/task/starter/services/TaskLabelServiceDelegate.java index 0f89acfe0b..7f9e01c2a1 100644 --- a/packages/starters/backend/sirius-components-task-starter/src/main/java/org/eclipse/sirius/components/task/starter/services/TaskLabelServiceDelegate.java +++ b/packages/starters/backend/sirius-components-task-starter/src/main/java/org/eclipse/sirius/components/task/starter/services/TaskLabelServiceDelegate.java @@ -15,12 +15,13 @@ import java.util.List; import java.util.Optional; +import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.edit.provider.ComposedAdapterFactory; import org.eclipse.sirius.components.core.api.ILabelServiceDelegate; import org.eclipse.sirius.components.core.api.IObjectSearchService; -import org.eclipse.sirius.components.emf.services.DefaultLabelService; -import org.eclipse.emf.ecore.EObject; +import org.eclipse.sirius.components.core.api.IRepresentationMetadataProvider; import org.eclipse.sirius.components.core.api.labels.StyledString; +import org.eclipse.sirius.components.emf.services.DefaultLabelService; import org.eclipse.sirius.components.emf.services.LabelFeatureProviderRegistry; import org.eclipse.sirius.components.task.TaskTag; import org.eclipse.sirius.ext.emf.edit.EditingDomainServices; @@ -36,8 +37,8 @@ public class TaskLabelServiceDelegate extends DefaultLabelService implements ILa private final EditingDomainServices editingDomainServices = new EditingDomainServices(); - public TaskLabelServiceDelegate(ComposedAdapterFactory composedAdapterFactory, LabelFeatureProviderRegistry labelFeatureProviderRegistry) { - super(labelFeatureProviderRegistry, composedAdapterFactory, List.of()); + public TaskLabelServiceDelegate(List representationMetadataProviders, ComposedAdapterFactory composedAdapterFactory, LabelFeatureProviderRegistry labelFeatureProviderRegistry) { + super(representationMetadataProviders, labelFeatureProviderRegistry, composedAdapterFactory, List.of()); } @Override diff --git a/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/handlers/CreateTreeEventHandler.java b/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/handlers/CreateTreeEventHandler.java index 63456e62b8..3cb555df93 100644 --- a/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/handlers/CreateTreeEventHandler.java +++ b/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/handlers/CreateTreeEventHandler.java @@ -18,6 +18,7 @@ import org.eclipse.sirius.components.collaborative.api.ChangeDescription; import org.eclipse.sirius.components.collaborative.api.ChangeKind; import org.eclipse.sirius.components.collaborative.api.IEditingContextEventHandler; +import org.eclipse.sirius.components.collaborative.api.IRepresentationMetadataPersistenceService; import org.eclipse.sirius.components.collaborative.api.IRepresentationPersistenceService; import org.eclipse.sirius.components.collaborative.api.Monitoring; import org.eclipse.sirius.components.collaborative.dto.CreateRepresentationInput; @@ -31,6 +32,7 @@ import org.eclipse.sirius.components.core.api.IObjectService; import org.eclipse.sirius.components.core.api.IPayload; import org.eclipse.sirius.components.core.api.IRepresentationDescriptionSearchService; +import org.eclipse.sirius.components.representations.VariableManager; import org.eclipse.sirius.components.trees.Tree; import org.eclipse.sirius.components.trees.description.TreeDescription; import org.springframework.stereotype.Service; @@ -50,6 +52,8 @@ public class CreateTreeEventHandler implements IEditingContextEventHandler { private final IRepresentationDescriptionSearchService representationDescriptionSearchService; + private final IRepresentationMetadataPersistenceService representationMetadataPersistenceService; + private final IRepresentationPersistenceService representationPersistenceService; private final TreeCreationService treeCreationService; @@ -60,9 +64,10 @@ public class CreateTreeEventHandler implements IEditingContextEventHandler { private final Counter counter; - public CreateTreeEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationPersistenceService representationPersistenceService, + public CreateTreeEventHandler(IRepresentationDescriptionSearchService representationDescriptionSearchService, IRepresentationMetadataPersistenceService representationMetadataPersistenceService, IRepresentationPersistenceService representationPersistenceService, TreeCreationService treeCreationService, IObjectService objectService, ICollaborativeMessageService messageService, MeterRegistry meterRegistry) { this.representationDescriptionSearchService = Objects.requireNonNull(representationDescriptionSearchService); + this.representationMetadataPersistenceService = Objects.requireNonNull(representationMetadataPersistenceService); this.representationPersistenceService = Objects.requireNonNull(representationPersistenceService); this.treeCreationService = Objects.requireNonNull(treeCreationService); this.objectService = Objects.requireNonNull(objectService); @@ -101,11 +106,16 @@ public void handle(One payloadSink, Many changeDesc TreeDescription treeDescription = optionalTreeDescription.get(); Object object = optionalObject.get(); - Tree tree = this.treeCreationService.create(createRepresentationInput.representationName(), object, treeDescription, editingContext); + var variableManager = new VariableManager(); + variableManager.put(VariableManager.SELF, object); + variableManager.put(TreeDescription.LABEL, createRepresentationInput.representationName()); + String label = treeDescription.getLabelProvider().apply(variableManager).toString(); + Tree tree = this.treeCreationService.create(object, treeDescription, editingContext); + var representationMetadata = new RepresentationMetadata(tree.getId(), tree.getKind(), label, tree.getDescriptionId()); + this.representationMetadataPersistenceService.save(createRepresentationInput, editingContext, representationMetadata, tree.getTargetObjectId()); this.representationPersistenceService.save(createRepresentationInput, editingContext, tree); - var representationMetadata = new RepresentationMetadata(tree.getId(), tree.getKind(), tree.getLabel(), tree.getDescriptionId()); payload = new CreateRepresentationSuccessPayload(input.id(), representationMetadata); changeDescription = new ChangeDescription(ChangeKind.REPRESENTATION_CREATION, editingContext.getId(), input); } diff --git a/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/services/TreeCreationService.java b/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/services/TreeCreationService.java index d580d17865..f491e703b6 100644 --- a/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/services/TreeCreationService.java +++ b/packages/trees/backend/sirius-components-collaborative-trees/src/main/java/org/eclipse/sirius/components/collaborative/trees/services/TreeCreationService.java @@ -39,11 +39,11 @@ public TreeCreationService(MeterRegistry meterRegistry) { this.timer = Timer.builder(Monitoring.REPRESENTATION_EVENT_PROCESSOR_REFRESH).tag(Monitoring.NAME, "tree").register(meterRegistry); } - public Tree create(String label, Object targetObject, TreeDescription treeDescription, IEditingContext editingContext) { - return this.doRender(label, targetObject, editingContext, treeDescription); + public Tree create(Object targetObject, TreeDescription treeDescription, IEditingContext editingContext) { + return this.doRender(targetObject, editingContext, treeDescription); } - private Tree doRender(String label, Object targetObject, IEditingContext editingContext, TreeDescription treeDescription) { + private Tree doRender(Object targetObject, IEditingContext editingContext, TreeDescription treeDescription) { long start = System.currentTimeMillis(); VariableManager variableManager = new VariableManager(); diff --git a/packages/trees/backend/sirius-components-collaborative-trees/src/test/java/org/eclipse/sirius/components/collaborative/trees/architecture/handlers/DefaultExpandAllTreePathHandlerTests.java b/packages/trees/backend/sirius-components-collaborative-trees/src/test/java/org/eclipse/sirius/components/collaborative/trees/architecture/handlers/DefaultExpandAllTreePathHandlerTests.java index 4eea9eed0e..59ff4a16fc 100644 --- a/packages/trees/backend/sirius-components-collaborative-trees/src/test/java/org/eclipse/sirius/components/collaborative/trees/architecture/handlers/DefaultExpandAllTreePathHandlerTests.java +++ b/packages/trees/backend/sirius-components-collaborative-trees/src/test/java/org/eclipse/sirius/components/collaborative/trees/architecture/handlers/DefaultExpandAllTreePathHandlerTests.java @@ -93,7 +93,6 @@ private boolean hasChildren(VariableManager variableManager) { Tree tree = Tree.newTree("treeId") .targetObjectId("targetObjectId") .descriptionId("descriptionId") - .label("label") .children(List.of()) .build(); diff --git a/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/Tree.java b/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/Tree.java index 09c5597524..011ea7503f 100644 --- a/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/Tree.java +++ b/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/Tree.java @@ -38,8 +38,6 @@ public final class Tree implements IRepresentation { private String targetObjectId; - private String label; - private List children; @@ -62,11 +60,6 @@ public String getKind() { return this.kind; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getTargetObjectId() { return this.targetObjectId; @@ -82,8 +75,8 @@ public static Builder newTree(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, descriptionId: {2}, label: {3}, childCount: {4}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.label, this.children.size()); + String pattern = "{0} '{'id: {1}, descriptionId: {2}, childCount: {3}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.children.size()); } /** @@ -101,8 +94,6 @@ public static final class Builder { private String targetObjectId; - private String label; - private List children; private Builder(String id) { @@ -114,11 +105,6 @@ public Builder descriptionId(String descriptionId) { return this; } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder targetObjectId(String targetObjectId) { this.targetObjectId = Objects.requireNonNull(targetObjectId); return this; @@ -135,7 +121,6 @@ public Tree build() { tree.kind = Objects.requireNonNull(this.kind); tree.descriptionId = Objects.requireNonNull(this.descriptionId); tree.targetObjectId = Objects.requireNonNull(this.targetObjectId); - tree.label = Objects.requireNonNull(this.label); tree.children = Objects.requireNonNull(this.children); return tree; } diff --git a/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/renderer/TreeRenderer.java b/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/renderer/TreeRenderer.java index 265bd7cd00..4ed93785ee 100644 --- a/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/renderer/TreeRenderer.java +++ b/packages/trees/backend/sirius-components-trees/src/main/java/org/eclipse/sirius/components/trees/renderer/TreeRenderer.java @@ -58,7 +58,6 @@ public TreeRenderer(VariableManager variableManager, TreeDescription treeDescrip public Tree render() { String treeId = this.treeDescription.getIdProvider().apply(this.variableManager); String targetObjectId = this.treeDescription.getTargetObjectIdProvider().apply(this.variableManager); - String label = this.treeDescription.getLabelProvider().apply(this.variableManager).toString(); List rootElements = this.treeDescription.getElementsProvider().apply(this.variableManager); List childrenItems = new ArrayList<>(rootElements.size()); @@ -75,7 +74,6 @@ public Tree render() { return Tree.newTree(treeId) .targetObjectId(targetObjectId) .descriptionId(this.treeDescription.getId()) - .label(label) .children(childrenItems) .build(); } diff --git a/packages/trees/backend/sirius-components-trees/src/test/java/org/eclipse/sirius/components/trees/renderer/TreeRendererTests.java b/packages/trees/backend/sirius-components-trees/src/test/java/org/eclipse/sirius/components/trees/renderer/TreeRendererTests.java index d2c93fd7e2..369f11d833 100644 --- a/packages/trees/backend/sirius-components-trees/src/test/java/org/eclipse/sirius/components/trees/renderer/TreeRendererTests.java +++ b/packages/trees/backend/sirius-components-trees/src/test/java/org/eclipse/sirius/components/trees/renderer/TreeRendererTests.java @@ -59,7 +59,7 @@ public void basicRenderingOneRoot() { VariableManager variableManager = new VariableManager(); Tree tree = new TreeRenderer(variableManager, description).render(); - assertEquals(FAKE_ID, tree.getLabel()); + assertEquals(FAKE_ID, tree.getId()); assertEquals(1, tree.getChildren().size()); this.assertTreeNode(tree.getChildren().get(0), ROOT_LABEL, 0); @@ -81,7 +81,7 @@ public void basicRenderingSmallTree() { VariableManager variableManager = new VariableManager(); Tree tree = new TreeRenderer(variableManager, description).render(); - assertEquals(FAKE_ID, tree.getLabel()); + assertEquals(FAKE_ID, tree.getId()); assertEquals(1, tree.getChildren().size()); TreeItem rootTreeItem = tree.getChildren().get(0); this.assertTreeNode(rootTreeItem, ROOT_LABEL, 2); @@ -119,7 +119,7 @@ public void checkAvoidStackOverFlow() { VariableManager variableManager = new VariableManager(); Tree tree = new TreeRenderer(variableManager, description).render(); - assertEquals(FAKE_ID, tree.getLabel()); + assertEquals(FAKE_ID, tree.getId()); assertEquals(1, tree.getChildren().size()); TreeItem rootTreeItem = tree.getChildren().get(0); this.assertTreeNode(rootTreeItem, ROOT_LABEL, 2); diff --git a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/Validation.java b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/Validation.java index 7472f4ed5e..0a7678524d 100644 --- a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/Validation.java +++ b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/Validation.java @@ -34,8 +34,6 @@ public final class Validation implements IRepresentation { private String kind; - private String label; - private String descriptionId; private String targetObjectId; @@ -56,11 +54,6 @@ public String getDescriptionId() { return this.descriptionId; } - @Override - public String getLabel() { - return this.label; - } - @Override public String getKind() { return this.kind; @@ -81,8 +74,8 @@ public static Builder newValidation(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}, descriptionId: {3} diagnosticCount: {4}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label, this.descriptionId, this.diagnostics.size()); + String pattern = "{0} '{'id: {1}, descriptionId: {2} diagnosticCount: {3}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.descriptionId, this.diagnostics.size()); } /** @@ -97,8 +90,6 @@ public static final class Builder { private String kind = KIND; - private String label; - private String descriptionId; private String targetObjectId; @@ -109,11 +100,6 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder descriptionId(String descriptionId) { this.descriptionId = Objects.requireNonNull(descriptionId); return this; @@ -133,7 +119,6 @@ public Validation build() { Validation validation = new Validation(); validation.id = Objects.requireNonNull(this.id); validation.kind = Objects.requireNonNull(this.kind); - validation.label = Objects.requireNonNull(this.label); validation.descriptionId = Objects.requireNonNull(this.descriptionId); validation.targetObjectId = Objects.requireNonNull(this.targetObjectId); validation.diagnostics = Objects.requireNonNull(this.diagnostics); diff --git a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/components/ValidationComponent.java b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/components/ValidationComponent.java index 28699ecffa..380c35c43a 100644 --- a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/components/ValidationComponent.java +++ b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/components/ValidationComponent.java @@ -43,7 +43,6 @@ public Element render() { Optional optionalPreviousValidation = this.props.getPreviousValidation(); String id = optionalPreviousValidation.map(Validation::getId).orElseGet(() -> Validation.PREFIX); - String label = validationDescription.getLabel(); String targetObjectId = validationDescription.getTargetObjectIdProvider().apply(variableManager); List diagnostics = validationDescription.getDiagnosticsProvider().apply(variableManager); @@ -53,14 +52,11 @@ public Element render() { children.add(new Element(DiagnosticComponent.class, diagnosticComponentProps)); } - // @formatter:off ValidationElementProps validationElementProps = ValidationElementProps.newValidationElementProps(id) - .label(label) .descriptionId(validationDescription.getId()) .targetObjectId(targetObjectId) .children(children) .build(); - // @formatter:on return new Element(ValidationElementProps.TYPE, validationElementProps); } diff --git a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/elements/ValidationElementProps.java b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/elements/ValidationElementProps.java index e385ca7179..3468d5d5a0 100644 --- a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/elements/ValidationElementProps.java +++ b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/elements/ValidationElementProps.java @@ -31,8 +31,6 @@ public final class ValidationElementProps implements IProps { private String id; - private String label; - private String descriptionId; private String targetObjectId; @@ -47,10 +45,6 @@ public String getId() { return this.id; } - public String getLabel() { - return this.label; - } - public String getDescriptionId() { return this.descriptionId; } @@ -70,8 +64,8 @@ public static Builder newValidationElementProps(String id) { @Override public String toString() { - String pattern = "{0} '{'id: {1}, label: {2}'}'"; - return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id, this.label); + String pattern = "{0} '{'id: {1}'}'"; + return MessageFormat.format(pattern, this.getClass().getSimpleName(), this.id); } /** @@ -84,8 +78,6 @@ public static final class Builder { private String id; - private String label; - private String descriptionId; private String targetObjectId; @@ -96,11 +88,6 @@ private Builder(String id) { this.id = Objects.requireNonNull(id); } - public Builder label(String label) { - this.label = Objects.requireNonNull(label); - return this; - } - public Builder descriptionId(String descriptionId) { this.descriptionId = Objects.requireNonNull(descriptionId); return this; @@ -119,7 +106,6 @@ public Builder children(List children) { public ValidationElementProps build() { ValidationElementProps validationElementProps = new ValidationElementProps(); validationElementProps.id = Objects.requireNonNull(this.id); - validationElementProps.label = Objects.requireNonNull(this.label); validationElementProps.descriptionId = Objects.requireNonNull(this.descriptionId); validationElementProps.targetObjectId = Objects.requireNonNull(this.targetObjectId); validationElementProps.children = Objects.requireNonNull(this.children); diff --git a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/render/ValidationElementFactory.java b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/render/ValidationElementFactory.java index 9a6fc05931..30ee11820c 100644 --- a/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/render/ValidationElementFactory.java +++ b/packages/validation/backend/sirius-components-validation/src/main/java/org/eclipse/sirius/components/validation/render/ValidationElementFactory.java @@ -48,7 +48,6 @@ private Validation instantiateValidation(ValidationElementProps props, List findById(IEditingContext editingCont IEditingContext editinContext = new IEditingContext.NoOp(); - return diagramCreationService.create("Test Diagram", target, convertedDiagramDescription, editinContext); + return diagramCreationService.create(target, convertedDiagramDescription, editinContext); } }