@Autowired
private SelectFieldFactory selectFieldFactory;
+ TextField identifierField;
+ TextField specificIdentifierField;
+
public RegistrationPopupEditor() {
super(new FormLayout(), Registration.class);
}
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);
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");
}
+ @Override
+ protected void afterItemDataSourceSet() {
+ identifierField.setEnabled(false);
+ specificIdentifierField.setEnabled(false);
+ }
+
/**
* {@inheritDoc}
*/
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() {
+
}
}