diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java index d48923c6b2c60cb30b5d2d34fcdd8380149e059b..b92a6287aa43821a70496f27db3413dc94c2b876 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractClientService.java @@ -197,7 +197,8 @@ public abstract class AbstractClientService implements IClientService, { return new AbstractOriginalDataProviderWithoutHeaders<T>() { - public List<T> getOriginalData() throws UserFailureException + @Override + public List<T> getFullOriginalData() throws UserFailureException { throw new IllegalStateException("Data not found in the cache"); } @@ -381,6 +382,12 @@ public abstract class AbstractClientService implements IClientService, ResultSet<TableModelRowWithObject<Null>> resultSet = listEntities(criteria, new IOriginalDataProvider<TableModelRowWithObject<Null>>() { + public List<TableModelRowWithObject<Null>> getOriginalData(int maxSize) + throws UserFailureException + { + return getOriginalData(); + } + public List<TableModelRowWithObject<Null>> getOriginalData() throws UserFailureException { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractOriginalDataProviderWithoutHeaders.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractOriginalDataProviderWithoutHeaders.java index 8a5aeb724e6e0a8645e554e2f98e5dce9685a147..87c783e0b53a0c0ef7c0dae02518847a83d655fc 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractOriginalDataProviderWithoutHeaders.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/AbstractOriginalDataProviderWithoutHeaders.java @@ -19,6 +19,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.server; import java.util.ArrayList; import java.util.List; +import ch.systemsx.cisd.common.exceptions.UserFailureException; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDataProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; @@ -31,11 +32,40 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; public abstract class AbstractOriginalDataProviderWithoutHeaders<T> implements IOriginalDataProvider<T> { - private static final List<TableModelColumnHeader> NO_HEADERS = new ArrayList<TableModelColumnHeader>(); + private static final List<TableModelColumnHeader> NO_HEADERS = + new ArrayList<TableModelColumnHeader>(); + + private List<T> originalData; public List<TableModelColumnHeader> getHeaders() { // Collections.emptyList() can not be serialized by GWT return NO_HEADERS; } + + public List<T> getOriginalData(int maxSize) throws UserFailureException + { + originalData = getOriginalData(); + List<T> list = new ArrayList<T>(); + for (T item : originalData) + { + if (list.size() == maxSize) + { + break; + } + list.add(item); + } + return list; + } + + public List<T> getOriginalData() throws UserFailureException + { + if (originalData != null) + { + return originalData; + } + return getFullOriginalData(); + } + + public abstract List<T> getFullOriginalData(); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java index bc7e0b6d97514d040124227234c5f28726f67114..ed812a093ca6aa0d50cc3e56d0f46d6fcab417ff 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java @@ -582,7 +582,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<PropertyType>() { - public List<PropertyType> getOriginalData() throws UserFailureException + @Override + public List<PropertyType> getFullOriginalData() throws UserFailureException { return listPropertyTypes(true); } @@ -608,7 +609,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<EntityTypePropertyType<?>>() { - public List<EntityTypePropertyType<?>> getOriginalData() + @Override + public List<EntityTypePropertyType<?>> getFullOriginalData() throws UserFailureException { return extractAssignments(listPropertyTypes(true)); @@ -669,7 +671,8 @@ public final class CommonClientService extends AbstractClientService implements { return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<Script>() { - public List<Script> getOriginalData() throws UserFailureException + @Override + public List<Script> getFullOriginalData() throws UserFailureException { return listScripts(criteria.tryGetScriptType(), criteria.tryGetEntityKind()); } @@ -711,7 +714,8 @@ public final class CommonClientService extends AbstractClientService implements { return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<Person>() { - public List<Person> getOriginalData() throws UserFailureException + @Override + public List<Person> getFullOriginalData() throws UserFailureException { if (criteria.getAuthorizationGroupId() == null) return listPersons(); @@ -742,7 +746,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<RoleAssignment>() { - public List<RoleAssignment> getOriginalData() throws UserFailureException + @Override + public List<RoleAssignment> getFullOriginalData() throws UserFailureException { return listRoleAssignments(); } @@ -798,7 +803,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<MaterialType>() { - public List<MaterialType> getOriginalData() throws UserFailureException + @Override + public List<MaterialType> getFullOriginalData() throws UserFailureException { return listMaterialTypes(); } @@ -810,7 +816,8 @@ public final class CommonClientService extends AbstractClientService implements { return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<SampleType>() { - public List<SampleType> getOriginalData() throws UserFailureException + @Override + public List<SampleType> getFullOriginalData() throws UserFailureException { return listSampleTypes(); } @@ -824,7 +831,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<ExperimentType>() { - public List<ExperimentType> getOriginalData() throws UserFailureException + @Override + public List<ExperimentType> getFullOriginalData() throws UserFailureException { return listExperimentTypes(); } @@ -837,7 +845,8 @@ public final class CommonClientService extends AbstractClientService implements { return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<DataSetType>() { - public List<DataSetType> getOriginalData() throws UserFailureException + @Override + public List<DataSetType> getFullOriginalData() throws UserFailureException { return listDataSetTypes(); } @@ -861,7 +870,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntitiesWithTypes(criteria, new AbstractOriginalDataProviderWithoutHeaders<ExternalData>() { - public List<ExternalData> getOriginalData() throws UserFailureException + @Override + public List<ExternalData> getFullOriginalData() throws UserFailureException { final String sessionToken = getSessionToken(); final List<ExternalData> externalData = @@ -880,7 +890,8 @@ public final class CommonClientService extends AbstractClientService implements new AbstractOriginalDataProviderWithoutHeaders<ExternalData>() { - public List<ExternalData> getOriginalData() throws UserFailureException + @Override + public List<ExternalData> getFullOriginalData() throws UserFailureException { final String sessionToken = getSessionToken(); final List<ExternalData> externalData = @@ -900,7 +911,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntitiesWithTypes(criteria, new AbstractOriginalDataProviderWithoutHeaders<ExternalData>() { - public List<ExternalData> getOriginalData() throws UserFailureException + @Override + public List<ExternalData> getFullOriginalData() throws UserFailureException { final String sessionToken = getSessionToken(); final List<ExternalData> externalData = @@ -1741,7 +1753,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(criteria, new AbstractOriginalDataProviderWithoutHeaders<AttachmentVersions>() { - public List<AttachmentVersions> getOriginalData() + @Override + public List<AttachmentVersions> getFullOriginalData() throws UserFailureException { return listAttachmentVersions(holderId, holderKind); @@ -2134,6 +2147,13 @@ public final class CommonClientService extends AbstractClientService implements { return null; } + + public List<TableModelRowWithObject<Null>> getOriginalData(int maxSize) + throws UserFailureException + { + return getOriginalData(); + } + }; return new TypedTableResultSet<Null>(listEntities(resultSetConfig, dataProvider)); } @@ -2259,7 +2279,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(resultSetConfig, new AbstractOriginalDataProviderWithoutHeaders<AuthorizationGroup>() { - public List<AuthorizationGroup> getOriginalData() + @Override + public List<AuthorizationGroup> getFullOriginalData() throws UserFailureException { return listAuthorizationGroups(); @@ -2408,7 +2429,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(resultSetConfig, new AbstractOriginalDataProviderWithoutHeaders<GridCustomFilter>() { - public List<GridCustomFilter> getOriginalData() throws UserFailureException + @Override + public List<GridCustomFilter> getFullOriginalData() throws UserFailureException { return listFilters(gridId); } @@ -2480,7 +2502,8 @@ public final class CommonClientService extends AbstractClientService implements return listEntities(resultSetConfig, new AbstractOriginalDataProviderWithoutHeaders<GridCustomColumn>() { - public List<GridCustomColumn> getOriginalData() throws UserFailureException + @Override + public List<GridCustomColumn> getFullOriginalData() throws UserFailureException { return listGridCustomColumns(gridId); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListDataSetSearchOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListDataSetSearchOriginalDataProvider.java index 78dae1a287de363519d508cb18b823d961f308df..ab331afa0c951044f64157da49fbb7c0b282be6f 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListDataSetSearchOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListDataSetSearchOriginalDataProvider.java @@ -29,7 +29,8 @@ final class ListDataSetSearchOriginalDataProvider extends // AbstractOriginalDataProvider // - public final List<ExternalData> getOriginalData() + @Override + public final List<ExternalData> getFullOriginalData() { final List<ExternalData> hits = commonServer.searchForDataSets(sessionToken, criteria); return hits; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListExperimentsOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListExperimentsOriginalDataProvider.java index 7a95f3a4571eeb14ed5bd48bf8406f4d9a3b4789..e642439739352497043ebc8ae61d540924b11ed6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListExperimentsOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListExperimentsOriginalDataProvider.java @@ -44,7 +44,8 @@ final class ListExperimentsOriginalDataProvider extends AbstractOriginalDataProv // AbstractOriginalDataProvider // - public final List<Experiment> getOriginalData() + @Override + public final List<Experiment> getFullOriginalData() { final List<Experiment> experiments = commonServer.listExperiments(sessionToken, listCriteria.getExperimentType(), diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMatchingEntitiesOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMatchingEntitiesOriginalDataProvider.java index b5801c53b430282d8e8a7354d556bb3e47088184..bfbc16782f1b9202e387cfba1a67363d3dd11e5d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMatchingEntitiesOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMatchingEntitiesOriginalDataProvider.java @@ -36,7 +36,8 @@ final class ListMatchingEntitiesOriginalDataProvider extends // AbstractOriginalDataProvider // - public final List<MatchingEntity> getOriginalData() + @Override + public final List<MatchingEntity> getFullOriginalData() { final List<MatchingEntity> entities = commonServer.listMatchingEntities(sessionToken, matchingEntities, queryText, diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMaterialOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMaterialOriginalDataProvider.java index c0794eb5a079817b520e7b18cb12fa98d7364a9a..c3aa2cf0a1f2c8e9becfb8d99c07955a3cbed8ad 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMaterialOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListMaterialOriginalDataProvider.java @@ -43,7 +43,8 @@ final class ListMaterialOriginalDataProvider extends AbstractOriginalDataProvide // AbstractOriginalDataProvider // - public final List<Material> getOriginalData() + @Override + public final List<Material> getFullOriginalData() { final List<Material> materials = commonServer.listMaterials(sessionToken, displayCriteria.getListCriteria(), true); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListRelatedDataSetOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListRelatedDataSetOriginalDataProvider.java index f8ea286bbca9da43d7a8d2852c027f01844f00e2..7a6a2305b4429116d3cc3608fde4f4af12f195c4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListRelatedDataSetOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListRelatedDataSetOriginalDataProvider.java @@ -29,7 +29,8 @@ final class ListRelatedDataSetOriginalDataProvider extends // AbstractOriginalDataProvider // - public final List<ExternalData> getOriginalData() + @Override + public final List<ExternalData> getFullOriginalData() { final List<ExternalData> hits = commonServer.listRelatedDataSets(sessionToken, entities); return hits; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListSamplesOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListSamplesOriginalDataProvider.java index 30db1023054d2f16f80db8c7dfe5d0433f237354..c7ecf7a1b7d2557f9b4429a6814b8d639f819c2c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListSamplesOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/ListSamplesOriginalDataProvider.java @@ -29,7 +29,8 @@ final class ListSamplesOriginalDataProvider extends AbstractOriginalDataProvider // AbstractOriginalDataProvider // - public final List<Sample> getOriginalData() + @Override + public final List<Sample> getFullOriginalData() { switch (criteria.getCriteriaKind()) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractTableModelProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractTableModelProvider.java index ccc9dfc1cb0da84d4e51cd864f68d83b3b91b0c6..89648b5ec26c4ab3c3fa4caa325aa9b89ee60f23 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractTableModelProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractTableModelProvider.java @@ -16,7 +16,12 @@ package ch.systemsx.cisd.openbis.generic.client.web.server.resultset; +import java.util.ArrayList; +import java.util.List; + import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; /** @@ -39,6 +44,23 @@ public abstract class AbstractTableModelProvider<T extends ISerializable> implem return model; } + public TypedTableModel<T> getTableModel(int maxSize) + { + TypedTableModel<T> tableModel = getTableModel(); + List<TableModelColumnHeader> headers = tableModel.getHeader(); + List<TableModelRowWithObject<T>> rows = tableModel.getRows(); + List<TableModelRowWithObject<T>> limitedRows = new ArrayList<TableModelRowWithObject<T>>(); + for (TableModelRowWithObject<T> row : rows) + { + if (limitedRows.size() == maxSize) + { + break; + } + limitedRows.add(row); + } + return new TypedTableModel<T>(headers, limitedRows); + } + /** * Creates the table model. The returned instance is always returned by {@link #getTableModel()} * . diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataProviderAdapter.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataProviderAdapter.java index 9513b779992f8ed25b178ac2e1046ba338831c97..a9179b00c74dd915815ebfaa1c0e504e11f1c13b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataProviderAdapter.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/DataProviderAdapter.java @@ -18,6 +18,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.server.resultset; import java.util.List; +import ch.systemsx.cisd.openbis.generic.client.web.server.AbstractOriginalDataProviderWithoutHeaders; import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; @@ -25,8 +26,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject /** * @author Franz-Josef Elmer */ -public final class DataProviderAdapter<T extends ISerializable> implements - IOriginalDataProvider<TableModelRowWithObject<T>> +public final class DataProviderAdapter<T extends ISerializable> extends + AbstractOriginalDataProviderWithoutHeaders<TableModelRowWithObject<T>> { private final ITableModelProvider<T> provider; @@ -35,11 +36,13 @@ public final class DataProviderAdapter<T extends ISerializable> implements this.provider = provider; } - public List<TableModelRowWithObject<T>> getOriginalData() + @Override + public List<TableModelRowWithObject<T>> getFullOriginalData() { return provider.getTableModel().getRows(); } + @Override public List<TableModelColumnHeader> getHeaders() { return provider.getTableModel().getHeader(); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/IOriginalDataProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/IOriginalDataProvider.java index a432f14230068a78a1a128abe96a129864f93d8d..af43dc83f9f834cb6df1cbb2781d6eccba767a4d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/IOriginalDataProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/IOriginalDataProvider.java @@ -29,6 +29,11 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelColumnHeader; public interface IOriginalDataProvider<T> { + /** + * Gets the original data limited to not more than specified number of items. + */ + public List<T> getOriginalData(int maxSize) throws UserFailureException; + /** * Returns the original data. */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ITableModelProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ITableModelProvider.java index 733fd2eda39ecc9ce6412d15f4d6397f251310ab..6121aed388008ba2719f8d4aa9a3a37be51a24a8 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ITableModelProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/ITableModelProvider.java @@ -20,9 +20,19 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.ISerializable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; /** + * Provider of a {@link TypedTableModel} instance. + * * @author Franz-Josef Elmer */ public interface ITableModelProvider<T extends ISerializable> { + /** + * Returns the full table model. + */ public TypedTableModel<T> getTableModel(); + + /** + * Returns the table model limited as specified. + */ + public TypedTableModel<T> getTableModel(int maxSize); } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/server/QueryClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/server/QueryClientService.java index 4dac8692e4a02a465c537eab772220b5277ab2d3..c7f0010381426ba3ac532529df5c7f4f56b3418c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/server/QueryClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/client/web/server/QueryClientService.java @@ -198,7 +198,8 @@ public class QueryClientService extends AbstractClientService implements IQueryC return listEntities(resultSetConfig, new AbstractOriginalDataProviderWithoutHeaders<QueryExpression>() { - public List<QueryExpression> getOriginalData() + @Override + public List<QueryExpression> getFullOriginalData() throws UserFailureException { return queryServer.listQueries(getSessionToken(), diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListDataSetProteinDataProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListDataSetProteinDataProvider.java index 6d0cfb85a9d1f0a271d126e09bb67cf76b3d7556..b40ba0c3dfefd45264670ea458a86956e317bbef 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListDataSetProteinDataProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListDataSetProteinDataProvider.java @@ -46,7 +46,8 @@ public class ListDataSetProteinDataProvider extends AbstractOriginalDataProvider this.proteinReferenceID = proteinReferenceID; } - public List<DataSetProtein> getOriginalData() throws UserFailureException + @Override + public List<DataSetProtein> getFullOriginalData() throws UserFailureException { return server.listProteinsByExperimentAndReference(sessionToken, experimentID, proteinReferenceID); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinOriginalDataProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinOriginalDataProvider.java index 4f5dd6975c057fab02d10832cd0d807677442ef4..6b6c6bdd7eb3ac359ce4745430d4d7a95f0ea96a 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinOriginalDataProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinOriginalDataProvider.java @@ -53,7 +53,8 @@ class ListProteinOriginalDataProvider extends AbstractOriginalDataProviderWithou this.aggregateOnOriginal = aggregateOnOriginal; } - public List<ProteinInfo> getOriginalData() throws UserFailureException + @Override + public List<ProteinInfo> getFullOriginalData() throws UserFailureException { return server.listProteinsByExperiment(sessionToken, experimentID, falseDiscoveryRate, aggregateFunction, treatmentTypeCode, aggregateOnOriginal); diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSequenceDataProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSequenceDataProvider.java index e78bb8299b1015db85a6a908a903231da8987c12..65eff52485668bf5e3e08f4034359531cf14edb3 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSequenceDataProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSequenceDataProvider.java @@ -43,7 +43,8 @@ class ListProteinSequenceDataProvider extends AbstractOriginalDataProviderWithou this.proteinReferenceID = proteinReferenceID; } - public List<ProteinSequence> getOriginalData() throws UserFailureException + @Override + public List<ProteinSequence> getFullOriginalData() throws UserFailureException { return server.listProteinSequencesByProteinReference(sessionToken, proteinReferenceID); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSummaryProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSummaryProvider.java index d686893bcb1f996701aa8b24c0af2a7d734e0227..9cf596e0f134358df86e2830ba7257ed3cbb5382 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSummaryProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListProteinSummaryProvider.java @@ -43,7 +43,8 @@ class ListProteinSummaryProvider extends AbstractOriginalDataProviderWithoutHead this.experimentID = experimentID; } - public List<ProteinSummary> getOriginalData() throws UserFailureException + @Override + public List<ProteinSummary> getFullOriginalData() throws UserFailureException { return server.listProteinSummariesByExperiment(sessionToken, experimentID); } diff --git a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListSampleAbundanceDataProvider.java b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListSampleAbundanceDataProvider.java index 21e5b9f318d4da690f06cd667fbb8f1c80e17353..1889d5494559711a4e0b924551d4473ae65889d4 100644 --- a/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListSampleAbundanceDataProvider.java +++ b/rtd_phosphonetx/source/java/ch/systemsx/cisd/openbis/plugin/phosphonetx/client/web/server/ListSampleAbundanceDataProvider.java @@ -49,7 +49,8 @@ class ListSampleAbundanceDataProvider extends AbstractOriginalDataProviderWithou } - public List<SampleWithPropertiesAndAbundance> getOriginalData() throws UserFailureException + @Override + public List<SampleWithPropertiesAndAbundance> getFullOriginalData() throws UserFailureException { return server.listSamplesWithAbundanceByProtein(sessionToken, experimentID, proteinReferenceID); } 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 5243c00f466dccd5f696bd19b0dd2a4a0046cf38..be0392b8664e625b19d60f7fc817e6cea16089ef 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 @@ -271,7 +271,8 @@ public final class ScreeningClientService extends AbstractClientService implemen return listEntities(displayCriteria, new AbstractOriginalDataProviderWithoutHeaders<Material>() { - public List<Material> getOriginalData() throws UserFailureException + @Override + public List<Material> getFullOriginalData() throws UserFailureException { return server.listExperimentMaterials(getSessionToken(), experimentId, displayCriteria.getListCriteria() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/WellContentProvider.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/WellContentProvider.java index c2ff2df5ab2352d7ec9ab1499b7b2c50b8da68bc..62f5bffca4a9b75ad756b27857fe265bb216fa96 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/WellContentProvider.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/server/WellContentProvider.java @@ -30,7 +30,7 @@ import static ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSea import java.util.List; -import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.ITableModelProvider; +import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.AbstractTableModelProvider; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataTypeCode; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Material; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; @@ -48,7 +48,7 @@ import ch.systemsx.cisd.openbis.plugin.screening.shared.basic.dto.WellSearchCrit /** * @author Franz-Josef Elmer */ -public class WellContentProvider implements ITableModelProvider<WellContent> +public class WellContentProvider extends AbstractTableModelProvider<WellContent> { static final String WELL_CONTENT_PROPERTY_ID_PREFIX = "WELL_CONTENT_PROPERTY-"; @@ -60,8 +60,6 @@ public class WellContentProvider implements ITableModelProvider<WellContent> private final WellSearchCriteria materialCriteria; - private TypedTableModel<WellContent> model; - WellContentProvider(IScreeningServer server, String sessionToken, WellSearchCriteria materialCriteria) { @@ -70,61 +68,58 @@ public class WellContentProvider implements ITableModelProvider<WellContent> this.materialCriteria = materialCriteria; } - public TypedTableModel<WellContent> getTableModel() + @Override + protected TypedTableModel<WellContent> createTableModel() { - if (model == null) + TypedTableModelBuilder<WellContent> builder = new TypedTableModelBuilder<WellContent>(); + builder.addColumn(WELL_CONTENT_MATERIAL); + builder.addColumn(WELL_CONTENT_MATERIAL_TYPE); + builder.addColumn(EXPERIMENT); + builder.addColumn(PLATE); + builder.addColumn(WELL); + builder.addColumn(WELL_ROW).withDataType(DataTypeCode.INTEGER); + builder.addColumn(WELL_COLUMN).withDataType(DataTypeCode.INTEGER); + builder.addColumn(IMAGE_DATA_SET); + builder.addColumn(IMAGE_ANALYSIS_DATA_SET); + builder.addColumn(FILE_FORMAT_TYPE); + builder.addColumn(WELL_IMAGES).withDefaultWidth(500); + List<WellContent> wells = server.listPlateWells(sessionToken, materialCriteria); + for (WellContent well : wells) { - TypedTableModelBuilder<WellContent> builder = new TypedTableModelBuilder<WellContent>(); - builder.addColumn(WELL_CONTENT_MATERIAL); - builder.addColumn(WELL_CONTENT_MATERIAL_TYPE); - builder.addColumn(EXPERIMENT); - builder.addColumn(PLATE); - builder.addColumn(WELL); - builder.addColumn(WELL_ROW).withDataType(DataTypeCode.INTEGER); - builder.addColumn(WELL_COLUMN).withDataType(DataTypeCode.INTEGER); - builder.addColumn(IMAGE_DATA_SET); - builder.addColumn(IMAGE_ANALYSIS_DATA_SET); - builder.addColumn(FILE_FORMAT_TYPE); - builder.addColumn(WELL_IMAGES).withDefaultWidth(500); - List<WellContent> wells = server.listPlateWells(sessionToken, materialCriteria); - for (WellContent well : wells) + builder.addRow(well); + Material material = well.getMaterialContent(); + String value = material.getCode(); + builder.column(WELL_CONTENT_MATERIAL).addString(value); + builder.column(WELL_CONTENT_MATERIAL_TYPE) + .addString(material.getEntityType().getCode()); + builder.columnGroup(WELL_CONTENT_PROPERTY_ID_PREFIX).addProperties( + material.getProperties()); + NamedFeatureVector featureVector = well.tryGetFeatureVectorValues(); + if (featureVector != null) { - builder.addRow(well); - Material material = well.getMaterialContent(); - String value = material.getCode(); - builder.column(WELL_CONTENT_MATERIAL).addString(value); - builder.column(WELL_CONTENT_MATERIAL_TYPE).addString( - material.getEntityType().getCode()); - builder.columnGroup(WELL_CONTENT_PROPERTY_ID_PREFIX).addProperties( - material.getProperties()); - NamedFeatureVector featureVector = well.tryGetFeatureVectorValues(); - if (featureVector != null) - { - addFeatureColumns(builder, featureVector); - } - builder.column(EXPERIMENT).addString(well.getExperiment().toString()); - builder.column(PLATE).addString(well.getPlate().getCode()); - builder.column(WELL).addString(well.getWell().getCode()); - WellLocation location = well.tryGetLocation(); - builder.column(WELL_ROW).addInteger( - location == null ? null : new Long(location.getRow())); - builder.column(WELL_COLUMN).addInteger( - location == null ? null : new Long(location.getColumn())); - DatasetImagesReference imageDataset = well.tryGetImageDataset(); - builder.column(IMAGE_DATA_SET).addString( - imageDataset == null ? null : imageDataset.getDatasetCode()); - DatasetReference dataset = well.tryGetFeatureVectorDataset(); - builder.column(IMAGE_ANALYSIS_DATA_SET).addString( - dataset == null ? null : dataset.getCode()); - builder.column(FILE_FORMAT_TYPE).addString( - imageDataset == null ? null : imageDataset.getDatasetReference() - .getFileTypeCode()); - builder.column(WELL_IMAGES).addString( - well.tryGetImageDataset() == null ? "" : "[images]"); + addFeatureColumns(builder, featureVector); } - model = builder.getModel(); + builder.column(EXPERIMENT).addString(well.getExperiment().toString()); + builder.column(PLATE).addString(well.getPlate().getCode()); + builder.column(WELL).addString(well.getWell().getCode()); + WellLocation location = well.tryGetLocation(); + builder.column(WELL_ROW).addInteger( + location == null ? null : new Long(location.getRow())); + builder.column(WELL_COLUMN).addInteger( + location == null ? null : new Long(location.getColumn())); + DatasetImagesReference imageDataset = well.tryGetImageDataset(); + builder.column(IMAGE_DATA_SET).addString( + imageDataset == null ? null : imageDataset.getDatasetCode()); + DatasetReference dataset = well.tryGetFeatureVectorDataset(); + builder.column(IMAGE_ANALYSIS_DATA_SET).addString( + dataset == null ? null : dataset.getCode()); + builder.column(FILE_FORMAT_TYPE).addString( + imageDataset == null ? null : imageDataset.getDatasetReference() + .getFileTypeCode()); + builder.column(WELL_IMAGES).addString( + well.tryGetImageDataset() == null ? "" : "[images]"); } - return model; + return builder.getModel(); } private void addFeatureColumns(TypedTableModelBuilder<WellContent> builder,