From 1c5b33a5be67873abc19b1216e89d3402db5f0d6 Mon Sep 17 00:00:00 2001 From: tpylak <tpylak> Date: Tue, 9 Feb 2010 10:30:04 +0000 Subject: [PATCH] LMS-1338 dataset details viewer for screening (to be extended), allow plugin servers to access common server SVN: 14647 --- .../openbis/generic/server/CommonServer.java | 14 ++++ .../generic/server/CommonServerLogger.java | 7 +- .../openbis/generic/shared/ICommonServer.java | 8 +++ .../dataset/GenericDataSetViewer.java | 6 +- .../plugin/generic/server/GenericServer.java | 15 ++-- .../web/client/IScreeningClientService.java | 6 ++ .../client/IScreeningClientServiceAsync.java | 4 ++ .../client/web/client/ScreeningConstants.java | 2 + .../application/ClientPluginFactory.java | 46 ++++++++++++ .../detailviewers/PlateDatasetViewer.java | 70 +++++++++++++++++++ .../web/server/ScreeningClientService.java | 13 +++- .../screening/server/ScreeningServer.java | 10 +++ .../server/ScreeningServerLogger.java | 7 ++ .../screening/shared/IScreeningServer.java | 8 +++ 14 files changed, 201 insertions(+), 15 deletions(-) create mode 100644 screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateDatasetViewer.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 21688e32788..044274c428c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -44,6 +44,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.IEntityTypeBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.IEntityTypePropertyTypeBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.IExperimentTable; +import ch.systemsx.cisd.openbis.generic.server.business.bo.IExternalDataBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.IExternalDataTable; import ch.systemsx.cisd.openbis.generic.server.business.bo.IGridCustomFilterOrColumnBO; import ch.systemsx.cisd.openbis.generic.server.business.bo.IGroupBO; @@ -760,6 +761,19 @@ public final class CommonServer extends AbstractCommonServer<ICommonServer> impl } } + public ExternalData getDataSetInfo(final String sessionToken, final TechId datasetId) + { + final Session session = getSession(sessionToken); + final IExternalDataBO datasetBO = businessObjectFactory.createExternalDataBO(session); + datasetBO.loadDataByTechId(datasetId); + datasetBO.enrichWithParentsAndExperiment(); + datasetBO.enrichWithChildren(); + datasetBO.enrichWithProperties(); + final ExternalDataPE dataset = datasetBO.getExternalData(); + return ExternalDataTranslator.translate(dataset, getDataStoreBaseURL(), session + .getBaseIndexURL(), false); + } + public List<ExternalData> listRelatedDataSets(String sessionToken, DataSetRelatedEntities relatedEntities) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java index 52f80f7ef45..04afc73ec15 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java @@ -412,6 +412,12 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe return null; } + public ExternalData getDataSetInfo(String sessionToken, TechId datasetId) + { + logAccess(sessionToken, "getDataSetInfo", "datasetId(%s)", datasetId.getId()); + return null; + } + public List<ExternalData> listRelatedDataSets(String sessionToken, DataSetRelatedEntities entities) { @@ -814,5 +820,4 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe { logTracking(sessionToken, "delete_materials", "IDS(%s) REASON(%s)", materialIds, reason); } - } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java index a033fd51280..5a6c9484421 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java @@ -508,6 +508,14 @@ public interface ICommonServer extends IServer @ReturnValueFilter(validatorClass = ExternalDataValidator.class) public List<ExternalData> searchForDataSets(String sessionToken, DetailedSearchCriteria criteria); + /** + * For given {@link TechId} returns the corresponding {@link ExternalData}. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.OBSERVER) + public ExternalData getDataSetInfo(String sessionToken, + @AuthorizationGuard(guardClass = DataSetTechIdPredicate.class) TechId datasetId); + /** * Performs an <i>Hibernate Search</i> based on given parameters. */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java index 4f69318cc58..3dead55e844 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/GenericDataSetViewer.java @@ -94,7 +94,7 @@ abstract public class GenericDataSetViewer extends AbstractViewer<ExternalData> viewContext.getService().getDataSetInfo(datasetTechId, asyncCallback); } }; - viewer.reloadData(); + viewer.reloadAllData(); return new DatabaseModificationAwareComponent(viewer, viewer); } @@ -157,7 +157,7 @@ abstract public class GenericDataSetViewer extends AbstractViewer<ExternalData> /** * Load the dataset information. */ - protected void reloadData() + protected void reloadAllData() { loadDatasetInfo(datasetId, new DataSetInfoCallback(viewContext, this)); } @@ -276,7 +276,7 @@ abstract public class GenericDataSetViewer extends AbstractViewer<ExternalData> public void update(Set<DatabaseModificationKind> observedModifications) { - reloadData(); // reloads everything + reloadAllData(); // reloads everything } /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java index e9f44ecc77b..7a068b6f6b5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/server/GenericServer.java @@ -41,6 +41,7 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin; import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin; +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AttachmentWithContent; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetUpdateResult; @@ -79,7 +80,6 @@ import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.SampleIdentifierFa import ch.systemsx.cisd.openbis.generic.shared.dto.properties.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.translator.AttachmentTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.ExperimentTranslator; -import ch.systemsx.cisd.openbis.generic.shared.translator.ExternalDataTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.MaterialTranslator; import ch.systemsx.cisd.openbis.generic.shared.translator.SampleTranslator; import ch.systemsx.cisd.openbis.plugin.generic.shared.IGenericServer; @@ -97,6 +97,9 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen @Resource(name = ResourceNames.GENERIC_BUSINESS_OBJECT_FACTORY) private IGenericBusinessObjectFactory businessObjectFactory; + @Resource(name = ch.systemsx.cisd.openbis.generic.shared.ResourceNames.COMMON_SERVER) + protected ICommonServer commonServer; + public GenericServer() { } @@ -220,15 +223,7 @@ public final class GenericServer extends AbstractServer<IGenericServer> implemen public ExternalData getDataSetInfo(final String sessionToken, final TechId datasetId) { - final Session session = getSession(sessionToken); - final IExternalDataBO datasetBO = businessObjectFactory.createExternalDataBO(session); - datasetBO.loadDataByTechId(datasetId); - datasetBO.enrichWithParentsAndExperiment(); - datasetBO.enrichWithChildren(); - datasetBO.enrichWithProperties(); - final ExternalDataPE dataset = datasetBO.getExternalData(); - return ExternalDataTranslator.translate(dataset, getDataStoreBaseURL(), session - .getBaseIndexURL(), false); + return commonServer.getDataSetInfo(sessionToken, datasetId); } public AttachmentWithContent getExperimentFileAttachment(final String sessionToken, diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java index 254df319c64..c9ce265d97d 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientService.java @@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; @@ -56,6 +57,11 @@ public interface IScreeningClientService extends IClientService */ public Material getMaterialInfo(final TechId materialId) throws UserFailureException; + /** + * For given {@link TechId} returns corresponding {@link ExternalData}. + */ + public ExternalData getDataSetInfo(TechId datasetTechId); + /** * Fetches information about wells on a plate and their content. */ diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java index a10ad65932a..0b305f9ddad 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/IScreeningClientServiceAsync.java @@ -26,6 +26,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.GenericTableResult import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; @@ -50,6 +51,9 @@ public interface IScreeningClientServiceAsync extends IClientServiceAsync /** @see IScreeningClientService#getPlateContent(TechId) */ public void getPlateContent(TechId sampleId, final AsyncCallback<PlateContent> callback); + /** @see IScreeningClientService#getDataSetInfo(TechId) */ + public void getDataSetInfo(TechId datasetTechId, AsyncCallback<ExternalData> callback); + /** * @see IScreeningClientService#getPlateLocations(TechId, * ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentIdentifier) diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/ScreeningConstants.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/ScreeningConstants.java index 8c54af1d7d9..112ef58e5c9 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/ScreeningConstants.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/ScreeningConstants.java @@ -49,6 +49,8 @@ public class ScreeningConstants // code of the gene material type public static final String GENE_PLUGIN_TYPE_CODE = "GENE"; + public static final String IMAGE_DATASET_PLUGIN_TYPE_CODE = "HCS_IMAGE"; + /** path to the datastore screening servlet able to display images in different channels */ public static final String DATASTORE_SCREENING_SERVLET_URL = "datastore_server_screening"; } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java index e319877f3b1..b58a62a0b94 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java @@ -39,6 +39,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ExperimentIdentifi import ch.systemsx.cisd.openbis.generic.shared.basic.ICodeProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MaterialType; @@ -46,6 +47,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.IScreeningClientServiceAsync; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.ScreeningConstants; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.GeneMaterialViewer; +import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.PlateDatasetViewer; import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers.PlateSampleViewer; /** @@ -89,6 +91,9 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree } else if (entityKind == EntityKind.MATERIAL) { types.add(ScreeningConstants.GENE_PLUGIN_TYPE_CODE); + } else if (entityKind == EntityKind.DATA_SET) + { + types.add(ScreeningConstants.IMAGE_DATASET_PLUGIN_TYPE_CODE); } return types; } @@ -106,6 +111,10 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree { return (IClientPlugin<T, I>) new SampleClientPlugin(viewContext); } + if (EntityKind.DATA_SET.equals(entityKind)) + { + return (IClientPlugin<T, I>) new DatasetClientPlugin(viewContext); + } throw new UnsupportedOperationException("IClientPlugin for entity kind '" + entityKind + "' not implemented yet."); } @@ -181,6 +190,43 @@ public final class ClientPluginFactory extends AbstractClientPluginFactory<Scree return createViewerTab(viewer, materialId, Dict.MATERIAL, viewContext); } + private final class DatasetClientPlugin extends DelegatedClientPlugin<DataSetType> + { + private ScreeningViewContext screeningViewContext; + + private DatasetClientPlugin(ScreeningViewContext viewContext) + { + super(viewContext, EntityKind.DATA_SET); + this.screeningViewContext = viewContext; + } + + @Override + public final ITabItemFactory createEntityViewer(final IIdentifiable identifiable) + { + return new ITabItemFactory() + { + public ITabItem create() + { + final DatabaseModificationAwareComponent viewer = + PlateDatasetViewer.create(screeningViewContext, identifiable); + return createViewerTab(viewer, identifiable, Dict.DATA_SET, + screeningViewContext); + } + + public String getId() + { + final TechId sampleId = TechId.create(identifiable); + return PlateDatasetViewer.createId(sampleId); + } + + public HelpPageIdentifier getHelpPageIdentifier() + { + return HelpPageIdentifier.createSpecific("Plate Dataset Viewer"); + } + }; + } + } + private final class SampleClientPlugin extends DelegatedClientPlugin<SampleType> { private ScreeningViewContext screeningViewContext; diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateDatasetViewer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateDatasetViewer.java new file mode 100644 index 00000000000..be432586753 --- /dev/null +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/PlateDatasetViewer.java @@ -0,0 +1,70 @@ +/* + * Copyright 2008 ETH Zuerich, CISD + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.detailviewers; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gwt.user.client.rpc.AsyncCallback; + +import ch.systemsx.cisd.openbis.generic.client.web.client.application.SingleSectionPanel; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent; +import ch.systemsx.cisd.openbis.generic.shared.basic.IIdentifiable; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; +import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.dataset.GenericDataSetViewer; +import ch.systemsx.cisd.openbis.plugin.screening.client.web.client.application.ScreeningViewContext; + +/** + * The <i>screening</i> plate dataset viewer. + * + * @author Tomasz Pylak + */ +public final class PlateDatasetViewer extends GenericDataSetViewer +{ + public static DatabaseModificationAwareComponent create(final ScreeningViewContext viewContext, + final IIdentifiable identifiable) + { + PlateDatasetViewer viewer = new PlateDatasetViewer(viewContext, identifiable); + viewer.reloadAllData(); + return new DatabaseModificationAwareComponent(viewer, viewer); + } + + private final ScreeningViewContext screeningViewContext; + + public PlateDatasetViewer(final ScreeningViewContext viewContext, + final IIdentifiable identifiable) + { + super(viewContext, identifiable); + this.screeningViewContext = viewContext; + } + + @Override + protected void loadDatasetInfo(TechId datasetTechId, AsyncCallback<ExternalData> asyncCallback) + { + screeningViewContext.getService().getDataSetInfo(datasetTechId, asyncCallback); + } + + @Override + protected List<SingleSectionPanel> createAdditionalSectionPanels() + { + List<SingleSectionPanel> sections = new ArrayList<SingleSectionPanel>(); + // TODO 2010-02-09, Tomasz Pylak: implement me + // sections.add(PlateLayoutSection.createForDataset(screeningViewContext, datasetId)); + return sections; + } +} diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java index a83c4748611..ab8d5618d83 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/ScreeningClientService.java @@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.AbstractClientService; import ch.systemsx.cisd.openbis.generic.client.web.server.translator.UserFailureExceptionTranslator; import ch.systemsx.cisd.openbis.generic.shared.IServer; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GenericTableRow; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; @@ -114,6 +115,17 @@ public final class ScreeningClientService extends AbstractClientService implemen } } + public ExternalData getDataSetInfo(TechId datasetTechId) + { + try + { + return server.getDataSetInfo(getSessionToken(), datasetTechId); + } catch (final ch.systemsx.cisd.common.exceptions.UserFailureException e) + { + throw UserFailureExceptionTranslator.translate(e); + } + } + public PlateContent getPlateContent(TechId plateId) throws UserFailureException { try @@ -160,5 +172,4 @@ public final class ScreeningClientService extends AbstractClientService implemen { return prepareExportEntities(criteria); } - } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java index adc4dc9e654..0a7ee7b2587 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServer.java @@ -30,7 +30,9 @@ import ch.systemsx.cisd.openbis.generic.server.business.bo.ISampleBO; import ch.systemsx.cisd.openbis.generic.server.dataaccess.IDAOFactory; import ch.systemsx.cisd.openbis.generic.server.plugin.IDataSetTypeSlaveServerPlugin; import ch.systemsx.cisd.openbis.generic.server.plugin.ISampleTypeSlaveServerPlugin; +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; import ch.systemsx.cisd.openbis.generic.shared.dto.MaterialPE; @@ -59,6 +61,9 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl @Resource(name = ResourceNames.SCREENING_BUSINESS_OBJECT_FACTORY) private IScreeningBusinessObjectFactory businessObjectFactory; + @Resource(name = ch.systemsx.cisd.openbis.generic.shared.ResourceNames.COMMON_SERVER) + protected ICommonServer commonServer; + public ScreeningServer() { } @@ -124,4 +129,9 @@ public final class ScreeningServer extends AbstractServer<IScreeningServer> impl return GenePlateLocationsLoader.load(session, businessObjectFactory, getDAOFactory(), geneMaterialId, experimentIdentifier); } + + public ExternalData getDataSetInfo(String sessionToken, TechId datasetId) + { + return commonServer.getDataSetInfo(sessionToken, datasetId); + } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java index 9a6b44a6916..0fc49e47606 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/server/ScreeningServerLogger.java @@ -22,6 +22,7 @@ import java.util.List; import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.openbis.generic.server.AbstractServerLogger; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewAttachment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewSample; @@ -79,4 +80,10 @@ final class ScreeningServerLogger extends AbstractServerLogger implements IScree logTracking(sessionToken, "getMaterialInfo", "materialId(%s)", materialId.getId()); return null; } + + public ExternalData getDataSetInfo(String sessionToken, TechId datasetId) + { + logTracking(sessionToken, "getDataSetInfo", "datasetId(%s)", datasetId.getId()); + return null; + } } diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java index 920a1d79a76..1458612628e 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/shared/IScreeningServer.java @@ -28,6 +28,7 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.annotation.RolesAll import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.GroupIdentifierPredicate; import ch.systemsx.cisd.openbis.generic.shared.authorization.predicate.SampleTechIdPredicate; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExternalData; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleParentWithDerived; @@ -77,4 +78,11 @@ public interface IScreeningServer extends IServer @RolesAllowed(RoleSet.OBSERVER) public Material getMaterialInfo(String sessionToken, TechId materialId); + /** + * For given {@link TechId} returns the corresponding {@link ExternalData}. + */ + @Transactional(readOnly = true) + @RolesAllowed(RoleSet.OBSERVER) + public ExternalData getDataSetInfo(String sessionToken, TechId datasetId); + } -- GitLab