use of org.jboss.hal.ballroom.form.FormValidation in project console by hal.
the class ClusteringPresenter method showBroadcastOrDiscoveryGroupAddDialog.
void showBroadcastOrDiscoveryGroupAddDialog(ServerSubResource ssr, Consumer<ModelNodeForm.Builder<ModelNode>> formBuilderAugmenter, Consumer<Form<ModelNode>> formAugmenter) {
Metadata metadata = metadataRegistry.lookup(ssr.template);
NameItem nameItem = new NameItem();
ModelNodeForm.Builder<ModelNode> formBuilder = new ModelNodeForm.Builder<>(Ids.build(ssr.baseId, Ids.ADD), metadata).unboundFormItem(nameItem, 0).fromRequestProperties().include(JGROUPS_CLUSTER, SOCKET_BINDING).unsorted();
formBuilderAugmenter.accept(formBuilder);
Form<ModelNode> form = formBuilder.build();
formAugmenter.accept(form);
// validation that requires one of jgroups-cluster and socket-binding to be configured
FormValidation<ModelNode> jgroupsOrSocketValidation = new FormValidation<ModelNode>() {
@Override
public ValidationResult validate(Form<ModelNode> form) {
if (form.getFormItem(JGROUPS_CLUSTER).isEmpty() && form.getFormItem(SOCKET_BINDING).isEmpty()) {
return ValidationResult.invalid(resources.messages().jgroupsClusterOrSocketBindingMustBeSet());
}
return ValidationResult.OK;
}
};
form.getFormItem(SOCKET_BINDING).registerSuggestHandler(new ReadChildrenAutoComplete(dispatcher, statementContext, SOCKET_BINDING_TEMPLATE));
form.addFormValidation(jgroupsOrSocketValidation);
new AddResourceDialog(resources.messages().addResourceTitle(ssr.type), form, (name, model) -> {
name = nameItem.getValue();
ResourceAddress address = SELECTED_SERVER_TEMPLATE.append(ssr.resource + "=" + name).resolve(statementContext);
crud.add(ssr.type, name, address, model, (n, a) -> reload());
}).show();
}
Aggregations