Skip to content

Commit 40a5bf4

Browse files
Ensure that notification anchor after group registration always points to SampleInformationMain (#427)
1 parent 83391b4 commit 40a5bf4

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

user-interface/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/ExperimentDetailsComponent.java

+14-7
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
import com.vaadin.flow.component.orderedlayout.HorizontalLayout;
1515
import com.vaadin.flow.component.tabs.TabSheet;
1616
import com.vaadin.flow.component.textfield.TextField;
17+
import com.vaadin.flow.router.RouteConfiguration;
18+
import com.vaadin.flow.router.RouteParam;
19+
import com.vaadin.flow.router.RouteParameters;
1720
import com.vaadin.flow.spring.annotation.SpringComponent;
1821
import com.vaadin.flow.spring.annotation.UIScope;
1922
import com.vaadin.flow.theme.lumo.LumoIcon;
@@ -28,7 +31,6 @@
2831
import life.qbic.application.commons.ApplicationException.ErrorCode;
2932
import life.qbic.application.commons.ApplicationException.ErrorParameters;
3033
import life.qbic.application.commons.Result;
31-
import life.qbic.datamanager.views.AppRoutes.Projects;
3234
import life.qbic.datamanager.views.Context;
3335
import life.qbic.datamanager.views.general.ConfirmEvent;
3436
import life.qbic.datamanager.views.general.Disclaimer;
@@ -45,6 +47,7 @@
4547
import life.qbic.datamanager.views.projects.project.experiments.experiment.update.ExperimentUpdateDialog;
4648
import life.qbic.datamanager.views.projects.project.experiments.experiment.update.ExperimentUpdateDialog.ExperimentDraft;
4749
import life.qbic.datamanager.views.projects.project.experiments.experiment.update.ExperimentUpdateDialog.ExperimentUpdateEvent;
50+
import life.qbic.datamanager.views.projects.project.samples.SampleInformationMain;
4851
import life.qbic.projectmanagement.application.DeletionService;
4952
import life.qbic.projectmanagement.application.ExperimentInformationService;
5053
import life.qbic.projectmanagement.application.ExperimentInformationService.ExperimentalGroupDTO;
@@ -58,7 +61,6 @@
5861
import life.qbic.projectmanagement.domain.model.experiment.ExperimentalVariable;
5962
import life.qbic.projectmanagement.domain.model.experiment.VariableLevel;
6063
import life.qbic.projectmanagement.domain.model.project.Project;
61-
import life.qbic.projectmanagement.domain.model.project.ProjectId;
6264
import org.springframework.beans.factory.annotation.Autowired;
6365

6466
/**
@@ -82,7 +84,6 @@ public class ExperimentDetailsComponent extends PageArea {
8284
private final Span title = new Span();
8385
private final Span buttonBar = new Span();
8486
private final Div tagCollection = new Div();
85-
8687
private final Span sampleSourceComponent = new Span();
8788
private final TabSheet experimentSheet = new TabSheet();
8889
private final Div experimentalGroups = new Div();
@@ -95,6 +96,8 @@ public class ExperimentDetailsComponent extends PageArea {
9596
private Context context;
9697
private final DeletionService deletionService;
9798
private int experimentalGroupCount;
99+
public static final String PROJECT_ID_ROUTE_PARAMETER = "projectId";
100+
public static final String EXPERIMENT_ID_ROUTE_PARAMETER = "experimentId";
98101

99102

100103
public ExperimentDetailsComponent(
@@ -114,10 +117,15 @@ public ExperimentDetailsComponent(
114117
configureComponent();
115118
}
116119

117-
private Notification createSampleRegistrationPossibleNotification(String projectId) {
120+
private Notification createSampleRegistrationPossibleNotification() {
118121
Notification notification = new Notification();
119122

120-
String samplesUrl = Projects.SAMPLES.formatted(projectId);
123+
RouteParam projectRouteParam = new RouteParam(PROJECT_ID_ROUTE_PARAMETER,
124+
context.projectId().orElseThrow().value());
125+
RouteParam experimentRouteParam = new RouteParam(EXPERIMENT_ID_ROUTE_PARAMETER,
126+
context.experimentId().orElseThrow().value());
127+
String samplesUrl = RouteConfiguration.forSessionScope().getUrl(SampleInformationMain.class,
128+
new RouteParameters(projectRouteParam, experimentRouteParam));
121129
Div text = new Div(new Text("You can now register sample batches. "),
122130
new Anchor(samplesUrl, new Button("Go to Samples", event -> notification.close())));
123131

@@ -478,8 +486,7 @@ private ExperimentalGroupContent toContent(ExperimentalGroupDTO experimentalGrou
478486
}
479487

480488
private void showSampleRegistrationPossibleNotification() {
481-
String projectId = this.context.projectId().map(ProjectId::value).orElseThrow();
482-
Notification notification = createSampleRegistrationPossibleNotification(projectId);
489+
Notification notification = createSampleRegistrationPossibleNotification();
483490
notification.open();
484491
}
485492

0 commit comments

Comments
 (0)