Skip to content

Commit

Permalink
Show disclaimer when no groups have been defined in experiment (#347)
Browse files Browse the repository at this point in the history
* Add Disclaimer for experimental group registration when no groups have been defined

* Fix merge conflict

---------

Co-authored-by: wow-such-code <[email protected]>
  • Loading branch information
Steffengreiner and wow-such-code authored Aug 29, 2023
1 parent 54e45f1 commit da5add8
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ public class ExperimentDetailsComponent extends PageArea {
private final ExperimentalGroupCardCollection experimentalGroupsCollection = new ExperimentalGroupCardCollection();
private final ExperimentalVariablesDialog addExperimentalVariablesDialog;
private final Disclaimer noExperimentalVariablesDefined;
private final Disclaimer noExperimentalGroupsDefined;
private final Disclaimer addExperimentalVariablesNote;
private Context context;
private boolean hasExperimentalGroups;
Expand All @@ -106,6 +107,7 @@ public ExperimentDetailsComponent(
this.experimentalDesignSearchService = Objects.requireNonNull(experimentalDesignSearchService);
this.addExperimentalVariablesDialog = new ExperimentalVariablesDialog();
this.noExperimentalVariablesDefined = createNoVariableDisclaimer();
this.noExperimentalGroupsDefined = createNoGroupsDisclaimer();
this.addExperimentalVariablesNote = createNoVariableDisclaimer();
this.addClassName("experiment-details-component");
layoutComponent();
Expand All @@ -132,9 +134,16 @@ private Notification createSampleRegistrationPossibleNotification(String project
}

private Disclaimer createNoVariableDisclaimer() {
var disclaimer = Disclaimer.createWithTitle("Missing variables",
"No experiment variables defined", "Add");
disclaimer.subscribe(listener -> displayAddExperimentalVariablesDialog());
var disclaimer = Disclaimer.createWithTitle("Design your experiment",
"Get started by adding experimental variables", "Add variables");
disclaimer.subscribe(listener -> openAddExperimentalVariablesDialog());
return disclaimer;
}

private Disclaimer createNoGroupsDisclaimer() {
var disclaimer = Disclaimer.createWithTitle("Design your experiment",
"Create conditions for your samples by adding experimental groups", "Add groups");
disclaimer.subscribe(listener -> openExperimentalGroupAddDialog());
return disclaimer;
}

Expand Down Expand Up @@ -261,10 +270,10 @@ private void addListenerForNewEditEvent() {

private void addListenerForNewVariableEvent() {
this.experimentalVariablesComponent.subscribeToAddEvent(
listener -> displayAddExperimentalVariablesDialog());
listener -> openAddExperimentalVariablesDialog());
}

private void displayAddExperimentalVariablesDialog() {
private void openAddExperimentalVariablesDialog() {
this.addExperimentalVariablesDialog.open();
}

Expand Down Expand Up @@ -408,7 +417,10 @@ private void showSampleRegistrationPossibleNotification() {
private void reloadExperimentalGroups() {
loadExperimentalGroups();
if (hasExperimentalGroups) {
onGroupsDefined();
showSampleRegistrationPossibleNotification();
} else {
onNoGroupsDefined();
}
}

Expand All @@ -418,7 +430,6 @@ private void loadExperimentalGroups() {
context.experimentId().orElseThrow());
List<ExperimentalGroupCard> experimentalGroupsCards = experimentalGroups.stream()
.map(ExperimentalGroupCard::new).toList();

experimentalGroupsCollection.setContent(experimentalGroupsCards);
this.hasExperimentalGroups = !experimentalGroupsCards.isEmpty();
}
Expand Down Expand Up @@ -463,13 +474,15 @@ private void loadExperimentInformation(Experiment experiment) {
loadExperimentalGroups();
if (experiment.variables().isEmpty()) {
onNoVariablesDefined();
return;
}
if (experiment.getExperimentalGroups().isEmpty()) {
onNoGroupsDefined();
} else {
removeNoExperimentalVariablesDefinedDisclaimer();
experimentalGroups.add(experimentalGroupsCollection);
onGroupsDefined();
}
}


private void loadTagInformation(Experiment experiment) {
tagCollection.removeAll();
List<String> tags = new ArrayList<>();
Expand All @@ -490,11 +503,18 @@ private void loadExperimentalVariables(Experiment experiment) {
}

private void onNoVariablesDefined() {
experimentalGroups.removeAll();
experimentalGroups.add(noExperimentalVariablesDefined);
experimentalGroups.remove(experimentalGroupsCollection);

}

private void onNoGroupsDefined() {
experimentalGroups.removeAll();
experimentalGroups.add(noExperimentalGroupsDefined);
}

private void removeNoExperimentalVariablesDefinedDisclaimer() {
experimentalGroups.remove(noExperimentalVariablesDefined);
private void onGroupsDefined() {
experimentalGroups.removeAll();
experimentalGroups.add(experimentalGroupsCollection);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -356,9 +356,9 @@ private boolean isExperimentGroupInExperiment(Experiment experiment) {

private Disclaimer createNoGroupsDefinedDisclaimer(Experiment experiment) {
Disclaimer noGroupsDefinedCard = Disclaimer.createWithTitle(
"No experimental groups defined",
"Start the sample registration process by registering the first experimental group",
"Add Experimental Group");
"Design your experiment first",
"Start the sample registration process by defining experimental groups",
"Add groups");
String experimentId = experiment.experimentId().value();
noGroupsDefinedCard.subscribe(event -> routeToExperimentalGroupCreation(event, experimentId));
return noGroupsDefinedCard;
Expand All @@ -377,8 +377,9 @@ private void routeToExperimentalGroupCreation(ComponentEvent<?> componentEvent,
}

private Disclaimer createNoSamplesRegisteredDisclaimer(Experiment experiment) {
Disclaimer noSamplesDefinedCard = Disclaimer.createWithTitle("No samples registered",
"Register your first samples for this experiment", "Register Samples");
Disclaimer noSamplesDefinedCard = Disclaimer.createWithTitle(
"Manage your samples in one place",
"Start your project by registering the first sample batch", "Register batch");
noSamplesDefinedCard.subscribe(event -> {
batchRegistrationDialog.setSelectedExperiment(experiment);
batchRegistrationDialog.open();
Expand Down

0 comments on commit da5add8

Please sign in to comment.