From 921f978b4795dfd7fd6856f11cd1933b65129f95 Mon Sep 17 00:00:00 2001
From: pkupczyk <pkupczyk>
Date: Mon, 5 Nov 2012 08:37:07 +0000
Subject: [PATCH] SP-362 / BIS-246: Show metaproject tags in Web GUI and allow
 editing them when editing an entity - show metaprojects in entity properties
 panel

SVN: 27483
---
 .../application/PropertiesPanelUtils.java     | 22 +++++++++++++++++++
 .../dataset/DataSetPropertiesPanel.java       |  3 +++
 .../experiment/ExperimentPropertiesPanel.java |  1 +
 .../material/GenericMaterialViewer.java       |  1 +
 .../sample/GenericSampleViewer.java           |  2 ++
 5 files changed, 29 insertions(+)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/PropertiesPanelUtils.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/PropertiesPanelUtils.java
index e2904c3a850..03bac5fb9e7 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/PropertiesPanelUtils.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/PropertiesPanelUtils.java
@@ -16,14 +16,18 @@
 
 package ch.systemsx.cisd.openbis.plugin.generic.client.web.client.application;
 
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import ch.systemsx.cisd.common.shared.basic.string.StringUtils;
+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.renderer.PropertyTypeRenderer;
 import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.EntityPropertyUtils;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.IEntityProperty;
+import ch.systemsx.cisd.openbis.generic.shared.basic.dto.Metaproject;
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.PropertyType;
 
 /**
@@ -49,4 +53,22 @@ public class PropertiesPanelUtils
             }
         }
     }
+
+    public static void addMetaprojects(final IViewContext<?> viewContext,
+            final Map<String, Object> properties, final Collection<Metaproject> metaprojects)
+    {
+        if (metaprojects != null && metaprojects.size() > 0)
+        {
+            String[] names = new String[metaprojects.size()];
+            int index = 0;
+
+            for (Metaproject metaproject : metaprojects)
+            {
+                names[index++] = metaproject.getName();
+            }
+            properties
+                    .put(viewContext.getMessage(Dict.METAPROJECTS), StringUtils.join(names, ", "));
+        }
+
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
index 8942d729b5f..74dad561e33 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/dataset/DataSetPropertiesPanel.java
@@ -147,7 +147,10 @@ public class DataSetPropertiesPanel extends ContentPanel
         {
             properties.put(messageProvider.getMessage(Dict.DELETION), deletion);
         }
+
+        PropertiesPanelUtils.addMetaprojects(viewContext, properties, dataset.getMetaprojects());
         PropertiesPanelUtils.addEntityProperties(viewContext, properties, dataset.getProperties());
+
         return properties;
     }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
index 699739a40fb..feb6922b143 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ExperimentPropertiesPanel.java
@@ -122,6 +122,7 @@ public class ExperimentPropertiesPanel extends ContentPanel
         }
         properties.put(viewContext.getMessage(Dict.PROJECT), experiment.getProject());
 
+        PropertiesPanelUtils.addMetaprojects(viewContext, properties, experiment.getMetaprojects());
         PropertiesPanelUtils.addEntityProperties(viewContext, properties,
                 experiment.getProperties());
 
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 1ae06c3b8e8..a9a228e49e9 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
@@ -194,6 +194,7 @@ abstract public class GenericMaterialViewer extends AbstractViewerWithVerticalSp
         properties.put(viewContext.getMessage(Dict.REGISTRATION_DATE),
                 material.getRegistrationDate());
 
+        PropertiesPanelUtils.addMetaprojects(viewContext, properties, material.getMetaprojects());
         PropertiesPanelUtils.addEntityProperties(viewContext, properties, material.getProperties());
 
         return properties;
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 978b1fc4685..eda845cfa10 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
@@ -312,6 +312,8 @@ abstract public class GenericSampleViewer extends AbstractViewerWithVerticalSpli
         {
             properties.put(viewContext.getMessage(Dict.PART_OF), partOf);
         }
+
+        PropertiesPanelUtils.addMetaprojects(viewContext, properties, sample.getMetaprojects());
         PropertiesPanelUtils.addEntityProperties(viewContext, properties, sample.getProperties());
 
         return properties;
-- 
GitLab