From a61059a00225815b069c67cc6464fdbbfd0fbc15 Mon Sep 17 00:00:00 2001 From: felmer <felmer> Date: Thu, 26 May 2011 06:32:20 +0000 Subject: [PATCH] refactoring SampleBrowserGrid and ExperimentBrowserGrid by introducing superclass AbstractEntityGrid. This fixes missing table editing in refactored ExperimentBrowserGrid SVN: 21477 --- .../ui/data/AbstractExternalDataGrid.java | 1 + .../ui/experiment/ExperimentBrowserGrid.java | 18 ++-- .../experiment/ExperimentBrowserToolbar.java | 2 +- .../ui/grid/AbstractEntityBrowserGrid.java | 15 --- .../ui/grid/AbstractEntityGrid.java | 95 +++++++++++++++++++ .../client/application/ui/grid/GridUtils.java | 1 - .../ui/grid/ICriteriaProvider.java | 37 ++++++++ .../entity/PropertyTypesCriteriaProvider.java | 2 +- .../ui/material/MaterialBrowserGrid.java | 1 + .../ui/material/MaterialBrowserToolbar.java | 2 +- .../ui/sample/ISampleCriteriaProvider.java | 2 +- .../ui/sample/SampleBrowserGrid.java | 43 +-------- .../ExperimentWellMaterialBrowserGrid.java | 1 + 13 files changed, 154 insertions(+), 66 deletions(-) create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityGrid.java create mode 100644 openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ICriteriaProvider.java diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java index 9bc035a8094..b3f9b33c3bb 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/AbstractExternalDataGrid.java @@ -42,6 +42,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.Ab 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.ICellListener; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.entity.PropertyTypesCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.entity.PropertyTypesCriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.entity.PropertyTypesFilterUtil; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java index 86c78057210..bb04f3c186c 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserGrid.java @@ -45,12 +45,13 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTa import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.experiment.CommonExperimentColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.experiment.ExperimentDataSetArchivingMenu.SelectedAndDisplayedItems; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityGrid; 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.DisposableEntityChooser; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.GridUtils; 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.ICellListenerAndLinkGenerator; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.listener.OpenEntityDetailsTabHelper; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult; @@ -63,6 +64,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteri import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; 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.EntityKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ExperimentType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; @@ -74,7 +76,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject * * @author Tomasz Pylak */ -public class ExperimentBrowserGrid extends TypedTableGrid<Experiment> +public class ExperimentBrowserGrid extends AbstractEntityGrid<Experiment> { private static final String PREFIX = "experiment-browser"; @@ -330,12 +332,6 @@ public class ExperimentBrowserGrid extends TypedTableGrid<Experiment> viewContext.getService().listExperiments(criteria, callback); } - @Override - protected void showEntityViewer(TableModelRowWithObject<Experiment> experiment, boolean editMode, boolean inBackground) - { - showEntityInformationHolderViewer(experiment.getObjectOrNull(), editMode, inBackground); - } - @Override protected ColumnDefsAndConfigs<TableModelRowWithObject<Experiment>> createColumnsDefinition() { @@ -395,6 +391,12 @@ public class ExperimentBrowserGrid extends TypedTableGrid<Experiment> } } + @Override + protected EntityKind getEntityKind() + { + return EntityKind.EXPERIMENT; + } + protected final IDelegatedActionWithResult<DisplayedAndSelectedExperiments> getDisplayedAndSelectedItemsAction() { return new IDelegatedActionWithResult<DisplayedAndSelectedExperiments>() diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java index 3f24bea13d4..add1f1b3aca 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/experiment/ExperimentBrowserToolbar.java @@ -34,8 +34,8 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ExperimentTypeModel; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; 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.AbstractEntityBrowserGrid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListExperimentsCriteria; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java index e4e4a95af52..21c8e912f5d 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityBrowserGrid.java @@ -81,21 +81,6 @@ public abstract class AbstractEntityBrowserGrid<T extends IEntityPropertiesHolde // criteria used in the previous refresh operation or null if it has not occurred yet protected K criteria; - public interface ICriteriaProvider<K> - { - /** @return criteria used as the main grid filter */ - K tryGetCriteria(); - - /** - * calls the refresh callback only after appropriate criteria are updated. But if there is - * nothing to update in the criteria provider the callback is called immediately. - */ - void update(Set<DatabaseModificationKind> observedModifications, - final IDataRefreshCallback dataRefreshCallback); - - DatabaseModificationKind[] getRelevantModifications(); - } - protected AbstractEntityBrowserGrid(IViewContext<ICommonClientServiceAsync> viewContext, String gridId, DisplayTypeIDGenerator displayTypeIDGenerator) { diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityGrid.java new file mode 100644 index 00000000000..83cae4c12de --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/AbstractEntityGrid.java @@ -0,0 +1,95 @@ +/* + * 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.client.application.ui.grid; + +import java.util.Arrays; +import java.util.List; + +import ch.systemsx.cisd.openbis.generic.client.web.client.ICommonClientServiceAsync; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDisplayTypeIDGenerator; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.BaseEntityModel; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; +import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnIDs; +import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; +import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolderWithProperties; +import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject; + +/** + * Abstract super class of {@link TypedTableGrid}-based entity browsers. + * + * @author Franz-Josef Elmer + */ +public abstract class AbstractEntityGrid<E extends IEntityInformationHolderWithProperties> extends TypedTableGrid<E> +{ + public AbstractEntityGrid(IViewContext<ICommonClientServiceAsync> viewContext, + String browserId, boolean refreshAutomatically, + IDisplayTypeIDGenerator displayTypeIDGenerator) + { + super(viewContext, browserId, refreshAutomatically, displayTypeIDGenerator); + } + + public AbstractEntityGrid(IViewContext<ICommonClientServiceAsync> viewContext, + String browserId, IDisplayTypeIDGenerator displayTypeIDGenerator) + { + super(viewContext, browserId, displayTypeIDGenerator); + } + + protected abstract EntityKind getEntityKind(); + + @Override + protected boolean isEditable(BaseEntityModel<TableModelRowWithObject<E>> model, + String columnID) + { + String propertyName = columnID.substring(SampleGridColumnIDs.PROPERTIES_PREFIX.length()); + E sample = model.getBaseObject().getObjectOrNull(); + BasicEntityType entityType = sample.getEntityType(); + IEntityProperty propertyOrNull = tryGetProperty(sample, propertyName); + if (propertyOrNull != null && propertyOrNull.isScriptable()) + { + return false; + } + List<IColumnDefinition<TableModelRowWithObject<E>>> columnDefinitions = + getColumnDefinitions(Arrays.asList(columnID)); + IColumnDefinition<TableModelRowWithObject<E>> columnDefinition = + columnDefinitions.get(0); + return columnDefinition.tryToGetProperty(entityType.getCode()) != null; + } + + @Override + protected void handleEditingEvent(BaseEntityModel<TableModelRowWithObject<E>> model, + String columnID, String newValueOrNull) + { + E entity = model.getBaseObject().getObjectOrNull(); + TechId sampleID = new TechId(entity.getId()); + String propertyName = columnID.substring(SampleGridColumnIDs.PROPERTIES_PREFIX.length()); + viewContext.getService().updateProperty(getEntityKind(), sampleID, propertyName, + newValueOrNull, createPostEditingRefreshCallback()); + } + + @Override + protected void showEntityViewer(TableModelRowWithObject<E> row, boolean editMode, + boolean inBackground) + { + showEntityInformationHolderViewer(row.getObjectOrNull(), editMode, inBackground); + } + +} diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GridUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GridUtils.java index fb4945ae713..b6b15b63e19 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GridUtils.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/GridUtils.java @@ -24,7 +24,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.SetUtils; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind.ObjectKind; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ICriteriaProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ICriteriaProvider.java new file mode 100644 index 00000000000..30ab367f0b5 --- /dev/null +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/ICriteriaProvider.java @@ -0,0 +1,37 @@ +/* + * 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.client.application.ui.grid; + +import java.util.Set; + +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; + +public interface ICriteriaProvider<K> +{ + /** @return criteria used as the main grid filter */ + K tryGetCriteria(); + + /** + * calls the refresh callback only after appropriate criteria are updated. But if there is + * nothing to update in the criteria provider the callback is called immediately. + */ + void update(Set<DatabaseModificationKind> observedModifications, + final IDataRefreshCallback dataRefreshCallback); + + DatabaseModificationKind[] getRelevantModifications(); +} \ No newline at end of file diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesCriteriaProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesCriteriaProvider.java index a426e3a393b..60230022d73 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesCriteriaProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/grid/entity/PropertyTypesCriteriaProvider.java @@ -5,7 +5,7 @@ import java.util.Set; import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java index 1a5e0b861a6..b7a97bebdb5 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserGrid.java @@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.Ab 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.DisposableEntityChooser; 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.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedActionWithResult; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListMaterialDisplayCriteria; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java index 98e025b5e4a..4eb60fb9fe6 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/material/MaterialBrowserToolbar.java @@ -33,7 +33,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict; import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants; import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext; import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.MaterialTypeModel; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.IDataRefreshCallback; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/ISampleCriteriaProvider.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/ISampleCriteriaProvider.java index 5fed1f2e7f4..4b146d64fe0 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/ISampleCriteriaProvider.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/ISampleCriteriaProvider.java @@ -16,7 +16,7 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ListSampleDisplayCriteria; public interface ISampleCriteriaProvider extends diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java index 3fd72ea98be..5c3699850c9 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/sample/SampleBrowserGrid.java @@ -43,14 +43,14 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.Base import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.LinkRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.renderer.PersonRenderer; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.DisplayedAndSelectedEntities; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.TypedTableGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.framework.LinkExtractor; -import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityBrowserGrid.ICriteriaProvider; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractEntityGrid; 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.DisposableEntityChooser; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.GridUtils; 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.ICellListenerAndLinkGenerator; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; 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.entity.PropertyTypesCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.entity.PropertyTypesCriteriaProvider; @@ -68,7 +68,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGridColumnID import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TableExportCriteria; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.TypedTableResultSet; import ch.systemsx.cisd.openbis.generic.shared.basic.CodeConverter; -import ch.systemsx.cisd.openbis.generic.shared.basic.IColumnDefinition; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.BasicEntityType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind; @@ -77,7 +76,6 @@ 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.EntityTypePropertyType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Experiment; -import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ISerializableComparable; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.ListSampleCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Project; @@ -91,7 +89,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.TableModelRowWithObject * * @author Franz-Josef Elmer */ -public class SampleBrowserGrid extends TypedTableGrid<Sample> +public class SampleBrowserGrid extends AbstractEntityGrid<Sample> { private static final String PREFIX = GenericConstants.ID_PREFIX + "sample-browser"; @@ -513,25 +511,6 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> .getMessage(Dict.SHOW_DETAILS_LINK_TEXT_VALUE)); } - @Override - protected boolean isEditable(BaseEntityModel<TableModelRowWithObject<Sample>> model, - String columnID) - { - String propertyName = columnID.substring(SampleGridColumnIDs.PROPERTIES_PREFIX.length()); - Sample sample = model.getBaseObject().getObjectOrNull(); - EntityType entityType = sample.getEntityType(); - IEntityProperty propertyOrNull = tryGetProperty(sample, propertyName); - if (propertyOrNull != null && propertyOrNull.isScriptable()) - { - return false; - } - List<IColumnDefinition<TableModelRowWithObject<Sample>>> columnDefinitions = - getColumnDefinitions(Arrays.asList(columnID)); - IColumnDefinition<TableModelRowWithObject<Sample>> columnDefinition = - columnDefinitions.get(0); - return columnDefinition.tryToGetProperty(entityType.getCode()) != null; - } - protected boolean isPropertyEditable(EntityType entityType, String propertyColumnNameWithoutPrefix) { String propertyTypeCode = CodeConverter.getPropertyTypeCode(propertyColumnNameWithoutPrefix); @@ -547,14 +526,9 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> } @Override - protected void handleEditingEvent(BaseEntityModel<TableModelRowWithObject<Sample>> model, - String columnID, String newValueOrNull) + protected EntityKind getEntityKind() { - Sample sample = model.getBaseObject().getObjectOrNull(); - TechId sampleID = new TechId(sample.getId()); - String propertyName = columnID.substring(SampleGridColumnIDs.PROPERTIES_PREFIX.length()); - viewContext.getService().updateProperty(EntityKind.SAMPLE, sampleID, propertyName, - newValueOrNull, createPostEditingRefreshCallback()); + return EntityKind.SAMPLE; } @Override @@ -765,13 +739,6 @@ public class SampleBrowserGrid extends TypedTableGrid<Sample> } } - @Override - protected void showEntityViewer(TableModelRowWithObject<Sample> row, boolean editMode, - boolean inBackground) - { - showEntityInformationHolderViewer(row.getObjectOrNull(), editMode, inBackground); - } - protected final IDelegatedAction createGridRefreshDelegatedAction() { return new IDelegatedAction() diff --git a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java index d5a093dd3c2..8c2308389bb 100644 --- a/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java +++ b/screening/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/detailviewers/ExperimentWellMaterialBrowserGrid.java @@ -22,6 +22,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.Base import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.ModelDataPropertyNames; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns.specific.material.CommonMaterialColDefKind; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.DisposableEntityChooser; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ICriteriaProvider; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material.MaterialBrowserGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.material.MaterialBrowserToolbar; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; -- GitLab