diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/ReferenceWidgetDefaultCreateElementHandler.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/ReferenceWidgetDefaultCreateElementHandler.java index 4fa499c605..6cb1235050 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/ReferenceWidgetDefaultCreateElementHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/ReferenceWidgetDefaultCreateElementHandler.java @@ -21,7 +21,6 @@ import org.eclipse.sirius.components.core.api.IEditService; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.widget.reference.IReferenceWidgetCreateElementHandler; -import org.springframework.stereotype.Service; /** * * Default implementation of {@link IReferenceWidgetCreateElementHandler}. @@ -29,7 +28,6 @@ * * @author frouene */ -@Service public class ReferenceWidgetDefaultCreateElementHandler implements IReferenceWidgetCreateElementHandler { private final IEditService editService; @@ -40,7 +38,7 @@ public ReferenceWidgetDefaultCreateElementHandler(IEditService editService) { @Override public boolean canHandle(String descriptionId) { - return false; // Default implementation, it'll be used if no other service can handle the descriptionId + return true; } @Override diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ModelBrowsersDescriptionProvider.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ModelBrowsersDescriptionProvider.java index fb1d4fb9fe..5083343c79 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ModelBrowsersDescriptionProvider.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ModelBrowsersDescriptionProvider.java @@ -78,12 +78,12 @@ public class ModelBrowsersDescriptionProvider implements IRepresentationDescript private final ReferenceWidgetDefaultCandidateSearchProvider defaultCandidateProvider; - public ModelBrowsersDescriptionProvider(IObjectService objectService, IURLParser urlParser, IEMFKindService emfKindService, List candidateProviders, ReferenceWidgetDefaultCandidateSearchProvider defaultCandidateProvider) { + public ModelBrowsersDescriptionProvider(IObjectService objectService, IURLParser urlParser, IEMFKindService emfKindService, List candidateProviders) { this.objectService = Objects.requireNonNull(objectService); this.urlParser = Objects.requireNonNull(urlParser); this.emfKindService = Objects.requireNonNull(emfKindService); this.candidateProviders = Objects.requireNonNull(candidateProviders); - this.defaultCandidateProvider = Objects.requireNonNull(defaultCandidateProvider); + this.defaultCandidateProvider = new ReferenceWidgetDefaultCandidateSearchProvider(); } @Override diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ReferenceWidgetDefaultCandidateSearchProvider.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ReferenceWidgetDefaultCandidateSearchProvider.java index 8a59090964..05e049de57 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ReferenceWidgetDefaultCandidateSearchProvider.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/browser/ReferenceWidgetDefaultCandidateSearchProvider.java @@ -22,7 +22,6 @@ import org.eclipse.sirius.components.emf.ResourceMetadataAdapter; import org.eclipse.sirius.components.emf.services.EditingContext; import org.eclipse.sirius.components.widget.reference.IReferenceWidgetRootCandidateSearchProvider; -import org.springframework.stereotype.Service; /** * Default implementation of {@link IReferenceWidgetRootCandidateSearchProvider}. @@ -30,12 +29,11 @@ * * @author Arthur Daussy */ -@Service public class ReferenceWidgetDefaultCandidateSearchProvider implements IReferenceWidgetRootCandidateSearchProvider { @Override public boolean canHandle(String descriptionId) { - return false; // Default implementation, it'll be used if no other service can handle the descriptionId + return true; } @Override diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandler.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandler.java index 39479befc4..87e424fac7 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/CreateElementEventHandler.java @@ -29,6 +29,7 @@ import org.eclipse.sirius.components.collaborative.widget.reference.dto.CreateElementInput; import org.eclipse.sirius.components.collaborative.widget.reference.messages.IReferenceMessageService; import org.eclipse.sirius.components.core.api.ErrorPayload; +import org.eclipse.sirius.components.core.api.IEditService; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IFeedbackMessageService; import org.eclipse.sirius.components.core.api.IObjectService; @@ -65,12 +66,12 @@ public class CreateElementEventHandler implements IFormEventHandler { private final IFeedbackMessageService feedbackMessageService; - public CreateElementEventHandler(IFormQueryService formQueryService, IReferenceMessageService messageService, IObjectService objectService, List referenceWidgetCreateElementHandlers, ReferenceWidgetDefaultCreateElementHandler defaultReferenceWidgetCreateElementHandler, MeterRegistry meterRegistry, IFeedbackMessageService feedbackMessageService) { + public CreateElementEventHandler(IFormQueryService formQueryService, IReferenceMessageService messageService, IObjectService objectService, List referenceWidgetCreateElementHandlers, IEditService editService, MeterRegistry meterRegistry, IFeedbackMessageService feedbackMessageService) { this.formQueryService = Objects.requireNonNull(formQueryService); this.messageService = Objects.requireNonNull(messageService); this.objectService = Objects.requireNonNull(objectService); this.referenceWidgetCreateElementHandlers = Objects.requireNonNull(referenceWidgetCreateElementHandlers); - this.defaultReferenceWidgetCreateElementHandler = Objects.requireNonNull(defaultReferenceWidgetCreateElementHandler); + this.defaultReferenceWidgetCreateElementHandler = new ReferenceWidgetDefaultCreateElementHandler(Objects.requireNonNull(editService)); this.feedbackMessageService = Objects.requireNonNull(feedbackMessageService); this.counter = Counter.builder(Monitoring.EVENT_HANDLER).tag(Monitoring.NAME, this.getClass().getSimpleName()).register(meterRegistry); diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetChildCreationDescriptionsEventHandler.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetChildCreationDescriptionsEventHandler.java index ea8e9e82ad..af5587f69c 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetChildCreationDescriptionsEventHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetChildCreationDescriptionsEventHandler.java @@ -22,6 +22,7 @@ import org.eclipse.sirius.components.collaborative.widget.reference.ReferenceWidgetDefaultCreateElementHandler; import org.eclipse.sirius.components.collaborative.widget.reference.dto.ReferenceWidgetChildCreationDescriptionsInput; import org.eclipse.sirius.components.core.api.ChildCreationDescription; +import org.eclipse.sirius.components.core.api.IEditService; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IInput; import org.eclipse.sirius.components.core.api.IPayload; @@ -46,9 +47,9 @@ public class ReferenceWidgetChildCreationDescriptionsEventHandler implements IEd private final Counter counter; - public ReferenceWidgetChildCreationDescriptionsEventHandler(List referenceWidgetCreateElementHandlers, ReferenceWidgetDefaultCreateElementHandler defaultReferenceWidgetCreateElementHandler, MeterRegistry meterRegistry) { + public ReferenceWidgetChildCreationDescriptionsEventHandler(List referenceWidgetCreateElementHandlers, IEditService editService, MeterRegistry meterRegistry) { this.referenceWidgetCreateElementHandlers = Objects.requireNonNull(referenceWidgetCreateElementHandlers); - this.defaultReferenceWidgetCreateElementHandler = Objects.requireNonNull(defaultReferenceWidgetCreateElementHandler); + this.defaultReferenceWidgetCreateElementHandler = new ReferenceWidgetDefaultCreateElementHandler(Objects.requireNonNull(editService)); this.counter = Counter.builder(Monitoring.EVENT_HANDLER).tag(Monitoring.NAME, this.getClass().getSimpleName()).register(meterRegistry); } diff --git a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetRootCreationDescriptionsEventHandler.java b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetRootCreationDescriptionsEventHandler.java index 5a1cf84ef4..02d971cec5 100644 --- a/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetRootCreationDescriptionsEventHandler.java +++ b/packages/forms/backend/sirius-components-collaborative-widget-reference/src/main/java/org/eclipse/sirius/components/collaborative/widget/reference/handlers/ReferenceWidgetRootCreationDescriptionsEventHandler.java @@ -22,6 +22,7 @@ import org.eclipse.sirius.components.collaborative.widget.reference.ReferenceWidgetDefaultCreateElementHandler; import org.eclipse.sirius.components.collaborative.widget.reference.dto.ReferenceWidgetRootCreationDescriptionsInput; import org.eclipse.sirius.components.core.api.ChildCreationDescription; +import org.eclipse.sirius.components.core.api.IEditService; import org.eclipse.sirius.components.core.api.IEditingContext; import org.eclipse.sirius.components.core.api.IInput; import org.eclipse.sirius.components.core.api.IPayload; @@ -43,11 +44,12 @@ public class ReferenceWidgetRootCreationDescriptionsEventHandler implements IEdi private final List referenceWidgetCreateElementHandlers; private final ReferenceWidgetDefaultCreateElementHandler defaultReferenceWidgetCreateElementHandler; + private final Counter counter; - public ReferenceWidgetRootCreationDescriptionsEventHandler(List referenceWidgetCreateElementHandlers, ReferenceWidgetDefaultCreateElementHandler defaultReferenceWidgetCreateElementHandler, MeterRegistry meterRegistry) { + public ReferenceWidgetRootCreationDescriptionsEventHandler(List referenceWidgetCreateElementHandlers, IEditService editService, MeterRegistry meterRegistry) { this.referenceWidgetCreateElementHandlers = Objects.requireNonNull(referenceWidgetCreateElementHandlers); - this.defaultReferenceWidgetCreateElementHandler = Objects.requireNonNull(defaultReferenceWidgetCreateElementHandler); + this.defaultReferenceWidgetCreateElementHandler = new ReferenceWidgetDefaultCreateElementHandler(Objects.requireNonNull(editService)); this.counter = Counter.builder(Monitoring.EVENT_HANDLER).tag(Monitoring.NAME, this.getClass().getSimpleName()).register(meterRegistry); } 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 fd548fe6cc..db24cf7da6 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,7 +23,6 @@ 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.ReferenceWidgetDefaultCreateElementHandler; 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; @@ -124,8 +123,7 @@ public Optional createRootObject(IEditingContext editingContext, UUID do }; CreateElementEventHandler handler = new CreateElementEventHandler(formQueryService, new IReferenceMessageService.NoOp(), objectService, List.of(referenceWidgetCreateElementHandler), - new ReferenceWidgetDefaultCreateElementHandler(new IEditService.NoOp()), new SimpleMeterRegistry(), - new IFeedbackMessageService.NoOp()); + new IEditService.NoOp(), new SimpleMeterRegistry(), new IFeedbackMessageService.NoOp()); assertThat(handler.canHandle(input)).isTrue(); Sinks.Many changeDescriptionSink = Sinks.many().unicast().onBackpressureBuffer(); @@ -195,7 +193,7 @@ public String unableToEditReadOnlyWidget() { } }; - CreateElementEventHandler handler = new CreateElementEventHandler(formQueryService, messageService, new IObjectService.NoOp(), List.of(), new ReferenceWidgetDefaultCreateElementHandler(new IEditService.NoOp()), new SimpleMeterRegistry(), new IFeedbackMessageService.NoOp()); + CreateElementEventHandler handler = new CreateElementEventHandler(formQueryService, messageService, new IObjectService.NoOp(), List.of(), new IEditService.NoOp(), new SimpleMeterRegistry(), new IFeedbackMessageService.NoOp()); assertThat(handler.canHandle(input)).isTrue(); Sinks.Many changeDescriptionSink = Sinks.many().unicast().onBackpressureBuffer();