From 28360a0186b944bf1c91c5427c6ab3ed7d428105 Mon Sep 17 00:00:00 2001
From: felmer <felmer>
Date: Wed, 10 Oct 2012 09:47:06 +0000
Subject: [PATCH] SP-298, BIS-210: improving layout, having one section after
 rest

SVN: 27129
---
 .../experiment/ManagedPropertyField.java      | 24 ++++++++++++++++---
 .../experiment/PropertiesEditor.java          |  4 +++-
 2 files changed, 24 insertions(+), 4 deletions(-)

diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ManagedPropertyField.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ManagedPropertyField.java
index be634ee10de..1c154ee7729 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ManagedPropertyField.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/ManagedPropertyField.java
@@ -32,8 +32,8 @@ import com.extjs.gxt.ui.client.widget.HorizontalPanel;
 import com.extjs.gxt.ui.client.widget.MessageBox;
 import com.extjs.gxt.ui.client.widget.VerticalPanel;
 import com.extjs.gxt.ui.client.widget.button.Button;
-import com.extjs.gxt.ui.client.widget.form.Field;
 import com.extjs.gxt.ui.client.widget.form.FormPanel;
+import com.extjs.gxt.ui.client.widget.form.HiddenField;
 import com.extjs.gxt.ui.client.widget.form.TextField;
 import com.google.gwt.user.client.ui.Widget;
 
@@ -45,7 +45,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.api.IManagedInputWidget
 /**
  * @author Franz-Josef Elmer
  */
-public class ManagedPropertyField extends Field<List<Map<String, String>>>
+public class ManagedPropertyField extends HiddenField<List<Map<String, String>>>
 {
     private static final int SPACING = 3;
 
@@ -74,7 +74,11 @@ public class ManagedPropertyField extends Field<List<Map<String, String>>>
         this.widgetDescriptions = widgetDescriptions;
         verticalPanel = new VerticalPanel();
         verticalPanel.setHorizontalAlign(HorizontalAlignment.RIGHT);
+        init();
+    }
 
+    private void init()
+    {
         Button addButton = new Button("Add More");
         addButton.addSelectionListener(new SelectionListener<ButtonEvent>()
             {
@@ -85,7 +89,10 @@ public class ManagedPropertyField extends Field<List<Map<String, String>>>
                 }
             });
         addButton.setToolTip("Add a new section.");
-        verticalPanel.add(addButton);
+        HorizontalPanel horizontalPanel = new HorizontalPanel();
+        horizontalPanel.setSpacing(SPACING);
+        horizontalPanel.add(addButton);
+        verticalPanel.add(horizontalPanel);
         addNewSection(0);
     }
 
@@ -94,6 +101,15 @@ public class ManagedPropertyField extends Field<List<Map<String, String>>>
         return verticalPanel;
     }
 
+    @Override
+    public void reset()
+    {
+        sections.clear();
+        verticalPanel.removeAll();
+        init();
+        super.reset();
+    }
+
     @Override
     public List<Map<String, String>> getValue()
     {
@@ -113,6 +129,8 @@ public class ManagedPropertyField extends Field<List<Map<String, String>>>
     private void addNewSection(int sectionIndex)
     {
         FormPanel formPanel = new FormPanel();
+        formPanel.setWidth(AbstractRegistrationForm.DEFAULT_FIELD_WIDTH
+                + AbstractRegistrationForm.DEFAULT_LABEL_WIDTH + 30);
         formPanel.setLabelWidth(AbstractRegistrationForm.DEFAULT_LABEL_WIDTH - SPACING - 2);
         formPanel.setFieldWidth(AbstractRegistrationForm.DEFAULT_FIELD_WIDTH);
         formPanel.setHeaderVisible(false);
diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/PropertiesEditor.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/PropertiesEditor.java
index 636f8345401..a210d97928f 100644
--- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/PropertiesEditor.java
+++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/generic/client/web/client/application/experiment/PropertiesEditor.java
@@ -281,7 +281,9 @@ abstract public class PropertiesEditor<T extends EntityType, S extends EntityTyp
                         label += " *";
                     }
                     FieldSet fieldSet = createSectionFieldSet(label);
-                    fieldSet.add(((ManagedPropertyField) field.get()).getWidget());
+                    ManagedPropertyField managedPropertyField = (ManagedPropertyField) field.get();
+                    fieldSet.add(managedPropertyField.getWidget());
+                    form.add(managedPropertyField);
                     form.add(fieldSet);
                 } else
                 {
-- 
GitLab