From 4be3eaf83d3d8f99df81c6506aae791dce6fd6f5 Mon Sep 17 00:00:00 2001
From: izabel <izabel>
Date: Wed, 15 Sep 2010 10:37:33 +0000
Subject: [PATCH] [LMS-1689], [LMS-1757]: save "collapse" state of "Properties
 Panel"

SVN: 17839
---
 .../framework/DisplaySettingsManager.java     |  8 +++++---
 .../client/application/ui/AbstractViewer.java |  4 +++-
 .../shared/basic/dto/DisplaySettings.java     | 19 +++++++++++++++++++
 3 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
index 25b9faf114c..dd99e9639d3 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/framework/DisplaySettingsManager.java
@@ -466,17 +466,19 @@ public class DisplaySettingsManager
         return tabModifications.get(tabDisplayTypeID);
     }
 
-    // TODO work in progress, ignore for now.
     /**
      * @return True if the given section is collapsed
      */
-    public final Boolean getPanelCollapsedSetting(String panelId)
+    @SuppressWarnings("deprecation")
+    public final Boolean tryGetPanelCollapsedSetting(String panelId)
     {
-        return Boolean.FALSE;
+        return displaySettings.getPanelCollapsedSettings().get(panelId);
     }
 
+    @SuppressWarnings("deprecation")
     public final void updatePanelCollapsedSetting(String panelId, Boolean value)
     {
+        displaySettings.getPanelCollapsedSettings().put(panelId, value);
     }
 
     //
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
index f75eed575d6..be0e8132a73 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/AbstractViewer.java
@@ -266,7 +266,9 @@ public abstract class AbstractViewer<D extends IEntityInformationHolder> extends
     protected boolean isLeftPanelInitiallyCollapsed(final String displayIdSuffix)
     {
         final String panelId = LEFT_PANEL_PREFIX + displayIdSuffix;
-        return viewContext.getDisplaySettingsManager().getPanelCollapsedSetting(panelId);
+        Boolean collapsedOrNull =
+                viewContext.getDisplaySettingsManager().tryGetPanelCollapsedSetting(panelId);
+        return collapsedOrNull == null ? false : collapsedOrNull.booleanValue();
     }
 
     public void notify(List<IModule> modules)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
index c5d5e6229ff..0cd85f9cbe1 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/basic/dto/DisplaySettings.java
@@ -59,6 +59,8 @@ public class DisplaySettings implements Serializable, IsSerializable
     private RealNumberFormatingParameters realNumberFormatingParameters =
             new RealNumberFormatingParameters();
 
+    private Map<String, Boolean> panelCollapsedSettings = new HashMap<String, Boolean>();
+
     /** @deprecated Should be used only by DisplaySettingsManager. */
     @Deprecated
     public final Map<String, List<ColumnSetting>> getColumnSettings()
@@ -77,6 +79,17 @@ public class DisplaySettings implements Serializable, IsSerializable
         return tabSettings;
     }
 
+    /** @deprecated Should be used only by DisplaySettingsManager. */
+    @Deprecated
+    public Map<String, Boolean> getPanelCollapsedSettings()
+    {
+        if (panelCollapsedSettings == null)
+        {
+            panelCollapsedSettings = new HashMap<String, Boolean>();
+        }
+        return panelCollapsedSettings;
+    }
+
     /** @deprecated Should be used only by DisplaySettingsManager. */
     @Deprecated
     public Map<String, String> getDropDownSettings()
@@ -114,6 +127,12 @@ public class DisplaySettings implements Serializable, IsSerializable
         this.columnSettings = columnSettings;
     }
 
+    @SuppressWarnings("unused")
+    private final void setPanelCollapsedSettings(Map<String, Boolean> panelCollapsedSettings)
+    {
+        this.panelCollapsedSettings = panelCollapsedSettings;
+    }
+
     @SuppressWarnings("unused")
     private final void setTabSettings(Map<String, String> tabSettings)
     {
-- 
GitLab