diff --git a/projectmanagement/src/main/java/life/qbic/projectmanagement/application/sample/SamplePreview.java b/projectmanagement/src/main/java/life/qbic/projectmanagement/application/sample/SamplePreview.java index 9da03a835..8319b896b 100644 --- a/projectmanagement/src/main/java/life/qbic/projectmanagement/application/sample/SamplePreview.java +++ b/projectmanagement/src/main/java/life/qbic/projectmanagement/application/sample/SamplePreview.java @@ -44,6 +44,9 @@ public class SamplePreview { private String bioReplicateLabel; @Column(name = "label") private String sampleLabel; + private String comment; + @Column(name = "analysis_type") + private String analysisType; @OneToOne(cascade = CascadeType.ALL) @JoinColumn(name = "experimentalGroupId") private ExperimentalGroup experimentalGroup; @@ -58,7 +61,7 @@ protected SamplePreview() { private SamplePreview(ExperimentId experimentId, SampleId sampleId, String sampleCode, String batchLabel, String bioReplicateLabel, String sampleLabel, ExperimentalGroup experimentalGroup, String species, String specimen, - String analyte) { + String analyte, String analysisType, String comment) { Objects.requireNonNull(experimentId); Objects.requireNonNull(sampleId); Objects.requireNonNull(sampleCode); @@ -79,6 +82,9 @@ private SamplePreview(ExperimentId experimentId, SampleId sampleId, String sampl this.species = species; this.specimen = specimen; this.analyte = analyte; + // optional columns + this.comment = comment; + this.analysisType = analysisType; } /** @@ -100,15 +106,17 @@ private SamplePreview(ExperimentId experimentId, SampleId sampleId, String sampl * preview * @param analyte the {@link Analyte} for the {@link Sample} associated with this * preview + * @param analysisType the type of analysis to be performed for this {@link Sample} + * @param comment an optional comment pertaining to the associated {@link Sample} * @return the sample preview */ public static SamplePreview create(ExperimentId experimentId, SampleId sampleId, String sampleCode, String batchLabel, String bioReplicateLabel, String sampleLabel, ExperimentalGroup experimentalGroup, String species, String specimen, - String analyte) { + String analyte, String analysisType, String comment) { return new SamplePreview(experimentId, sampleId, sampleCode, batchLabel, bioReplicateLabel, - sampleLabel, experimentalGroup, species, specimen, analyte); + sampleLabel, experimentalGroup, species, specimen, analyte, analysisType, comment); } public ExperimentId experimentId() { @@ -146,6 +154,12 @@ public String specimen() { public String analyte() { return analyte; } + public String analysisType() { + return analysisType; + } + public String comment() { + return comment; + } public ExperimentalGroup experimentalGroup() { return experimentalGroup; @@ -167,14 +181,15 @@ public boolean equals(Object o) { that.sampleLabel) && Objects.equals(species, that.species) && Objects.equals(specimen, that.specimen) && Objects.equals(analyte, that.analyte) && Objects.equals( - experimentalGroup, that.experimentalGroup); + experimentalGroup, that.experimentalGroup) && Objects.equals(analysisType, + that.analysisType) && Objects.equals(comment, that.comment); } @Override public int hashCode() { return Objects.hash(experimentId, sampleCode, sampleId, batchLabel, bioReplicateLabel, sampleLabel, - species, specimen, analyte, experimentalGroup); + species, specimen, analyte, experimentalGroup, analysisType, comment); } @Override @@ -189,6 +204,8 @@ public String toString() { ", species='" + species + '\'' + ", specimen='" + specimen + '\'' + ", analyte='" + analyte + '\'' + + ", analysisType='" + analysisType + '\'' + + ", comment='" + comment + '\'' + ", conditions=" + experimentalGroup + '}'; } diff --git a/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/Sample.java b/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/Sample.java index 328a7bcb2..d880e3248 100644 --- a/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/Sample.java +++ b/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/Sample.java @@ -6,6 +6,7 @@ import jakarta.persistence.EmbeddedId; import jakarta.persistence.Entity; import java.util.Objects; +import java.util.Optional; import life.qbic.projectmanagement.domain.project.experiment.BiologicalReplicateId; import life.qbic.projectmanagement.domain.project.experiment.ExperimentId; @@ -37,6 +38,9 @@ public class Sample { @AttributeOverride(name = "uuid", column = @Column(name = "sample_id")) private SampleId id; private String label; + private String comment; + @Column(name = "analysis_type") + private String analysisType; @Embedded private SampleCode sampleCode; @Embedded @@ -44,7 +48,7 @@ public class Sample { private Sample(SampleId id, SampleCode sampleCode, BatchId assignedBatch, String label, ExperimentId experimentId, Long experimentalGroupId, SampleOrigin sampleOrigin, - BiologicalReplicateId replicateReference + BiologicalReplicateId replicateReference, String analysisType, String comment ) { this.id = id; this.sampleCode = Objects.requireNonNull(sampleCode); @@ -54,6 +58,8 @@ private Sample(SampleId id, SampleCode sampleCode, BatchId assignedBatch, String this.sampleOrigin = sampleOrigin; this.biologicalReplicateId = replicateReference; this.assignedBatch = assignedBatch; + this.analysisType = analysisType; + this.comment = comment; } protected Sample() { @@ -75,7 +81,8 @@ public static Sample create( sampleRegistrationRequest.assignedBatch(), sampleRegistrationRequest.label(), sampleRegistrationRequest.experimentId(), sampleRegistrationRequest.experimentalGroupId(), - sampleRegistrationRequest.sampleOrigin(), sampleRegistrationRequest.replicateReference()); + sampleRegistrationRequest.sampleOrigin(), sampleRegistrationRequest.replicateReference(), + sampleRegistrationRequest.analysisType(), sampleRegistrationRequest.comment()); } public BatchId assignedBatch() { @@ -98,6 +105,14 @@ public String label() { return this.label; } + public Optional analysisType() { + return Optional.ofNullable(analysisType); + } + + public Optional comment() { + return Optional.ofNullable(comment); + } + public Long experimentalGroupId() { return this.experimentalGroupId; } diff --git a/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/SampleRegistrationRequest.java b/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/SampleRegistrationRequest.java index 8306be088..75ddd03f0 100644 --- a/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/SampleRegistrationRequest.java +++ b/projectmanagement/src/main/java/life/qbic/projectmanagement/domain/project/sample/SampleRegistrationRequest.java @@ -1,6 +1,7 @@ package life.qbic.projectmanagement.domain.project.sample; import java.util.Objects; +import java.util.Optional; import life.qbic.projectmanagement.domain.project.experiment.BiologicalReplicateId; import life.qbic.projectmanagement.domain.project.experiment.ExperimentId; @@ -15,21 +16,26 @@ * @param experimentalGroupId the experimental group id the sample is part of * @param replicateReference the biological replicated reference the sample has been taken from * @param sampleOrigin information about the sample origin. + * @param analysisType analysis to be performed + * @param comment comment relating to the sample * @since 1.0.0 */ public record SampleRegistrationRequest(String label, BatchId assignedBatch, ExperimentId experimentId, Long experimentalGroupId, BiologicalReplicateId replicateReference, - SampleOrigin sampleOrigin) { + SampleOrigin sampleOrigin, String analysisType, String comment) { public SampleRegistrationRequest(String label, BatchId assignedBatch, ExperimentId experimentId, Long experimentalGroupId, BiologicalReplicateId replicateReference, - SampleOrigin sampleOrigin) { + SampleOrigin sampleOrigin, String analysisType, String comment) { this.label = Objects.requireNonNull(label); this.assignedBatch = Objects.requireNonNull(assignedBatch); this.experimentId = Objects.requireNonNull(experimentId); this.experimentalGroupId = Objects.requireNonNull(experimentalGroupId); this.replicateReference = Objects.requireNonNull(replicateReference); this.sampleOrigin = Objects.requireNonNull(sampleOrigin); + this.comment = comment; + this.analysisType = analysisType; } + } diff --git a/projectmanagement/src/test/groovy/life/qbic/projectmanagement/application/SampleRegistrationServiceSpec.groovy b/projectmanagement/src/test/groovy/life/qbic/projectmanagement/application/SampleRegistrationServiceSpec.groovy index e82a621e2..3e5689e73 100644 --- a/projectmanagement/src/test/groovy/life/qbic/projectmanagement/application/SampleRegistrationServiceSpec.groovy +++ b/projectmanagement/src/test/groovy/life/qbic/projectmanagement/application/SampleRegistrationServiceSpec.groovy @@ -33,7 +33,7 @@ class SampleRegistrationServiceSpec extends Specification { def "Invalid SampleRegistrationRequests returns a Result containing a SAMPLE_REGISTRATION_FAILED response code"() { given: SampleOrigin sampleOrigin = SampleOrigin.create(new Species("species"), new Specimen("specimen"), new Analyte("analyte")) - SampleRegistrationRequest sampleRegistrationRequest = new SampleRegistrationRequest("my_label", BatchId.create(), ExperimentId.create(), 5, BiologicalReplicateId.create(), sampleOrigin) + SampleRegistrationRequest sampleRegistrationRequest = new SampleRegistrationRequest("my_label", BatchId.create(), ExperimentId.create(), 5, BiologicalReplicateId.create(), sampleOrigin, "mytype", "no comment") SampleCode sampleCode = SampleCode.create("QABCDE") sampleCodeService.generateFor(projectId) >> Result.fromValue(sampleCode) Map sampleCodesToRegistrationRequests = new HashMap<>() @@ -53,7 +53,7 @@ class SampleRegistrationServiceSpec extends Specification { def "Valid SampleRegistrationRequests returns a Result with the list of registered Samples"() { given: SampleOrigin sampleOrigin = SampleOrigin.create(new Species("species"), new Specimen("specimen"), new Analyte("analyte")) - SampleRegistrationRequest sampleRegistrationRequest = new SampleRegistrationRequest("my_label", BatchId.create(), ExperimentId.create(), 4, BiologicalReplicateId.create(), sampleOrigin) + SampleRegistrationRequest sampleRegistrationRequest = new SampleRegistrationRequest("my_label", BatchId.create(), ExperimentId.create(), 4, BiologicalReplicateId.create(), sampleOrigin, "this analysis type", "a comment") SampleCode sampleCode = SampleCode.create("QABCDE") Sample sample = Sample.create(sampleCode, sampleRegistrationRequest) sampleCodeService.generateFor(projectId) >> Result.fromValue(sampleCode) diff --git a/projectmanagement/src/test/groovy/life/qbic/projectmanagement/domain/project/service/SampleDomainServiceSpec.groovy b/projectmanagement/src/test/groovy/life/qbic/projectmanagement/domain/project/service/SampleDomainServiceSpec.groovy index 7b7410a63..0b738452e 100644 --- a/projectmanagement/src/test/groovy/life/qbic/projectmanagement/domain/project/service/SampleDomainServiceSpec.groovy +++ b/projectmanagement/src/test/groovy/life/qbic/projectmanagement/domain/project/service/SampleDomainServiceSpec.groovy @@ -25,7 +25,7 @@ class SampleDomainServiceSpec extends Specification { def "When a sample has been successfully registered, a sample registered event is dispatched"() { given: - Sample testSample = Sample.create(SampleCode.create("test"), new SampleRegistrationRequest("test sample", BatchId.create(), ExperimentId.create(), 1L, BiologicalReplicateId.create(), new SampleOrigin(new Species("test"), new Specimen("test"), new Analyte("test")))) + Sample testSample = Sample.create(SampleCode.create("test"), new SampleRegistrationRequest("test sample", BatchId.create(), ExperimentId.create(), 1L, BiologicalReplicateId.create(), new SampleOrigin(new Species("test"), new Specimen("test"), new Analyte("test")), "DNA analysis", "")) and: SampleRepository testRepo = Mock(SampleRepository) @@ -54,7 +54,7 @@ class SampleDomainServiceSpec extends Specification { when: Result result = sampleDomainService.registerSample(SampleCode.create("test"), - new SampleRegistrationRequest("test sample", BatchId.create(), ExperimentId.create(), 1L, BiologicalReplicateId.create(), new SampleOrigin(new Species("test"), new Specimen("test"), new Analyte("test")))) + new SampleRegistrationRequest("test sample", BatchId.create(), ExperimentId.create(), 1L, BiologicalReplicateId.create(), new SampleOrigin(new Species("test"), new Specimen("test"), new Analyte("test")), "DNA analysis", "")) then: sampleRegistered.batchIdOfEvent.equals(result.getValue().assignedBatch()) diff --git a/vaadinfrontend/frontend/themes/datamanager/components/main.css b/vaadinfrontend/frontend/themes/datamanager/components/main.css index 5c6cb600e..ceb029f53 100644 --- a/vaadinfrontend/frontend/themes/datamanager/components/main.css +++ b/vaadinfrontend/frontend/themes/datamanager/components/main.css @@ -4,8 +4,8 @@ } .main.experiment { - grid-template-columns: minmax(250px, 0.8fr) minmax(250px, 0.2fr); - grid-template-rows: minmax(150px, 0.1fr) minmax(250px, 1fr); + grid-template-columns: minmax(600px, 80%) minmax(300px, 20%); + grid-template-rows: minmax(150px, 10%) minmax(250px, 100%); grid-template-areas: "navbar support" "content support"; @@ -26,3 +26,15 @@ .main.project { flex-direction: column; } + +/*Large devices (large desktops, 1200px and up)*/ +@media only screen and (max-width: 1200px) { + .main.experiment { + grid-template-columns: minmax(1200px, 1fr); + grid-template-areas: + "navbar" + "content" + "support"; + grid-auto-rows: auto; + } +} diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/AppConfig.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/AppConfig.java index 21c4f7040..e54cffe39 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/AppConfig.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/AppConfig.java @@ -1,6 +1,5 @@ package life.qbic.datamanager; -import java.time.ZoneId; import life.qbic.authentication.application.notification.NotificationService; import life.qbic.authentication.application.user.password.NewPassword; import life.qbic.authentication.application.user.password.NewPasswordInput; @@ -14,11 +13,8 @@ import life.qbic.authentication.domain.user.repository.UserRepository; import life.qbic.broadcasting.Exchange; import life.qbic.broadcasting.MessageBusSubmission; -import life.qbic.datamanager.ClientDetailsProvider.ClientDetails; -import life.qbic.datamanager.views.projects.overview.components.ProjectCollection; import life.qbic.domain.concepts.SimpleEventStore; import life.qbic.domain.concepts.TemporaryEventRepository; -import life.qbic.projectmanagement.application.ProjectInformationService; import life.qbic.projectmanagement.application.api.SampleCodeService; import life.qbic.projectmanagement.application.batch.BatchRegistrationService; import life.qbic.projectmanagement.application.policy.ProjectRegisteredPolicy; @@ -30,8 +26,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; -import org.springframework.web.context.annotation.SessionScope; /** * App bean configuration class diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/ProjectOverviewPage.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/ProjectOverviewPage.java index b7b1ffa50..6c5d00fcc 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/ProjectOverviewPage.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/ProjectOverviewPage.java @@ -13,7 +13,7 @@ import life.qbic.datamanager.views.notifications.SuccessMessage; import life.qbic.datamanager.views.projects.create.ProjectDraft; import life.qbic.datamanager.views.projects.create.AddProjectDialog; -import life.qbic.datamanager.views.projects.overview.components.ProjectCollection; +import life.qbic.datamanager.views.projects.overview.components.ProjectCollectionComponent; import life.qbic.projectmanagement.application.ProjectRegistrationService; import life.qbic.projectmanagement.domain.project.Project; import org.springframework.beans.factory.annotation.Autowired; @@ -32,14 +32,14 @@ public class ProjectOverviewPage extends Div { @Serial private static final long serialVersionUID = 4625607082710157069L; - private final ProjectCollection projectCollection; + private final ProjectCollectionComponent projectCollectionComponent; private final AddProjectDialog addProjectDialog; private final ProjectRegistrationService projectRegistrationService; - public ProjectOverviewPage(@Autowired ProjectCollection projectCollection, + public ProjectOverviewPage(@Autowired ProjectCollectionComponent projectCollectionComponent, AddProjectDialog addProjectDialog, ProjectRegistrationService projectRegistrationService) { - this.projectCollection = projectCollection; + this.projectCollectionComponent = projectCollectionComponent; this.addProjectDialog = addProjectDialog; this.projectRegistrationService = projectRegistrationService; layoutPage(); @@ -49,11 +49,11 @@ public ProjectOverviewPage(@Autowired ProjectCollection projectCollection, } private void layoutPage() { - add(projectCollection); + add(projectCollectionComponent); } private void configurePage() { - projectCollection.addListener(projectCreationClickedEvent -> + projectCollectionComponent.addListener(projectCreationClickedEvent -> addProjectDialog.open() ); addProjectDialog.addCancelEventListener(projectCreationDialogUserCancelEvent -> @@ -82,7 +82,7 @@ private void createProject(ProjectDraft projectCreationContent) { .onValue(result -> { displaySuccessfulProjectCreationNotification(); addProjectDialog.resetAndClose(); - projectCollection.refresh(); + projectCollectionComponent.refresh(); }) .onError(e -> { throw e; diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectAddSubmitEvent.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectAddSubmitEvent.java index 0b6f2f636..9f905a48b 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectAddSubmitEvent.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectAddSubmitEvent.java @@ -10,12 +10,12 @@ * * @since 1.0.0 */ -public class ProjectAddSubmitEvent extends ComponentEvent { +public class ProjectAddSubmitEvent extends ComponentEvent { @Serial private static final long serialVersionUID = 28673255958404464L; - public ProjectAddSubmitEvent(ProjectCollection source, boolean fromClient) { + public ProjectAddSubmitEvent(ProjectCollectionComponent source, boolean fromClient) { super(source, fromClient); } } diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollection.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollectionComponent.java similarity index 96% rename from vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollection.java rename to vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollectionComponent.java index 9d38f1fab..69deaa077 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollection.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/overview/components/ProjectCollectionComponent.java @@ -44,7 +44,7 @@ */ @SpringComponent @UIScope -public class ProjectCollection extends PageArea { +public class ProjectCollectionComponent extends PageArea { private Div controlSection = new Div(); private Div gridSection = new Div(); @@ -62,8 +62,8 @@ public class ProjectCollection extends PageArea { private final List> projectCreationClickedListeners = new ArrayList<>(); @Autowired - public ProjectCollection(ClientDetailsProvider clientDetailsProvider, - ProjectInformationService projectInformationService) { + public ProjectCollectionComponent(ClientDetailsProvider clientDetailsProvider, + ProjectInformationService projectInformationService) { this.title = "Projects"; this.clientDetailsProvider = clientDetailsProvider; this.projectInformationService = projectInformationService; diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/AddExperimentalGroupsDialog.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/AddExperimentalGroupsDialog.java index 852b88ad6..8b10b23a4 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/AddExperimentalGroupsDialog.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/AddExperimentalGroupsDialog.java @@ -54,7 +54,7 @@ public void addExperimentalGroupSubmitListener( public AddExperimentalGroupsDialog() { super(); - setConfirmButtonLabel("Create"); + setConfirmButtonLabel("Add"); setCancelButtonLabel("Cancel"); addClassName("experiment-group-dialog"); setHeaderTitle("Please enter group information"); diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/create/ExperimentCreationDialog.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/create/ExperimentCreationDialog.java index 09f910dc1..4f092af39 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/create/ExperimentCreationDialog.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/experiments/experiment/create/ExperimentCreationDialog.java @@ -36,7 +36,7 @@ public ExperimentCreationDialog(ExperimentalDesignSearchService experimentalDesi experimentCreationDialogHandler = new ExperimentCreationDialogHandler(); setHeaderTitle(TITLE); add(defineExperimentComponent); - setConfirmButtonLabel("Create"); + setConfirmButtonLabel("Add"); setCancelButtonLabel("Cancel"); getFooter().add(cancelButton, confirmButton); } diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/info/ProjectDetailsComponent.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/info/ProjectDetailsComponent.java index 6015fa4ed..f29829261 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/info/ProjectDetailsComponent.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/info/ProjectDetailsComponent.java @@ -10,6 +10,7 @@ import com.vaadin.flow.component.combobox.MultiSelectComboBox; import com.vaadin.flow.component.formlayout.FormLayout; import com.vaadin.flow.component.formlayout.FormLayout.ResponsiveStep; +import com.vaadin.flow.component.html.Div; import com.vaadin.flow.component.html.Span; import com.vaadin.flow.component.textfield.TextArea; import com.vaadin.flow.component.textfield.TextField; @@ -52,7 +53,7 @@ */ @UIScope @SpringComponent -public class ProjectDetailsComponent extends Composite { +public class ProjectDetailsComponent extends Div { private static final Logger log = logger(ProjectDetailsComponent.class); @@ -79,6 +80,7 @@ public ProjectDetailsComponent(@Autowired ProjectInformationService projectInfor Objects.requireNonNull(personSearchService); Objects.requireNonNull(experimentalDesignSearchService); Objects.requireNonNull(experimentInformationService); + setTitle(); formLayout = new FormLayout(); initFormLayout(); setComponentStyles(); @@ -86,6 +88,13 @@ public ProjectDetailsComponent(@Autowired ProjectInformationService projectInfor experimentalDesignSearchService, experimentInformationService); } + private void setTitle() { + var title = new Div(); + title.setText(TITLE); + title.addClassName("title"); + add(title); + } + private ComboBox initPersonReferenceCombobox(String personReferenceType) { ComboBox comboBox = new ComboBox<>(); comboBox.setItemLabelGenerator(PersonReference::fullName); @@ -108,8 +117,7 @@ private void initFormLayout() { formLayout.addFormItem(projectManagerToggleComponent, "Project Manager"); // set form layout to only have one column (for any width) formLayout.setResponsiveSteps(new ResponsiveStep("0", 1)); - getContent().addContent(formLayout); - getContent().addTitle(TITLE); + add(formLayout); } private void initFormFields() { @@ -182,10 +190,6 @@ public void projectId(ProjectId projectId) { handler.setProjectId(projectId); } - public void setStyles(String... componentStyles) { - getContent().addClassNames(componentStyles); - } - /** * Component logic for the {@link ProjectDetailsComponent} * diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/SampleOverviewComponent.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/SampleOverviewComponent.java index e2f3fb008..b91a4d9e6 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/SampleOverviewComponent.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/SampleOverviewComponent.java @@ -62,7 +62,7 @@ * Sample Overview Component *

* Component embedded within the {@link SampleInformationPage} in the {@link ProjectViewPage}. It - * allows the user to see the information associated for all {@link Batch} and {@link Sample} of + * allows the user to see the information associated for each {@link Batch} and {@link Sample} of * each * {@link Experiment within a {@link life.qbic.projectmanagement.domain.project.Project} * Additionally it enables the user to register new {@link Batch} and {@link Sample} via the @@ -309,6 +309,8 @@ private Grid createSampleGrid() { sampleGrid.addColumn(SamplePreview::species).setHeader("Species"); sampleGrid.addColumn(SamplePreview::specimen).setHeader("Specimen"); sampleGrid.addColumn(SamplePreview::analyte).setHeader("Analyte"); + sampleGrid.addColumn(SamplePreview::analysisType).setHeader("Analysis to Perform"); + sampleGrid.addColumn(SamplePreview::comment).setHeader("Comment"); return sampleGrid; } @@ -393,7 +395,8 @@ private List createSampleRegistrationRequests(BatchId return new SampleRegistrationRequest(sampleRegistrationContent.label(), batchId, experimentId, sampleRegistrationContent.experimentalGroupId(), - sampleRegistrationContent.biologicalReplicateId(), sampleOrigin); + sampleRegistrationContent.biologicalReplicateId(), sampleOrigin, + sampleRegistrationContent.analysisType(), sampleRegistrationContent.comment()); }).toList(); } diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleRegistrationContent.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleRegistrationContent.java index d922659a1..d4a170dc9 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleRegistrationContent.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleRegistrationContent.java @@ -15,12 +15,13 @@ * @param species String representation of the {@link Species} * @param specimen String representation of the {@link Specimen} * @param analyte String representation of the {@link Analyte} + * @param analysisType The analysis to be performed * @param comment Sample specific comments */ public record SampleRegistrationContent(String label, BiologicalReplicateId biologicalReplicateId, Long experimentalGroupId, - String species, String specimen, String analyte, + String species, String specimen, String analyte, String analysisType, String comment) { } diff --git a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleSpreadsheetLayout.java b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleSpreadsheetLayout.java index a857dd25b..df29a3768 100644 --- a/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleSpreadsheetLayout.java +++ b/vaadinfrontend/src/main/java/life/qbic/datamanager/views/projects/project/samples/registration/batch/SampleSpreadsheetLayout.java @@ -168,7 +168,7 @@ private List getContent() { SampleRegistrationContent sampleRegistrationContent = new SampleRegistrationContent( row.sampleLabel(), row.bioReplicateID(), row.experimentalGroupId(), row.species(), row.specimen(), - row.analyte(), row.customerComment()); + row.analyte(), row.analysisType(), row.customerComment()); samplesToRegister.add(sampleRegistrationContent); }); return samplesToRegister;