use of org.jboss.hal.ballroom.form.TextBoxItem in project console by hal.
the class DestinationPresenter method addSecuritySettingRole.
void addSecuritySettingRole() {
Metadata metadata = metadataRegistry.lookup(ROLE_TEMPLATE);
TextBoxItem patternItem = new TextBoxItem(PATTERN, resources.constants().pattern());
patternItem.setRequired(true);
TextBoxItem roleItem = new TextBoxItem(ROLE, resources.constants().role());
roleItem.setRequired(true);
Form<ModelNode> form = new ModelNodeForm.Builder<>(Ids.MESSAGING_SECURITY_SETTING_ROLE_ADD, metadata).unboundFormItem(patternItem, 0).unboundFormItem(roleItem, 1).fromRequestProperties().requiredOnly().build();
new AddResourceDialog(Names.SECURITY_SETTING, form, (name, model) -> {
String pattern = patternItem.getValue();
ResourceAddress securitySettingAddress = SELECTED_SERVER_TEMPLATE.append(SECURITY_SETTING + EQUALS + pattern).resolve(statementContext);
ResourceAddress roleAddress = SELECTED_SERVER_TEMPLATE.append(SECURITY_SETTING + EQUALS + pattern).append(ROLE + EQUALS + roleItem.getValue()).resolve(statementContext);
ResourceCheck check = new ResourceCheck(dispatcher, securitySettingAddress);
Task<FlowContext> add = context -> {
Operation addSecuritySetting = new Operation.Builder(securitySettingAddress, ADD).build();
Operation addRole = new Operation.Builder(roleAddress, ADD).payload(model).build();
int status = context.pop();
if (status == 404) {
return dispatcher.execute(new Composite(addSecuritySetting, addRole)).toCompletable();
} else {
return dispatcher.execute(addRole).toCompletable();
}
};
series(new FlowContext(progress.get()), check, add).subscribe(new SuccessfulOutcome<FlowContext>(getEventBus(), resources) {
@Override
public void onSuccess(FlowContext context) {
MessageEvent.fire(getEventBus(), Message.success(resources.messages().addResourceSuccess(Names.SECURITY_SETTING, pattern + "/" + name)));
reload();
}
});
}).show();
}
Aggregations