From 713a95a3778e2998ee6b3c6130797f1c02fae79d Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Wed, 14 Nov 2012 09:41:39 +0000
Subject: [PATCH] SP-385 / BIS-247 : Metaprojects Browsing and Maintenance UI:
 - fix entities section layout to be resizable - make messages more consistent

SVN: 27609
---
 .../entity/MetaprojectEntities.java           | 26 ++++++++---------
 .../MetaprojectTreeEntityKindItemWidget.java  | 28 +++++++++++++++++--
 2 files changed, 38 insertions(+), 16 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/entity/MetaprojectEntities.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/entity/MetaprojectEntities.java
index cd3a3d8cc6b..74c157a2552 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/entity/MetaprojectEntities.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/entity/MetaprojectEntities.java
@@ -21,9 +21,8 @@ import java.util.Map;
 import java.util.Set;
 
 import com.extjs.gxt.ui.client.widget.Component;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Panel;
-import com.google.gwt.user.client.ui.SimplePanel;
+import com.extjs.gxt.ui.client.widget.LayoutContainer;
+import com.extjs.gxt.ui.client.widget.layout.FitLayout;
 
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.AbstractAsyncCallback;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.DisposableTabContent;
@@ -40,15 +39,13 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.MetaprojectAssignmentsC
 /**
  * @author pkupczyk
  */
-public class MetaprojectEntities extends Composite implements IDisposableComponent
+public class MetaprojectEntities extends LayoutContainer implements IDisposableComponent
 {
 
     public static final String ID_SUFFIX = "_metaproject-entities";
 
     private IViewContext<?> viewContext;
 
-    private Panel panel;
-
     private SectionsPanel sectionsPanel;
 
     private Map<EntityKind, DisposableTabContent> sectionsMap;
@@ -60,11 +57,8 @@ public class MetaprojectEntities extends Composite implements IDisposableCompone
     public MetaprojectEntities(IViewContext<?> viewContext, String idPrefix)
     {
         this.viewContext = viewContext;
-
-        panel = new SimplePanel();
-        panel.getElement().setId(idPrefix + ID_SUFFIX);
-
-        initWidget(panel);
+        setLayout(new FitLayout());
+        setId(idPrefix + ID_SUFFIX);
     }
 
     private void initSections(final Long metaprojectId, final IDelegatedAction callback)
@@ -77,7 +71,10 @@ public class MetaprojectEntities extends Composite implements IDisposableCompone
                         @Override
                         protected void process(MetaprojectAssignmentsCount count)
                         {
-                            panel.clear();
+                            if (sectionsPanel != null)
+                            {
+                                remove(sectionsPanel);
+                            }
 
                             sectionsPanel =
                                     new SectionsPanel(viewContext.getCommonViewContext(),
@@ -108,7 +105,10 @@ public class MetaprojectEntities extends Composite implements IDisposableCompone
                                         viewContext, new TechId(metaprojectId)));
                             }
 
-                            panel.add(sectionsPanel);
+                            add(sectionsPanel);
+                            layout();
+
+                            callback.execute();
                         }
                     });
     }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/tree/widget/MetaprojectTreeEntityKindItemWidget.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/tree/widget/MetaprojectTreeEntityKindItemWidget.java
index e5f08ff382b..63df6339cbf 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/tree/widget/MetaprojectTreeEntityKindItemWidget.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/metaproject/tree/widget/MetaprojectTreeEntityKindItemWidget.java
@@ -18,8 +18,10 @@ package ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.metapr
 
 import com.google.gwt.user.client.ui.InlineLabel;
 
+import ch.systemsx.cisd.openbis.generic.client.web.client.application.Dict;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.IViewContext;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.metaproject.tree.model.MetaprojectTreeEntityKindItemData;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityKind;
 
 /**
  * @author pkupczyk
@@ -32,8 +34,28 @@ public class MetaprojectTreeEntityKindItemWidget extends MetaprojectTreeItemWidg
     {
         super(viewContext);
 
-        initWidget(new InlineLabel(model.getEntityKind().getDescription() + "s ("
-                + model.getEntityCount() + ")"));
-    }
+        EntityKind entityKind = model.getEntityKind();
+        String messageKey;
+
+        if (EntityKind.EXPERIMENT.equals(entityKind))
+        {
+            messageKey = Dict.METAPROJECT_ENTITIES_EXPERIMENTS;
+        } else if (EntityKind.SAMPLE.equals(entityKind))
+        {
+            messageKey = Dict.METAPROJECT_ENTITIES_SAMPLES;
+        } else if (EntityKind.DATA_SET.equals(entityKind))
+        {
+            messageKey = Dict.METAPROJECT_ENTITIES_DATA_SETS;
+        } else if (EntityKind.MATERIAL.equals(entityKind))
+        {
+            messageKey = Dict.METAPROJECT_ENTITIES_MATERIALS;
+        } else
+        {
+            throw new IllegalArgumentException("Unsupported entity kind: " + entityKind);
+        }
 
+        String message = viewContext.getMessage(messageKey) + " (" + model.getEntityCount() + ")";
+
+        initWidget(new InlineLabel(message));
+    }
 }
-- 
GitLab