From 992545599d310eb86a558bd4b08eaa6f8bc5a610 Mon Sep 17 00:00:00 2001
From: tpylak <tpylak>
Date: Wed, 1 Apr 2009 08:40:44 +0000
Subject: [PATCH] LMS-751 Automatic refresh: entity details

SVN: 10511
---
 .../PropertyTypeAssignmentForm.java           |  5 ++-
 .../application/ClientPluginFactory.java      | 27 ++++++-------
 .../experiment/ExperimentDataSetSection.java  | 10 +++--
 .../ExperimentPropertiesSection.java          | 11 +++---
 .../experiment/ExperimentSamplesSection.java  |  6 +++
 .../experiment/GenericExperimentViewer.java   | 39 ++++++++++++++++---
 .../material/GenericMaterialViewer.java       | 30 +++++++++++++-
 .../sample/GenericSampleViewer.java           | 39 ++++++++++++++++++-
 .../sample/SampleDataSetBrowser.java          |  4 +-
 .../application/ClientPluginFactory.java      |  1 -
 10 files changed, 135 insertions(+), 37 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
index a2dcc250cd2..9e093c1606c 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/property_type/PropertyTypeAssignmentForm.java
@@ -302,9 +302,12 @@ public final class PropertyTypeAssignmentForm extends LayoutContainer implements
         formPanel.add(getMandatoryCheckbox());
         updateDefaultField();
 
-        // TODO 2009-03-30, Tomasz Pylak: add auto-refreshing of the initial value field
         modificationManager.addObserver(propertyTypeWidget);
         modificationManager.addObserver(typeSelectionWidget);
+        if (defaultValueField != null)
+        {
+            modificationManager.addObserver(defaultValueField);
+        }
     }
 
     @Override
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
index 3a0d2e41e94..1553dc74a20 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/ClientPluginFactory.java
@@ -148,11 +148,10 @@ public final class ClientPluginFactory extends
                 {
                     public ITabItem create()
                     {
-                        final GenericSampleViewer sampleViewer =
-                                new GenericSampleViewer(getViewContext(), identifier);
-                        // TODO 2009-03-31, Tomasz Pylak: make aware of db modifications
-                        return DefaultTabItem.createUnaware(
-                                getDetailsTitle(Dict.SAMPLE, identifier), sampleViewer, false);
+                        final DatabaseModificationAwareComponent sampleViewer =
+                                GenericSampleViewer.create(getViewContext(), identifier);
+                        return DefaultTabItem.create(getDetailsTitle(Dict.SAMPLE, identifier),
+                                sampleViewer, getViewContext(), false);
                     }
 
                     public String getId()
@@ -215,11 +214,10 @@ public final class ClientPluginFactory extends
                 {
                     public ITabItem create()
                     {
-                        final GenericMaterialViewer materialViewer =
-                                new GenericMaterialViewer(getViewContext(), identifier);
-                        // TODO 2009-03-31, Tomasz Pylak: make aware of db modifications
-                        return DefaultTabItem.createUnaware(getDetailsTitle(Dict.MATERIAL,
-                                identifier), materialViewer, false);
+                        final DatabaseModificationAwareComponent materialViewer =
+                                GenericMaterialViewer.create(getViewContext(), identifier);
+                        return DefaultTabItem.create(getDetailsTitle(Dict.MATERIAL, identifier),
+                                materialViewer, getViewContext(), false);
                     }
 
                     public String getId()
@@ -267,11 +265,10 @@ public final class ClientPluginFactory extends
                 {
                     public ITabItem create()
                     {
-                        final GenericExperimentViewer experimentViewer =
-                                new GenericExperimentViewer(getViewContext(), identifier);
-                        // TODO 2009-03-31, Tomasz Pylak: make aware of db modifications
-                        return DefaultTabItem.createUnaware(getDetailsTitle(Dict.EXPERIMENT,
-                                identifier), experimentViewer, false);
+                        final DatabaseModificationAwareComponent experimentViewer =
+                                GenericExperimentViewer.create(getViewContext(), identifier);
+                        return DefaultTabItem.create(getDetailsTitle(Dict.EXPERIMENT, identifier),
+                                experimentViewer, getViewContext(), false);
                     }
 
                     public String getId()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentDataSetSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentDataSetSection.java
index d2def0f1edf..35b15f7def0 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentDataSetSection.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentDataSetSection.java
@@ -20,12 +20,11 @@ import com.extjs.gxt.ui.client.widget.layout.RowData;
 import com.extjs.gxt.ui.client.widget.layout.RowLayout;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Experiment;
 
 /**
- * 
- *
  * @author Franz-Josef Elmer
  */
 class ExperimentDataSetSection extends SectionPanel
@@ -40,11 +39,16 @@ class ExperimentDataSetSection extends SectionPanel
         add(disposableBrowser.getComponent(), new RowData(-1, 200));
     }
 
+    public IDatabaseModificationObserver getDatabaseModificationObserver()
+    {
+        return disposableBrowser;
+    }
+
     @Override
     protected void onDetach()
     {
         disposableBrowser.dispose();
         super.onDetach();
     }
-    
+
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java
index 5842bb0c84a..2d931117070 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesSection.java
@@ -57,15 +57,16 @@ public class ExperimentPropertiesSection extends SectionPanel
 
     private final PropertyGrid createPropertyGrid()
     {
-        final Map<String, Object> properties = createProperties(viewContext);
-        final PropertyGrid propertyGrid = new PropertyGrid(viewContext, properties.size());
+        IMessageProvider messageProvider = viewContext;
+        final Map<String, Object> properties = createProperties(messageProvider);
+        final PropertyGrid propertyGrid = new PropertyGrid(messageProvider, properties.size());
         propertyGrid.getElement().setId(PROPERTIES_ID_PREFIX + experiment.getIdentifier());
         propertyGrid.registerPropertyValueRenderer(Person.class, PropertyValueRenderers
-                .createPersonPropertyValueRenderer(viewContext));
+                .createPersonPropertyValueRenderer(messageProvider));
         propertyGrid.registerPropertyValueRenderer(ExperimentType.class, PropertyValueRenderers
-                .createExperimentTypePropertyValueRenderer(viewContext));
+                .createExperimentTypePropertyValueRenderer(messageProvider));
         propertyGrid.registerPropertyValueRenderer(Invalidation.class, PropertyValueRenderers
-                .createInvalidationPropertyValueRenderer(viewContext));
+                .createInvalidationPropertyValueRenderer(messageProvider));
         propertyGrid.registerPropertyValueRenderer(ExperimentProperty.class, PropertyValueRenderers
                 .createExperimentPropertyPropertyValueRenderer(viewContext));
         propertyGrid.setProperties(properties);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesSection.java
index 3e9c55d3f18..f9cecd46f9e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesSection.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentSamplesSection.java
@@ -20,6 +20,7 @@ import com.extjs.gxt.ui.client.widget.layout.RowData;
 import com.extjs.gxt.ui.client.widget.layout.RowLayout;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleBrowserGrid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Experiment;
@@ -46,6 +47,11 @@ public class ExperimentSamplesSection extends SectionPanel
         add(sampleDisposableGrid.getComponent(), new RowData(-1, 200));
     }
 
+    public IDatabaseModificationObserver getDatabaseModificationObserver()
+    {
+        return sampleDisposableGrid;
+    }
+
     // @Private
     static String createId(String experimentIdentifier)
     {
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
index 857cf97ad4f..b20f15d5b7d 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentViewer.java
@@ -25,6 +25,8 @@ import com.google.gwt.user.client.ui.Widget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.CompositeDatabaseModificationObserver;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Experiment;
 import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientServiceAsync;
@@ -42,12 +44,24 @@ public final class GenericExperimentViewer extends AbstractViewer<IGenericClient
 
     private final String experimentIdentifier;
 
-    public GenericExperimentViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
+    private final CompositeDatabaseModificationObserver modificationObserver;
+
+    public static DatabaseModificationAwareComponent create(
+            final IViewContext<IGenericClientServiceAsync> viewContext,
+            final String experimentIdentifier)
+    {
+        GenericExperimentViewer viewer =
+                new GenericExperimentViewer(viewContext, experimentIdentifier);
+        return new DatabaseModificationAwareComponent(viewer, viewer.modificationObserver);
+    }
+
+    private GenericExperimentViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
             final String experimentIdentifier)
     {
         super(viewContext);
         setId(createId(experimentIdentifier));
         this.experimentIdentifier = experimentIdentifier;
+        this.modificationObserver = new CompositeDatabaseModificationObserver();
         loadData();
     }
 
@@ -67,18 +81,22 @@ public final class GenericExperimentViewer extends AbstractViewer<IGenericClient
     private void loadData()
     {
         viewContext.getService().getExperimentInfo(experimentIdentifier,
-                new ExperimentInfoCallback(viewContext, this));
+                new ExperimentInfoCallback(viewContext, this, modificationObserver));
     }
 
     public static final class ExperimentInfoCallback extends AbstractAsyncCallback<Experiment>
     {
         private final GenericExperimentViewer genericExperimentViewer;
 
+        private final CompositeDatabaseModificationObserver modificationObserver;
+
         private ExperimentInfoCallback(final IViewContext<IGenericClientServiceAsync> viewContext,
-                final GenericExperimentViewer genericSampleViewer)
+                final GenericExperimentViewer genericSampleViewer,
+                final CompositeDatabaseModificationObserver modificationObserver)
         {
             super(viewContext);
             this.genericExperimentViewer = genericSampleViewer;
+            this.modificationObserver = modificationObserver;
         }
 
         //
@@ -92,6 +110,7 @@ public final class GenericExperimentViewer extends AbstractViewer<IGenericClient
          * </p>
          */
         @Override
+        // TODO 2009-04-01, Tomasz Pylak: add attachments and properies auto-refresh
         protected final void process(final Experiment result)
         {
             genericExperimentViewer.removeAll();
@@ -100,10 +119,18 @@ public final class GenericExperimentViewer extends AbstractViewer<IGenericClient
                     new ExperimentPropertiesSection(result, viewContext));
             addSection(genericExperimentViewer, new ExperimentAttachmentsSection(result,
                     viewContext));
-            addSection(genericExperimentViewer, new ExperimentSamplesSection(result, viewContext));
-            addSection(genericExperimentViewer, new ExperimentDataSetSection(result, viewContext));
+
+            ExperimentSamplesSection sampleSection =
+                    new ExperimentSamplesSection(result, viewContext);
+            addSection(genericExperimentViewer, sampleSection);
+            modificationObserver.addObserver(sampleSection.getDatabaseModificationObserver());
+
+            ExperimentDataSetSection dataSection =
+                    new ExperimentDataSetSection(result, viewContext);
+            addSection(genericExperimentViewer, dataSection);
+            modificationObserver.addObserver(dataSection.getDatabaseModificationObserver());
+
             genericExperimentViewer.layout();
         }
     }
-
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
index 96cb33cac6d..851061efdb8 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/material/GenericMaterialViewer.java
@@ -16,6 +16,8 @@
 
 package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.material;
 
+import java.util.Set;
+
 import com.extjs.gxt.ui.client.Style.Scroll;
 import com.extjs.gxt.ui.client.util.Margins;
 import com.extjs.gxt.ui.client.widget.LayoutContainer;
@@ -25,8 +27,12 @@ import com.google.gwt.user.client.ui.Widget;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.GenericConstants;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Material;
+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.plugin.generic.client.web.client.IGenericClientServiceAsync;
 
 /**
@@ -35,6 +41,7 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientS
  * @author Piotr Buczek
  */
 public final class GenericMaterialViewer extends AbstractViewer<IGenericClientServiceAsync>
+        implements IDatabaseModificationObserver
 {
     private static final String PREFIX = "generic-material-viewer_";
 
@@ -42,7 +49,15 @@ public final class GenericMaterialViewer extends AbstractViewer<IGenericClientSe
 
     private final String materialIdentifier;
 
-    public GenericMaterialViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
+    public static DatabaseModificationAwareComponent create(
+            final IViewContext<IGenericClientServiceAsync> viewContext,
+            final String materialIdentifier)
+    {
+        GenericMaterialViewer viewer = new GenericMaterialViewer(viewContext, materialIdentifier);
+        return new DatabaseModificationAwareComponent(viewer, viewer);
+    }
+
+    private GenericMaterialViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
             final String materialIdentifier)
     {
         super(viewContext);
@@ -101,4 +116,17 @@ public final class GenericMaterialViewer extends AbstractViewer<IGenericClientSe
         }
     }
 
+    public DatabaseModificationKind[] getRelevantModifications()
+    {
+        return new DatabaseModificationKind[]
+            { DatabaseModificationKind.edit(ObjectKind.MATERIAL),
+                    DatabaseModificationKind.createOrDelete(ObjectKind.PROPERTY_TYPE_ASSIGNMENT),
+                    DatabaseModificationKind.createOrDelete(ObjectKind.VOCABULARY_TERM) };
+    }
+
+    public void update(Set<DatabaseModificationKind> observedModifications)
+    {
+        loadData(); // reloads everything
+    }
+
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
index 3699bc29c31..9684c194ee5 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleViewer.java
@@ -22,6 +22,7 @@ import java.util.Comparator;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import com.extjs.gxt.ui.client.Style.LayoutRegion;
 import com.extjs.gxt.ui.client.Style.Scroll;
@@ -51,6 +52,9 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAs
 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.framework.CompositeDatabaseModificationObserver;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.DatabaseModificationAwareComponent;
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.framework.IDatabaseModificationObserver;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.model.SampleModel;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.AbstractViewer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.ColumnConfigFactory;
@@ -66,6 +70,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Procedure;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.Sample;
 import ch.systemsx.cisd.openbis.generic.client.web.client.dto.SampleGeneration;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKind;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Person;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleProperty;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.SampleType;
@@ -76,7 +81,8 @@ import ch.systemsx.cisd.openbis.plugin.generic.client.web.client.IGenericClientS
  * 
  * @author Christian Ribeaud
  */
-public final class GenericSampleViewer extends AbstractViewer<IGenericClientServiceAsync>
+public final class GenericSampleViewer extends AbstractViewer<IGenericClientServiceAsync> implements
+        IDatabaseModificationObserver
 {
     private static final String PREFIX = "generic-sample-viewer_";
 
@@ -95,7 +101,14 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ
 
     private IDisposableComponent disposableBrowser;
 
-    public GenericSampleViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
+    public static DatabaseModificationAwareComponent create(
+            IViewContext<IGenericClientServiceAsync> viewContext, String sampleIdentifier)
+    {
+        GenericSampleViewer viewer = new GenericSampleViewer(viewContext, sampleIdentifier);
+        return new DatabaseModificationAwareComponent(viewer, viewer);
+    }
+
+    private GenericSampleViewer(final IViewContext<IGenericClientServiceAsync> viewContext,
             final String sampleIdentifier)
     {
         super(viewContext);
@@ -384,4 +397,26 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ
             genericSampleViewer.loadStores();
         }
     }
+
+    public DatabaseModificationKind[] getRelevantModifications()
+    {
+        return createDatabaseModificationObserver().getRelevantModifications();
+    }
+
+    public void update(Set<DatabaseModificationKind> observedModifications)
+    {
+        createDatabaseModificationObserver().update(observedModifications);
+    }
+
+    // TODO 2009-04-01, Tomasz Pylak: add auto-refresh for properties and contained samples
+    private CompositeDatabaseModificationObserver createDatabaseModificationObserver()
+    {
+        CompositeDatabaseModificationObserver observer =
+                new CompositeDatabaseModificationObserver();
+        if (disposableBrowser != null)
+        {
+            observer.addObserver(disposableBrowser);
+        }
+        return observer;
+    }
 }
\ No newline at end of file
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SampleDataSetBrowser.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SampleDataSetBrowser.java
index 9cd7cc7bfdb..d44340930ee 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SampleDataSetBrowser.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/SampleDataSetBrowser.java
@@ -59,9 +59,7 @@ class SampleDataSetBrowser extends AbstractExternalDataGrid
 
     public DatabaseModificationKind[] getRelevantModifications()
     {
-        return new DatabaseModificationKind[]
-            { DatabaseModificationKind.createOrDelete(ObjectKind.SAMPLE),
-                    DatabaseModificationKind.edit(ObjectKind.SAMPLE) };
+        return DatabaseModificationKind.any(ObjectKind.DATA_SET);
     }
 
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
index f6457ab49f0..6d59e53fa4b 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/screening/client/web/client/application/ClientPluginFactory.java
@@ -128,7 +128,6 @@ public final class ClientPluginFactory extends
                     {
                         final ScreeningSampleViewer sampleViewer =
                                 new ScreeningSampleViewer(getViewContext(), sampleIdentifier);
-                        // TODO 2009-03-31, Tomasz Pylak: make aware of db modifications
                         return DefaultTabItem.createUnaware(sampleIdentifier, sampleViewer, false);
                     }
 
-- 
GitLab