From 9a39795e78a92bf7f336e20abc3e8eff62f95d9f Mon Sep 17 00:00:00 2001
From: izabel <izabel>
Date: Tue, 17 Mar 2009 09:43:31 +0000
Subject: [PATCH] [LMS-780] show attachment info

SVN: 10255
---
 .../AbstractGenericEntityEditForm.java        |  1 +
 .../experiment/AttachmentManager.java         |  9 ++++----
 .../experiment/GenericExperimentEditForm.java | 21 +++++++++++++++++--
 .../GenericExperimentRegistrationForm.java    |  2 +-
 4 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/AbstractGenericEntityEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/AbstractGenericEntityEditForm.java
index 60c37753c84..616748c1241 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/AbstractGenericEntityEditForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/AbstractGenericEntityEditForm.java
@@ -146,6 +146,7 @@ abstract public class AbstractGenericEntityEditForm<T extends EntityType, S exte
     {
         setEditMode(true);
         infoBox.reset();
+        formPanel.reset();
     }
 
     protected void showCheckPage()
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AttachmentManager.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AttachmentManager.java
index 9146086b4a0..d219cc255df 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AttachmentManager.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/AttachmentManager.java
@@ -24,7 +24,7 @@ import com.extjs.gxt.ui.client.widget.form.FileUploadField;
 
 /**
  * Stores and manages {@link FileUploadField} fields.
- *
+ * 
  * @author Izabela Adamczyk
  */
 public class AttachmentManager
@@ -60,17 +60,18 @@ public class AttachmentManager
         return field;
     }
 
-    public boolean attachmentsDefined()
+    public int attachmentsDefined()
     {
+        int i = 0;
         for (FileUploadField field : attachmentFields)
         {
             Object value = field.getValue();
             if (value != null && String.valueOf(value).length() > 0)
             {
-                return true;
+                i++;
             }
         }
-        return false;
+        return i;
     }
 
     private final FileUploadField createFileUploadField(final int counter)
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentEditForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentEditForm.java
index cf1a9bd56da..19d71f0986e 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentEditForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentEditForm.java
@@ -22,6 +22,8 @@ import java.util.List;
 import com.extjs.gxt.ui.client.Events;
 import com.extjs.gxt.ui.client.event.ButtonEvent;
 import com.extjs.gxt.ui.client.event.SelectionListener;
+import com.extjs.gxt.ui.client.util.Format;
+import com.extjs.gxt.ui.client.widget.Html;
 import com.extjs.gxt.ui.client.widget.form.Field;
 import com.extjs.gxt.ui.client.widget.form.FileUploadField;
 import com.google.gwt.user.client.ui.Widget;
@@ -58,6 +60,8 @@ public final class GenericExperimentEditForm
 
     private String sessionKey;
 
+    private Html attachmentsInfo;
+
     public GenericExperimentEditForm(IViewContext<IGenericClientServiceAsync> viewContext,
             EditableExperiment entity, boolean editMode)
     {
@@ -93,7 +97,7 @@ public final class GenericExperimentEditForm
                 {
                     if (formPanel.isValid())
                     {
-                        if (attachmentManager.attachmentsDefined())
+                        if (attachmentManager.attachmentsDefined() > 0)
                         {
                             // setUploadEnabled(false);
                             formPanel.submit();
@@ -162,13 +166,26 @@ public final class GenericExperimentEditForm
     protected List<Widget> getEntitySpecificCheckPageWidgets()
     {
         final ArrayList<Widget> widgets = new ArrayList<Widget>();
-
+        widgets.add(attachmentsInfo = new Html());
         return widgets;
     }
 
     @Override
     protected void updateCheckPageWidgets()
     {
+        attachmentsInfo.setHtml(getAttachmentInfoText(attachmentManager.attachmentsDefined()));
     }
 
+    public String getAttachmentInfoText(int attachmentDefined)
+    {
+        if (attachmentDefined > 0)
+        {
+            return Format.substitute("Added {0} new attachment{1}.", attachmentDefined,
+                    attachmentDefined == 1 ? "" : "s");
+
+        } else
+        {
+            return "No new attachments added.";
+        }
+    }
 }
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentRegistrationForm.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentRegistrationForm.java
index ecfc1afc34b..b76dc9daa33 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentRegistrationForm.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/GenericExperimentRegistrationForm.java
@@ -182,7 +182,7 @@ public final class GenericExperimentRegistrationForm
                 {
                     if (formPanel.isValid())
                     {
-                        if (attachmentManager.attachmentsDefined())
+                        if (attachmentManager.attachmentsDefined() > 0)
                         {
                             setUploadEnabled(false);
                             formPanel.submit();
-- 
GitLab