#6169 configure the enable state of fields in a fieldGroup individually
authorAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 17 May 2017 14:02:59 +0000 (16:02 +0200)
committerAndreas Kohlbecker <a.kohlbecker@bgbm.org>
Wed, 17 May 2017 14:02:59 +0000 (16:02 +0200)
src/main/java/eu/etaxonomy/cdm/vaadin/view/registration/RegistrationPopupEditor.java
src/main/java/eu/etaxonomy/vaadin/mvp/AbstractPopupEditor.java

index e7449806506deb1db0c6aa8beea8a8a006a27403..a413042a176daeb07cf69ed41c54548d94f49b4d 100644 (file)
@@ -45,6 +45,9 @@ public class RegistrationPopupEditor extends AbstractCdmPopupEditor<Registration
     @Autowired
     private SelectFieldFactory selectFieldFactory;
 
+    TextField identifierField;
+    TextField specificIdentifierField;
+
     public RegistrationPopupEditor() {
         super(new FormLayout(), Registration.class);
     }
@@ -59,13 +62,11 @@ public class RegistrationPopupEditor extends AbstractCdmPopupEditor<Registration
         form.setSpacing(true);
         form.setMargin(true);
 
-        TextField identifierField = new TextField("Identifier");
+        identifierField = new TextField("Identifier");
         addField(identifierField, "identifier");
-        identifierField.setEnabled(false);
 
-        TextField specificIdentifierField = new TextField("Specific Identifier");
+        specificIdentifierField = new TextField("Specific Identifier");
         addField(specificIdentifierField, "specificIdentifier");
-        specificIdentifierField.setEnabled(false);
 
         ListSelect statusSelect = new ListSelect("Status", Arrays.asList(RegistrationStatus.values()));
         statusSelect.setNullSelectionAllowed(false);
@@ -74,10 +75,12 @@ public class RegistrationPopupEditor extends AbstractCdmPopupEditor<Registration
 
         ListSelect submitterField = selectFieldFactory.createListSelect("Submitter", User.class);
         submitterField.setEnabled(false);
+        submitterField.setWidth(100, Unit.PERCENTAGE);
         addField(submitterField, "submitter");
 
         ListSelect institutionField = selectFieldFactory.createListSelect("Institution", Institution.class);
         institutionField.setEnabled(false);
+        institutionField.setWidth(100, Unit.PERCENTAGE);
         addField(institutionField, "institution");
 
         DateField registrationDateField = new DateField("Registration date");
@@ -86,6 +89,12 @@ public class RegistrationPopupEditor extends AbstractCdmPopupEditor<Registration
 
     }
 
+    @Override
+    protected void afterItemDataSourceSet() {
+        identifierField.setEnabled(false);
+        specificIdentifierField.setEnabled(false);
+    }
+
     /**
      * {@inheritDoc}
      */
index 36a9014e2f9d45f997adfbc44d97ad705cf98eab..fd44a8ba707243b647e8f4728b6362247596c253 100644 (file)
@@ -400,5 +400,17 @@ public abstract class AbstractPopupEditor<DTO extends Object, P extends Abstract
 
     public void showInEditor(DTO beanToEdit) {
         fieldGroup.setItemDataSource(beanToEdit);
+        afterItemDataSourceSet();
+    }
+
+    /**
+     * This method is called after setting the item data source whereby the {@link FieldGroup#configureField(Field<?> field)} method will be called.
+     * In this method all fields are set to default states defined for the fieldGroup.
+     * <p>
+     * You can now implement this method if you need to configure the enable state of fields
+     * individually.
+     */
+    protected void afterItemDataSourceSet() {
+
     }
 }