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 a528601d720f74f1b1a6ef32cfaef21c8e1650da..ff08d0d3986eae53d3435a509fb4174865d653a0 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
@@ -52,7 +52,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.en
 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;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.listener.OpenEntityDetailsTabAction;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractGridDataRefreshCallback;
 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.ListSampleDisplayCriteria;
@@ -130,17 +129,13 @@ public class SampleBrowserGrid extends
 
     public static IDisposableComponent createGridForContainerSamples(
             final IViewContext<ICommonClientServiceAsync> viewContext,
-            final TechId containerSampleId, final String gridId,
-            final AbstractGridDataRefreshCallback<Sample> refreshCallback,
-            final SampleType sampleType)
+            final TechId containerSampleId, final String gridId, final SampleType sampleType)
     {
         final ListSampleDisplayCriteria criteria =
                 ListSampleDisplayCriteria.createForContainer(containerSampleId, getBaseIndexURL());
         final String entityTypeCode = sampleType.getCode();
         final SampleBrowserGrid browserGrid =
                 createGridAsComponent(viewContext, gridId, criteria, entityTypeCode);
-        refreshCallback.setGrid(browserGrid);
-        browserGrid.setExternalRefreshCallback(refreshCallback);
         browserGrid.updateCriteriaProviderAndRefresh();
         browserGrid.setDisplayTypeIDGenerator(DisplayTypeIDGenerator.SAMPLE_DETAILS_GRID);
         browserGrid.extendBottomToolbar();
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java
index 8c9fd0db235743c3d3363049f12954d2e5868c5b..ac3adcb572eab19af060437c7704ac5ff03cf0f2 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/widget/SectionsPanel.java
@@ -48,7 +48,13 @@ public class SectionsPanel extends ContentPanel
 
     public void addPanel(final SingleSectionPanel panel)
     {
-        final SectionElement element = new SectionElement(panel, withShowHide, viewContext);
+        addPanel(panel, true);
+    }
+
+    public void addPanel(final SingleSectionPanel panel, boolean pressByDeafult)
+    {
+        final SectionElement element =
+                new SectionElement(panel, withShowHide, viewContext, pressByDeafult);
         element.getButton().addSelectionListener(new SelectionListener<ComponentEvent>()
             {
                 @Override
@@ -125,7 +131,7 @@ public class SectionsPanel extends ContentPanel
         private SingleSectionPanel panel;
 
         public SectionElement(SingleSectionPanel panel, boolean withShowHide,
-                IViewContext<ICommonClientServiceAsync> viewContext)
+                IViewContext<ICommonClientServiceAsync> viewContext, boolean defaultPressedValue)
         {
             panel.setCollapsible(false);
             this.setPanel(panel);
@@ -133,7 +139,7 @@ public class SectionsPanel extends ContentPanel
             Boolean sectionSetting =
                     viewContext.getModel().getSessionContext().getDisplaySettings()
                             .getSectionSettings().get(panel.getDisplayID());
-            boolean pressed = sectionSetting != null ? sectionSetting : true;
+            boolean pressed = sectionSetting != null ? sectionSetting : defaultPressedValue;
             button =
                     createButton(heading, withShowHide, pressed, panel.getDisplayID(), viewContext);
         }
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 f67d18890202ef4b678f6564c0a580b91e667509..a57ff51e59616fc8f74cbeed3a0d0135203d8d92 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
@@ -178,29 +178,32 @@ public final class GenericExperimentViewer extends
         }
     }
 
+    private static final String getDisplayIdSuffix(String suffix)
+    {
+        return GENERIC_EXPERIMENT_VIEWER + "-" + suffix;
+    }
+
     public Component createRightPanel(Experiment result,
             CompositeDatabaseModificationObserverWithMainObserver observer)
     {
         final SectionsPanel container = new SectionsPanel(viewContext.getCommonViewContext());
+        final String displayIdSuffix = getDisplayIdSuffix(result.getExperimentType().getCode());
 
         final ExperimentSamplesSection sampleSection =
                 new ExperimentSamplesSection(viewContext, result);
-        sampleSection
-                .setDisplayID(DisplayTypeIDGenerator.SAMPLE_SECTION, GENERIC_EXPERIMENT_VIEWER);
+        sampleSection.setDisplayID(DisplayTypeIDGenerator.SAMPLE_SECTION, displayIdSuffix);
         container.addPanel(sampleSection);
         observer.addObserver(sampleSection.getDatabaseModificationObserver());
 
         final ExperimentDataSetSection dataSection =
                 new ExperimentDataSetSection(result, viewContext);
-        dataSection
-                .setDisplayID(DisplayTypeIDGenerator.DATA_SET_SECTION, GENERIC_EXPERIMENT_VIEWER);
+        dataSection.setDisplayID(DisplayTypeIDGenerator.DATA_SET_SECTION, displayIdSuffix);
         container.addPanel(dataSection);
         observer.addObserver(dataSection.getDatabaseModificationObserver());
 
         final AttachmentVersionsSection<Experiment> attachmentsSection =
                 createAttachmentsSection(result);
-        attachmentsSection.setDisplayID(DisplayTypeIDGenerator.ATTACHMENT_SECTION,
-                GENERIC_EXPERIMENT_VIEWER);
+        attachmentsSection.setDisplayID(DisplayTypeIDGenerator.ATTACHMENT_SECTION, displayIdSuffix);
         container.addPanel(attachmentsSection);
         observer.addObserver(attachmentsSection.getDatabaseModificationObserver());
 
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ContainerSamplesSection.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ContainerSamplesSection.java
index 9d625d22438dc269ed80fe656957272faf5882f1..9561c53226766a5dd12e4a8ab3a4995b8acb684a 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ContainerSamplesSection.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/ContainerSamplesSection.java
@@ -23,7 +23,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.SingleSect
 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.application.ui.widget.AbstractGridDataRefreshCallback;
 import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Sample;
 
@@ -48,14 +47,12 @@ public class ContainerSamplesSection extends SingleSectionPanel
         this.viewContext = viewContext;
     }
 
-    public void addSamplesGrid(final Sample container,
-            final AbstractGridDataRefreshCallback<Sample> refreshCallback)
+    public void addSamplesGrid(final Sample container)
     {
         TechId containerId = TechId.create(container);
         sampleDisposableGrid =
                 SampleBrowserGrid.createGridForContainerSamples(viewContext.getCommonViewContext(),
-                        containerId, createGridId(containerId), refreshCallback, container
-                                .getSampleType());
+                        containerId, createGridId(containerId), container.getSampleType());
         add(sampleDisposableGrid.getComponent());
     }
 
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 32fac0e3625d754b2ee528fcd70855c15b520ef1..a2dd434ae51ad379ddf7db192f4a654a31afd771 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
@@ -46,7 +46,6 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.ID
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.IPropertyValueRenderer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.property.PropertyGrid;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.sample.SampleListDeletionConfirmationDialog;
-import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractGridDataRefreshCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.SectionsPanel;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.EntityPropertyUtils;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction;
@@ -143,50 +142,36 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ
         return ID_PREFIX + sampleId;
     }
 
+    private static final String getDisplayIdSuffix(String suffix)
+    {
+        return GENERIC_SAMPLE_VIEWER + "-" + suffix;
+    }
+
     private final Component createRightPanel(SampleParentWithDerived sampleGeneration)
     {
         final Sample generator = sampleGeneration.getParent();
+        String displayIdSuffix = getDisplayIdSuffix(generator.getSampleType().getCode());
 
         final SectionsPanel container = new SectionsPanel(viewContext.getCommonViewContext());
 
         // 'Part of' samples
         containerSamplesSection = new ContainerSamplesSection(viewContext);
-        containerSamplesSection.setDisplayID(DisplayTypeIDGenerator.SAMPLE_SECTION,
-                GENERIC_SAMPLE_VIEWER);
-        IDelegatedAction showContainerSamplesSectionAction = new IDelegatedAction()
-            {
-                public void execute()
-                {
-                    container.addPanel(containerSamplesSection);
-                }
-            };
-        IDelegatedAction hideContainerSamplesSectionAction = new IDelegatedAction()
-            {
-                public void execute()
-                {
-                    if (container.getItemByItemId(containerSamplesSection.getId()) != null)
-                    {
-                        container.removePanel(containerSamplesSection);
-                    }
-                }
-            };
-        containerSamplesSection.addSamplesGrid(generator,
-                new ContainerSamplesGridDataRefreshCallback(showContainerSamplesSectionAction,
-                        hideContainerSamplesSectionAction));
+        containerSamplesSection
+                .setDisplayID(DisplayTypeIDGenerator.SAMPLE_SECTION, displayIdSuffix);
+        containerSamplesSection.addSamplesGrid(generator);
+        container.addPanel(containerSamplesSection);
         // Data Sets
         final SingleSectionPanel externalDataPanel =
                 createContentPanel(viewContext.getMessage(Dict.EXTERNAL_DATA_HEADING));
         dataSetBrowser =
                 SampleDataSetBrowser.create(viewContext, sampleId, generator.getSampleType());
         externalDataPanel.add(dataSetBrowser.getComponent());
-        externalDataPanel.setDisplayID(DisplayTypeIDGenerator.DATA_SET_SECTION,
-                GENERIC_SAMPLE_VIEWER);
+        externalDataPanel.setDisplayID(DisplayTypeIDGenerator.DATA_SET_SECTION, displayIdSuffix);
         container.addPanel(externalDataPanel);
 
         // Attachments
         attachmentsSection = createAttachmentsSection(generator);
-        attachmentsSection.setDisplayID(DisplayTypeIDGenerator.ATTACHMENT_SECTION,
-                GENERIC_SAMPLE_VIEWER);
+        attachmentsSection.setDisplayID(DisplayTypeIDGenerator.ATTACHMENT_SECTION, displayIdSuffix);
         container.addPanel(attachmentsSection);
 
         container.setLayoutOnChange(true);
@@ -322,7 +307,8 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ
     /**
      * Load the {@link SampleParentWithDerived} information.
      */
-    protected void reloadSampleGenerationData(AbstractAsyncCallback<SampleParentWithDerived> callback)
+    protected void reloadSampleGenerationData(
+            AbstractAsyncCallback<SampleParentWithDerived> callback)
     {
         viewContext.getService().getSampleGenerationInfo(sampleId, getBaseIndexURL(), callback);
     }
@@ -457,33 +443,4 @@ public final class GenericSampleViewer extends AbstractViewer<IGenericClientServ
 
     }
 
-    public final class ContainerSamplesGridDataRefreshCallback extends
-            AbstractGridDataRefreshCallback<Sample>
-    {
-
-        private final IDelegatedAction showContainerSamplesSectionAction;
-
-        private final IDelegatedAction hideContainerSamplesSectionAction;
-
-        public ContainerSamplesGridDataRefreshCallback(
-                IDelegatedAction showContainerSamplesSectionAction,
-                IDelegatedAction hideContainerSamplesSectionAction)
-        {
-            this.showContainerSamplesSectionAction = showContainerSamplesSectionAction;
-            this.hideContainerSamplesSectionAction = hideContainerSamplesSectionAction;
-        }
-
-        public void postRefresh(boolean wasSuccessful)
-        {
-            if (getGrid().getRowNumber() > 0)
-            {
-                showContainerSamplesSectionAction.execute();
-            } else
-            {
-                hideContainerSamplesSectionAction.execute();
-            }
-        }
-
-    }
-
 }
\ No newline at end of file
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
index 0618f38b229dd6ee4d7af060d2cb13331dcbd753..e2d2ae6f06ca39e07031ded9d8441c17442ec892 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/sample/GenericSampleRegistrationTest.java
@@ -16,7 +16,7 @@
 
 package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application.sample;
 
-import java.util.List;
+import java.util.Collection;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.menu.TopMenu.ActionMenuKind;
@@ -81,7 +81,7 @@ public class GenericSampleRegistrationTest extends AbstractGWTTestCase
 
     /**
      * Tests that authorization annotations of
-     * {@link IPluginCommonServer#registerSample(String, NewSample, List)} are obeyed.
+     * {@link IPluginCommonServer#registerSample(String, NewSample, Collection)} are obeyed.
      */
     public final void testRegisterSampleByAnUnauthorizedUser()
     {