diff --git a/openbis/etc/web-client.properties b/openbis/etc/web-client.properties index 56e30802c25fd13539c89075b3b03ea3facea311..72b46e0a527b56a1399773f6d489cb25afcec048 100644 --- a/openbis/etc/web-client.properties +++ b/openbis/etc/web-client.properties @@ -25,18 +25,18 @@ # # Example: # -#detail-views = sample-view, experiment-view, data-view +detail-views = sample-view, experiment-view, data-view -#sample-view.view = generic_sample_viewer -#sample-view.types = CELL_PLATE, CONTROL_LAYOUT -#sample-view.hide-sections = attachment-section, container-sample-section, derived-samples-section +sample-view.view = generic_sample_viewer +sample-view.types = CELL_PLATE, CONTROL_LAYOUT +sample-view.hide-sections = attachment-section, container-sample-section, derived-samples-section -#experiment-view.view = generic_sample_viewer -#experiment-view.types = SIRNA_HCS -#experiment-view.hide-sections = attachment-section +experiment-view.view = generic_sample_viewer +experiment-view.types = SIRNA_HCS +experiment-view.hide-sections = attachment-section -#data-view.view = generic-dataset-viewer -#data-view.types = HCS_IMAGE -#data-view.hide-smart-view = true -#data-view.hide-file-view = false +data-view.view = generic-dataset-viewer +data-view.types = HCS_IMAGE +data-view.hide-smart-view = true +data-view.hide-file-view = false diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/TabContent.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/TabContent.java index 91fb45ebce81d867bc888dbe9e46718f7f95e121..0a16bce05df49df2db7456fb9b41bd69620daf69 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/TabContent.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/TabContent.java @@ -49,6 +49,8 @@ abstract public class TabContent extends ContentPanel */ private boolean autoDisposeComponents = true; + private String parentDisplayID; + public TabContent(final String header, IViewContext<?> viewContext) { this.viewContext = viewContext; @@ -60,6 +62,16 @@ abstract public class TabContent extends ContentPanel setLayout(new FitLayout()); } + public String getParentDisplayID() + { + return parentDisplayID; + } + + public void setParentDisplayID(String parentDisplayID) + { + this.parentDisplayID = parentDisplayID; + } + public void setDisplayID(IDisplayTypeIDGenerator generator) { this.displayId = generator.createID(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java index 9cd0a3914ac99a4ca5708417b3405de4748e9dbe..e91e651a5009c34c14f073b04f4789aeede7c5ca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java @@ -121,9 +121,10 @@ public class SectionsPanel extends LayoutContainer { DetailViewConfiguration viewSettingsOrNull = viewContext.getDisplaySettingsManager().tryGetDetailViewSettings(getDisplayID()); + String panelDisplayId = panel.getDisplayID().toUpperCase(); if (viewSettingsOrNull != null && viewSettingsOrNull.getDisabledTabs() - .contains(panel.getDisplayID().toUpperCase())) + .contains(panelDisplayId)) { return; } @@ -133,6 +134,7 @@ public class SectionsPanel extends LayoutContainer panel.disableAutoDisposeComponents(); elements.add(element); addToToolbar(element); + panel.setParentDisplayID(getDisplayID()); } @Override diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataViewSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataViewSection.java index 0bcd3847feb112a7309ee881c8b1d84a3541b1ba..c22229b22775bdcfc9c770d30044600b243c540e 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataViewSection.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataViewSection.java @@ -46,6 +46,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelecte import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataStoreServiceKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DetailViewConfiguration; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; /** @@ -89,8 +90,19 @@ public class DataViewSection extends TabContent @Override protected void showContent() { + boolean hideFileView = false; + boolean hideSmartView = false; + DetailViewConfiguration viewSettingsOrNull = + viewContext.getDisplaySettingsManager().tryGetDetailViewSettings( + getParentDisplayID()); + if (viewSettingsOrNull != null) + { + hideFileView = viewSettingsOrNull.isHideFileView(); + hideSmartView = viewSettingsOrNull.isHideSmartView(); + } final DatastoreServiceSelectionWidget serviceSelectionWidget = - new DatastoreServiceSelectionWidget(viewContext, dataset); + new DatastoreServiceSelectionWidget(viewContext, dataset, hideFileView, + hideSmartView); getHeader().addTool(new LabelToolItem(serviceSelectionWidget.getFieldLabel() + ": ")); getHeader().addTool(serviceSelectionWidget); serviceSelectionWidget.addSelectionChangedListener(createServiceSelectionChangedListener()); @@ -203,13 +215,19 @@ public class DataViewSection extends TabContent private DatastoreServiceDescriptionModel defaultModel; + private final boolean hideFileView; + + private final boolean hideSmartView; + public DatastoreServiceSelectionWidget(final IViewContext<?> viewContext, - final ExternalData dataset) + final ExternalData dataset, boolean hideFileView, boolean hideSmartView) { super(viewContext, ("data-set_" + dataset.getCode() + "_viewer"), Dict.BUTTON_SHOW, ModelDataPropertyNames.LABEL, "viewer", "viewers"); this.viewContext = viewContext; this.dataset = dataset; + this.hideFileView = hideFileView; + this.hideSmartView = hideSmartView; if (dataset.getStatus().isAvailable()) { addPostRefreshCallback(createDefaultServiceSelectionAction()); @@ -251,8 +269,14 @@ public class DataViewSection extends TabContent { List<DatastoreServiceDescriptionModel> models = DatastoreServiceDescriptionModel.convert(result, dataset); - models.add(0, defaultModel = createFilesServiceDescription(FILES_SMART_VIEW)); - models.add(1, createFilesServiceDescription(FILES_HOME_VIEW)); + if (hideFileView == false) + { + models.add(0, createFilesServiceDescription(FILES_HOME_VIEW)); + } + if (hideSmartView == false) + { + models.add(0, defaultModel = createFilesServiceDescription(FILES_SMART_VIEW)); + } return models; } diff --git a/screening/etc/web-client.properties b/screening/etc/web-client.properties new file mode 100644 index 0000000000000000000000000000000000000000..68a1de8c85fbb1920f619d95bb1dae9e067d4789 --- /dev/null +++ b/screening/etc/web-client.properties @@ -0,0 +1,42 @@ +# Configuration of entity (experiment, sample, data set, material) detail views. +# +# Mandatory properties: +# - view (entity detail view id) +# - types (list of entity type codes) +# Optional properties: +# - hide-sections (list of section ids) +# - hide-smart-view (removes "Smart View" from Data Set Detail View -> Data View) (generic_dataset_viewer) +# - hide-file-view (removes "File View" from Data Set Detail View -> Data View) (generic_dataset_viewer) +# Available entity-detail-views: +# generic_dataset_viewer +# generic_experiment_viewer +# generic_sample_viewer +# generic_material_viewer +# Available sections: +# attachment-section +# container-sample-section +# derived-samples-section +# parent-samples-section +# data-set-section +# data-set-parents-section +# data-set-children-section +# data-set-data-section +# module-section +# +# Example: +# +detail-views = sample-view, experiment-view, data-view + +sample-view.view = generic_sample_viewer +sample-view.types = PLATE +sample-view.hide-sections = + +experiment-view.view = generic_sample_viewer +experiment-view.types = SIRNA_HCS +experiment-view.hide-sections = attachment-section + +data-view.view = generic_dataset_viewer +data-view.types = HCS_IMAGE +data-view.hide-smart-view = true +data-view.hide-file-view = true + diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/DisplayTypeIDGenerator.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/DisplayTypeIDGenerator.java index 05e2c019822bed99d95975da68c73be79e087958..565f57fd6a901f4f823f666acac9c4b35c778bfe 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/DisplayTypeIDGenerator.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/DisplayTypeIDGenerator.java @@ -25,7 +25,15 @@ public enum DisplayTypeIDGenerator implements IDisplayTypeIDGenerator { PLATE_MATERIAL_REVIEWER("plate-material-reviewer"), - PLATE_MATERIAL_BROWSER("plate-material-browser") + PLATE_LAYOUT_SAMPLE_SECTION("plate-layout-sample-section"), + + PLATE_LAYOUT_DATASET_SECTION("plate-layout-dataset-section"), + + PLATE_LOCATIONS_MATERIAL_SECTION("plate-locations-material-section"), + + EXPERIMENT_PLATE_LOCATIONS_SECTION("plate-locations-experiment-section"), + + EXPERIMENT_WELL_MATERIALS_SECTION("experiment-well-materials-section"), ; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java index f000886801cd12befea6e73392dead5ce0f3d00b..5d234deb06410063f389f662a20aebb87e7ae52f 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentPlateLocationsSection.java @@ -66,7 +66,7 @@ public class ExperimentPlateLocationsSection extends TabContent new CheckBoxField(screeningViewContext.getMessage(Dict.EXACT_MATCH_ONLY), false); exactMatchOnly.setBoxLabel(screeningViewContext.getMessage(Dict.EXACT_MATCH_ONLY)); exactMatchOnly.setValue(true); - setDisplayID(DisplayTypeIDGenerator.PLATE_MATERIAL_REVIEWER); + setDisplayID(DisplayTypeIDGenerator.EXPERIMENT_PLATE_LOCATIONS_SECTION); screeningViewContext.getCommonService().listMaterialTypes( new AbstractAsyncCallback<List<MaterialType>>(screeningViewContext) { diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java index d47566f1bdaa3262e4cb1c06a99fa468aa83cefd..7b6bbd36aaa3114fdea73f95054ad3822e7502ca 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialsSection.java @@ -15,7 +15,6 @@ import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.D */ public class ExperimentWellMaterialsSection extends DisposableTabContent { - public static final String ID_SUFFIX = "ExperimentWellMaterialsSection"; private final IViewContext<IScreeningClientServiceAsync> screeningViewContext; @@ -29,7 +28,7 @@ public class ExperimentWellMaterialsSection extends DisposableTabContent screeningViewContext); this.screeningViewContext = screeningViewContext; this.experiment = experiment; - setDisplayID(DisplayTypeIDGenerator.PLATE_MATERIAL_BROWSER); + setDisplayID(DisplayTypeIDGenerator.EXPERIMENT_WELL_MATERIALS_SECTION); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutDatasetSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutDatasetSection.java index d31b32d34b6b87b7ca4770bfe11a2e2e347186dd..d64a06cde0a9697f8b85c203a0cad9e15cdcbeef 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutDatasetSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutDatasetSection.java @@ -25,10 +25,10 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.TabContent; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict; +import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningViewContext; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateImages; @@ -51,7 +51,7 @@ public class PlateLayoutDatasetSection extends TabContent super("Plate Layout", viewContext); this.viewContext = viewContext; this.datasetId = datasetId; - setDisplayID(DisplayTypeIDGenerator.CONTAINER_SAMPLES_SECTION); + setDisplayID(DisplayTypeIDGenerator.PLATE_LAYOUT_DATASET_SECTION); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutSampleSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutSampleSection.java index 50f08894f8159251af6e7c3031beb5f0dc116380..881462d29459b728f540ad88e1fb9f7e78db97dd 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutSampleSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLayoutSampleSection.java @@ -31,12 +31,12 @@ import com.google.gwt.user.client.ui.Widget; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.TabContent; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.data.DataSetReportGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DisplayedOrSelectedDatasetCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatastoreServiceDescription; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.Dict; +import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningViewContext; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.DatasetReference; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateContent; @@ -50,7 +50,6 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.ScreeningConst */ public class PlateLayoutSampleSection extends TabContent { - public static final String ID_SUFFIX = "PlateLayoutSection"; private final ScreeningViewContext viewContext; @@ -61,7 +60,7 @@ public class PlateLayoutSampleSection extends TabContent super("Plate Layout", viewContext); this.viewContext = viewContext; this.sampleId = sampleId; - setDisplayID(DisplayTypeIDGenerator.CONTAINER_SAMPLES_SECTION); + setDisplayID(DisplayTypeIDGenerator.PLATE_LAYOUT_SAMPLE_SECTION); } @Override diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLocationsMaterialSection.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLocationsMaterialSection.java index 5eaf6ba06ec84909d2f05d52c05e8f3aa204616d..d0f8b29df390ec55453d2001efc2058402888410 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLocationsMaterialSection.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateLocationsMaterialSection.java @@ -2,10 +2,10 @@ package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application. import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.TabContent; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync; +import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.PlateMaterialsSearchCriteria.ExperimentSearchCriteria; /** @@ -32,7 +32,7 @@ class PlateLocationsMaterialSection extends TabContent this.reviewer = PlateMaterialReviewer.create(screeningViewContext, experimentCriteriaOrNull, materialId); - setDisplayID(DisplayTypeIDGenerator.CONTAINER_SAMPLES_SECTION); + setDisplayID(DisplayTypeIDGenerator.PLATE_LOCATIONS_MATERIAL_SECTION); } @Override diff --git a/screening/source/java/service.properties b/screening/source/java/service.properties index 699cb58d957641af68722367c1a2cc80e4ab8774..71c7e68f196af6be736830ca72637c8f3b009b10 100644 --- a/screening/source/java/service.properties +++ b/screening/source/java/service.properties @@ -16,6 +16,7 @@ database.create-from-scratch = false database.script-single-step-mode = false database.url-host-part = database.kind = screening_demo +#database.kind = lmc_mig database.owner = database.owner-password = database.admin-user = @@ -60,4 +61,7 @@ hibernate.search.index-mode = NO_INDEX # Default is 1000. hibernate.search.batch-size = 1000 # If 'async', the update of indices will be done in a separate thread. -hibernate.search.worker.execution=async \ No newline at end of file +hibernate.search.worker.execution=async + +# Name of the file that stores Web Client configuration +web-client-configuration-file = etc/web-client.properties \ No newline at end of file