From 9c81cfac688138b84a0171b81f37b0bc39a57d4b Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Wed, 22 Jun 2011 10:08:55 +0000 Subject: [PATCH] GridCustomFilterGrid refactored into a TypedTableGrid SVN: 21800 --- .../web/client/ICommonClientService.java | 8 +- .../web/client/ICommonClientServiceAsync.java | 10 +- .../specific/CustomGridFilterColDefKind.java | 104 ------------------ .../filter/GridCustomFilterGrid.java | 56 +++++----- .../web/server/CommonClientService.java | 21 ++-- .../resultset/AbstractExpressionProvider.java | 85 ++++++++++++++ .../resultset/CustomGridColumnProvider.java | 51 +++------ .../resultset/GridCustomFilterProvider.java | 42 +++++++ .../openbis/systemtest/FilterSystemTest.java | 24 ++-- 9 files changed, 207 insertions(+), 194 deletions(-) delete mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/CustomGridFilterColDefKind.java create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExpressionProvider.java create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/GridCustomFilterProvider.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java index dfd4d53e22e..cbc4486a436 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java @@ -955,14 +955,16 @@ public interface ICommonClientService extends IClientService /** * Returns {@link GridCustomFilter}s for given grid and display criteria. */ - public ResultSet<GridCustomFilter> listFilters(String gridId, - DefaultResultSetConfig<String, GridCustomFilter> resultSetConfig) + public TypedTableResultSet<GridCustomFilter> listFilters( + String gridId, + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> resultSetConfig) throws UserFailureException; /** * Like {@link #prepareExportSamples(TableExportCriteria)}, but for custom grid filters. */ - public String prepareExportFilters(final TableExportCriteria<GridCustomFilter> criteria) + public String prepareExportFilters( + final TableExportCriteria<TableModelRowWithObject<GridCustomFilter>> criteria) throws UserFailureException; /** diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java index e9304a98d6a..eadc781f655 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java @@ -861,14 +861,16 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync /** * @see ICommonClientService#listFilters(String, DefaultResultSetConfig) */ - public void listFilters(String gridId, - DefaultResultSetConfig<String, GridCustomFilter> resultSetConfig, - AsyncCallback<ResultSet<GridCustomFilter>> callback); + public void listFilters( + String gridId, + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> resultSetConfig, + AsyncCallback<TypedTableResultSet<GridCustomFilter>> callback); /** * @see ICommonClientService#prepareExportFilters(TableExportCriteria) */ - public void prepareExportFilters(final TableExportCriteria<GridCustomFilter> criteria, + public void prepareExportFilters( + final TableExportCriteria<TableModelRowWithObject<GridCustomFilter>> criteria, AsyncCallback<String> asyncCallback); /** @see ICommonClientService#registerFilter(NewColumnOrFilter) */ diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/CustomGridFilterColDefKind.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/CustomGridFilterColDefKind.java deleted file mode 100644 index df782c92734..00000000000 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/columns/specific/CustomGridFilterColDefKind.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2009 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.generic.client.web.client.application.ui.columns.specific; - -import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.AbstractColumnDefinitionKind; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; -import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter; - -/** - * Column definitions for the filters. - * - * @author Izabela Adamczyk - */ -public enum CustomGridFilterColDefKind implements IColumnDefinitionKind<GridCustomFilter> -{ - NAME(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.NAME) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return entity.getName(); - } - }), - - DESCRIPTION(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.DESCRIPTION) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return entity.getDescription(); - } - }), - - EXPRESSION(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.EXPRESSION, true) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return entity.getExpression(); - } - }), - - PUBLIC(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.IS_PUBLIC, true) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return SimpleYesNoRenderer.render(entity.isPublic()); - } - }), - - REGISTRATOR(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.REGISTRATOR, true) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return renderRegistrator(entity); - } - }), - - REGISTRATION_DATE(new AbstractColumnDefinitionKind<GridCustomFilter>(Dict.REGISTRATION_DATE, - AbstractColumnDefinitionKind.DATE_COLUMN_WIDTH, true) - { - @Override - public String tryGetValue(GridCustomFilter entity) - { - return renderRegistrationDate(entity); - } - }); - - private final AbstractColumnDefinitionKind<GridCustomFilter> columnDefinitionKind; - - private CustomGridFilterColDefKind( - AbstractColumnDefinitionKind<GridCustomFilter> columnDefinitionKind) - { - this.columnDefinitionKind = columnDefinitionKind; - } - - public String id() - { - return name(); - } - - public AbstractColumnDefinitionKind<GridCustomFilter> getDescriptor() - { - return columnDefinitionKind; - } -} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/GridCustomFilterGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/GridCustomFilterGrid.java index 418b90d8413..8fab7cb58f4 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/GridCustomFilterGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/expressions/filter/GridCustomFilterGrid.java @@ -16,6 +16,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.expressions.filter; +import java.util.Arrays; import java.util.List; import com.extjs.gxt.ui.client.event.ButtonEvent; @@ -33,33 +34,32 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewConte import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DisplayTypeIDGenerator; import ch.systemsx.cisd.openbis.generic.client.web.client.application.help.HelpPageIdentifier; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.IColumnDefinitionKind; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.CustomGridFilterColDefKind; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractColumnSettingsDataModelProvider; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ColumnDefsAndConfigs; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IBrowserGridActionInvoker; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.expressions.common.AbstractGridCustomExpressionEditOrRegisterDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractDataConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; -import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; -import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExpression; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewColumnOrFilter; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; /** * Allows to display, update, delete and create new custom grid filters. * * @author Tomasz Pylak */ -public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFilter> +public class GridCustomFilterGrid extends TypedTableGrid<GridCustomFilter> { private static final String BROWSER_ID = GenericConstants.ID_PREFIX + "filter-browser"; @@ -107,12 +107,12 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi addButton(addButton); final Button editButton = createSelectedItemButton(viewContext.getMessage(Dict.BUTTON_EDIT), - new ISelectedEntityInvoker<BaseEntityModel<GridCustomFilter>>() + new ISelectedEntityInvoker<BaseEntityModel<TableModelRowWithObject<GridCustomFilter>>>() { - public void invoke(BaseEntityModel<GridCustomFilter> selectedItem, + public void invoke(BaseEntityModel<TableModelRowWithObject<GridCustomFilter>> selectedItem, boolean keyPressed) { - final GridCustomFilter selected = selectedItem.getBaseObject(); + final GridCustomFilter selected = selectedItem.getBaseObject().getObjectOrNull(); createEditDialog(selected).show(); } @@ -123,7 +123,7 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi new AbstractCreateDialogListener() { @Override - protected Dialog createDialog(List<GridCustomFilter> selected, + protected Dialog createDialog(List<TableModelRowWithObject<GridCustomFilter>> selected, IBrowserGridActionInvoker invoker) { return new DeletionConfirmationDialog(viewContext, selected, @@ -210,7 +210,7 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi } private static class DeletionConfirmationDialog extends - AbstractDataConfirmationDialog<List<GridCustomFilter>> + AbstractDataConfirmationDialog<List<TableModelRowWithObject<GridCustomFilter>>> { private static final int LABEL_WIDTH = 60; @@ -221,7 +221,7 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi private final AbstractAsyncCallback<Void> callback; public DeletionConfirmationDialog(IViewContext<ICommonClientServiceAsync> viewContext, - List<GridCustomFilter> data, AbstractAsyncCallback<Void> callback) + List<TableModelRowWithObject<GridCustomFilter>> data, AbstractAsyncCallback<Void> callback) { super(viewContext, data, viewContext.getMessage(Dict.DELETE_CONFIRMATION_TITLE)); this.callback = callback; @@ -252,7 +252,7 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi private GridCustomFilterGrid(IViewContext<ICommonClientServiceAsync> viewContext, String gridDisplayId, AbstractColumnSettingsDataModelProvider columnDataModelProvider) { - super(viewContext, createBrowserId(gridDisplayId), createGridId(gridDisplayId), + super(viewContext, createBrowserId(gridDisplayId), true, DisplayTypeIDGenerator.FILTER_BROWSER_GRID); this.gridDisplayId = gridDisplayId; this.columnDataModelProvider = columnDataModelProvider; @@ -260,43 +260,45 @@ public class GridCustomFilterGrid extends AbstractSimpleBrowserGrid<GridCustomFi } @Override - protected IColumnDefinitionKind<GridCustomFilter>[] getStaticColumnsDefinition() + protected String translateColumnIdToDictionaryKey(String columnID) { - return CustomGridFilterColDefKind.values(); + return columnID.toLowerCase(); } - + @Override - protected void listEntities(DefaultResultSetConfig<String, GridCustomFilter> resultSetConfig, - AbstractAsyncCallback<ResultSet<GridCustomFilter>> callback) + protected void listTableRows( + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> resultSetConfig, + AsyncCallback<TypedTableResultSet<GridCustomFilter>> callback) { viewContext.getService().listFilters(gridDisplayId, resultSetConfig, callback); } @Override - protected void prepareExportEntities(TableExportCriteria<GridCustomFilter> exportCriteria, + protected void prepareExportEntities( + TableExportCriteria<TableModelRowWithObject<GridCustomFilter>> exportCriteria, AbstractAsyncCallback<String> callback) { viewContext.getService().prepareExportFilters(exportCriteria, callback); } @Override - protected List<IColumnDefinition<GridCustomFilter>> getInitialFilters() + protected List<String> getColumnIdsOfFilters() { - return asColumnFilters(new CustomGridFilterColDefKind[] - { CustomGridFilterColDefKind.NAME, CustomGridFilterColDefKind.PUBLIC }); + return Arrays.asList(CustomGridColumnGridColumnIDs.NAME, CustomGridColumnGridColumnIDs.IS_PUBLIC); } @Override - protected ColumnDefsAndConfigs<GridCustomFilter> createColumnsDefinition() + protected ColumnDefsAndConfigs<TableModelRowWithObject<GridCustomFilter>> createColumnsDefinition() { - ColumnDefsAndConfigs<GridCustomFilter> schema = super.createColumnsDefinition(); - schema.setGridCellRendererFor(CustomGridFilterColDefKind.DESCRIPTION.id(), + ColumnDefsAndConfigs<TableModelRowWithObject<GridCustomFilter>> schema = super.createColumnsDefinition(); + schema.setGridCellRendererFor(CustomGridColumnGridColumnIDs.DESCRIPTION, createMultilineStringCellRenderer()); - schema.setGridCellRendererFor(CustomGridFilterColDefKind.EXPRESSION.id(), + schema.setGridCellRendererFor(CustomGridColumnGridColumnIDs.EXPRESSION, createMultilineStringCellRenderer()); return schema; } + @Override public DatabaseModificationKind[] getRelevantModifications() { return new DatabaseModificationKind[] 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 41bcbca3e59..42797c1e693 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 @@ -75,6 +75,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.DataSetTypeP import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.EntityTypeProvider; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.ExperimentProvider; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.FileFormatTypesProvider; +import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.GridCustomFilterProvider; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IOriginalDataProvider; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.IResultSet; import ch.systemsx.cisd.openbis.generic.client.web.server.resultset.MatchingEntitiesProvider; @@ -2478,23 +2479,17 @@ public final class CommonClientService extends AbstractClientService implements } } - public ResultSet<GridCustomFilter> listFilters(final String gridId, - DefaultResultSetConfig<String, GridCustomFilter> resultSetConfig) + public TypedTableResultSet<GridCustomFilter> listFilters( + final String gridId, + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> resultSetConfig) throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException { - return listEntities(resultSetConfig, - new AbstractOriginalDataProviderWithoutHeaders<GridCustomFilter>() - { - @Override - public List<GridCustomFilter> getFullOriginalData() - throws UserFailureException - { - return listFilters(gridId); - } - }); + return listEntities(new GridCustomFilterProvider(commonServer, getSessionToken(), gridId), + resultSetConfig); } - public String prepareExportFilters(TableExportCriteria<GridCustomFilter> criteria) + public String prepareExportFilters( + TableExportCriteria<TableModelRowWithObject<GridCustomFilter>> criteria) throws ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException { return prepareExportEntities(criteria); diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExpressionProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExpressionProvider.java new file mode 100644 index 00000000000..14436f8c92f --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/AbstractExpressionProvider.java @@ -0,0 +1,85 @@ +/* + * Copyright 2011 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.generic.client.web.server.resultset; + +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.DESCRIPTION; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.EXPRESSION; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.IS_PUBLIC; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.NAME; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.REGISTRATION_DATE; +import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.REGISTRATOR; + +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; +import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractExpression; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; +import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder; + +/** + * Super class of common code for providers of subclasses of {@link AbstractExpression}. + * + * @author Franz-Josef Elmer + */ +public abstract class AbstractExpressionProvider<T extends AbstractExpression> extends AbstractCommonTableModelProvider<T> +{ + protected final String gridId; + + public AbstractExpressionProvider(ICommonServer commonServer, String sessionToken, String gridId) + { + super(commonServer, sessionToken); + this.gridId = gridId; + } + + @Override + protected TypedTableModel<T> createTableModel() + { + List<T> expressions = listExpressions(); + TypedTableModelBuilder<T> builder = new TypedTableModelBuilder<T>(); + addAdditionalColumn(builder); + builder.addColumn(NAME); + builder.addColumn(DESCRIPTION); + builder.addColumn(EXPRESSION).hideByDefault(); + builder.addColumn(IS_PUBLIC).hideByDefault(); + builder.addColumn(REGISTRATOR).hideByDefault(); + builder.addColumn(REGISTRATION_DATE).hideByDefault(); + for (T expression : expressions) + { + builder.addRow(expression); + addAdditionalColumnValue(builder, expression); + builder.column(NAME).addString(expression.getName()); + builder.column(DESCRIPTION).addString(expression.getDescription()); + builder.column(EXPRESSION).addString(expression.getExpression()); + builder.column(IS_PUBLIC).addString(SimpleYesNoRenderer.render(expression.isPublic())); + builder.column(REGISTRATOR).addPerson(expression.getRegistrator()); + builder.column(REGISTRATION_DATE).addDate(expression.getRegistrationDate()); + } + return builder.getModel(); + } + + protected void addAdditionalColumn(TypedTableModelBuilder<T> builder) + { + } + + protected void addAdditionalColumnValue(TypedTableModelBuilder<T> builder, T expression) + { + } + + protected abstract List<T> listExpressions(); + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CustomGridColumnProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CustomGridColumnProvider.java index cb68287470a..02081351d09 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CustomGridColumnProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/CustomGridColumnProvider.java @@ -17,60 +17,43 @@ package ch.systemsx.cisd.openbis.generic.client.web.server.resultset; import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.CODE; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.DESCRIPTION; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.EXPRESSION; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.IS_PUBLIC; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.NAME; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.REGISTRATION_DATE; -import static ch.systemsx.cisd.openbis.generic.client.web.client.dto.CustomGridColumnGridColumnIDs.REGISTRATOR; import java.util.List; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; -import ch.systemsx.cisd.openbis.generic.shared.basic.SimpleYesNoRenderer; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomColumn; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TypedTableModel; import ch.systemsx.cisd.openbis.generic.shared.util.TypedTableModelBuilder; /** - * + * Provider of {@link GridCustomColumn} instances. * * @author Franz-Josef Elmer */ -public class CustomGridColumnProvider extends AbstractCommonTableModelProvider<GridCustomColumn> +public class CustomGridColumnProvider extends AbstractExpressionProvider<GridCustomColumn> { - private final String gridId; public CustomGridColumnProvider(ICommonServer commonServer, String sessionToken, String gridId) { - super(commonServer, sessionToken); - this.gridId = gridId; + super(commonServer, sessionToken, gridId); } @Override - protected TypedTableModel<GridCustomColumn> createTableModel() + protected List<GridCustomColumn> listExpressions() + { + return commonServer.listGridCustomColumns(sessionToken, gridId); + } + + @Override + protected void addAdditionalColumn(TypedTableModelBuilder<GridCustomColumn> builder) { - List<GridCustomColumn> customColumns = commonServer.listGridCustomColumns(sessionToken, gridId); - TypedTableModelBuilder<GridCustomColumn> builder = new TypedTableModelBuilder<GridCustomColumn>(); builder.addColumn(CODE); - builder.addColumn(NAME); - builder.addColumn(DESCRIPTION); - builder.addColumn(EXPRESSION).hideByDefault(); - builder.addColumn(IS_PUBLIC).hideByDefault(); - builder.addColumn(REGISTRATOR).hideByDefault(); - builder.addColumn(REGISTRATION_DATE).hideByDefault(); - for (GridCustomColumn gridCustomColumn : customColumns) - { - builder.addRow(gridCustomColumn); - builder.column(CODE).addString(gridCustomColumn.getCode()); - builder.column(NAME).addString(gridCustomColumn.getName()); - builder.column(DESCRIPTION).addString(gridCustomColumn.getDescription()); - builder.column(EXPRESSION).addString(gridCustomColumn.getExpression()); - builder.column(IS_PUBLIC).addString(SimpleYesNoRenderer.render(gridCustomColumn.isPublic())); - builder.column(REGISTRATOR).addPerson(gridCustomColumn.getRegistrator()); - builder.column(REGISTRATION_DATE).addDate(gridCustomColumn.getRegistrationDate()); - } - return builder.getModel(); + } + + @Override + protected void addAdditionalColumnValue(TypedTableModelBuilder<GridCustomColumn> builder, + GridCustomColumn expression) + { + builder.column(CODE).addString(expression.getCode()); } } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/GridCustomFilterProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/GridCustomFilterProvider.java new file mode 100644 index 00000000000..9c31fb9a777 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/resultset/GridCustomFilterProvider.java @@ -0,0 +1,42 @@ +/* + * Copyright 2011 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.generic.client.web.server.resultset; + +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter; + +/** + * Provider of {@link GridCustomFilter} instances. + * + * @author Franz-Josef Elmer + */ +public class GridCustomFilterProvider extends AbstractExpressionProvider<GridCustomFilter> +{ + public GridCustomFilterProvider(ICommonServer commonServer, String sessionToken, String gridId) + { + super(commonServer, sessionToken, gridId); + } + + @Override + protected List<GridCustomFilter> listExpressions() + { + return commonServer.listFilters(sessionToken, gridId); + } + +} diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java index 59c0e408887..4fbbefc0b29 100644 --- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java +++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/systemtest/FilterSystemTest.java @@ -34,6 +34,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.GridCustomFilter; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewColumnOrFilter; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ParameterWithValue; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; /** * @author Franz-Josef Elmer @@ -100,23 +101,28 @@ public class FilterSystemTest extends SystemTestCase logIntoCommonClientService(); commonClientService.registerFilter(createFilter()); - DefaultResultSetConfig<String, GridCustomFilter> config = createConfig("24"); - assertEquals(1, commonClientService.listFilters(GRID_ID, config).getList().size()); + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> config = + createConfig("24"); + assertEquals(1, commonClientService.listFilters(GRID_ID, config).getResultSet().getList() + .size()); config = createConfig("43"); - assertEquals(0, commonClientService.listFilters(GRID_ID, config).getList().size()); + assertEquals(0, commonClientService.listFilters(GRID_ID, config).getResultSet().getList() + .size()); Long id = commonClientService.listFilters(GRID_ID).get(0).getId(); commonClientService.deleteFilters(Arrays.asList(new TechId(id))); } - private DefaultResultSetConfig<String, GridCustomFilter> createConfig(String thresholdValue) + private DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> createConfig( + String thresholdValue) { - DefaultResultSetConfig<String, GridCustomFilter> config = - new DefaultResultSetConfig<String, GridCustomFilter>(); - config.setAvailableColumns(Collections.<IColumnDefinition<GridCustomFilter>> emptySet()); - CustomFilterInfo<GridCustomFilter> customFilterInfo = - new CustomFilterInfo<GridCustomFilter>(); + DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>> config = + new DefaultResultSetConfig<String, TableModelRowWithObject<GridCustomFilter>>(); + config.setAvailableColumns(Collections + .<IColumnDefinition<TableModelRowWithObject<GridCustomFilter>>> emptySet()); + CustomFilterInfo<TableModelRowWithObject<GridCustomFilter>> customFilterInfo = + new CustomFilterInfo<TableModelRowWithObject<GridCustomFilter>>(); customFilterInfo.setExpression("${threshold} < 42"); ParameterWithValue parameterWithValue = new ParameterWithValue(); parameterWithValue.setParameter("threshold"); -- GitLab