Search in sources :

Example 21 with Form

use of org.jboss.hal.ballroom.form.Form in project console by hal.

the class EEView method update.

@SuppressWarnings("unchecked")
private void update(ModelNode eeData, String resourceType, String navigationId) {
    if (eeData.hasDefined(resourceType)) {
        List<NamedNode> models = asNamedNodes(eeData.get(resourceType).asPropertyList());
        Form form = forms.get(resourceType);
        form.clear();
        Table<NamedNode> table = tables.get(resourceType);
        table.update(models);
        navigation.updateBadge(navigationId, models.size());
    }
}
Also used : ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) Form(org.jboss.hal.ballroom.form.Form) NamedNode(org.jboss.hal.dmr.NamedNode)

Example 22 with Form

use of org.jboss.hal.ballroom.form.Form in project console by hal.

the class ModclusterView method init.

@PostConstruct
void init() {
    // --------- load-provider=dynamic
    Metadata dynamicMetadata = mbuiContext.metadataRegistry().lookup(LOAD_PROVIDER_DYNAMIC_TEMPLATE);
    loadProviderDynamicForm = new ModelNodeForm.Builder<>("load-provider-dynamic-form", dynamicMetadata).singleton(() -> presenter.loadProviderDynamicOperation(), () -> presenter.addLoadProviderDynamic()).prepareRemove(form -> presenter.removeLoadProviderDynamic()).onSave((form, changedValues) -> {
        String name = presenter.getProxyName();
        AddressTemplate template = LOAD_PROVIDER_DYNAMIC_TEMPLATE.replaceWildcards(presenter.getProxyName());
        saveForm(Names.LOAD_PROVIDER_DYNAMIC, name, template.resolve(mbuiContext.statementContext(), name), changedValues, dynamicMetadata);
    }).prepareReset(form -> {
        String name = presenter.getProxyName();
        AddressTemplate template = LOAD_PROVIDER_DYNAMIC_TEMPLATE.replaceWildcards(presenter.getProxyName());
        resetForm(Names.LOAD_PROVIDER_DYNAMIC, name, template.resolve(mbuiContext.statementContext(), name), form, dynamicMetadata);
    }).build();
    HTMLElement loadProviderDynamicElement = section().add(div().add(h(1).textContent(LOAD_PROVIDER_DYNAMIC)).add(p().textContent(dynamicMetadata.getDescription().getDescription())).element()).add(loadProviderDynamicForm).element();
    navigation.insertPrimary("load-provider-dynamic-item", "custom-load-metrics-item", LOAD_PROVIDER_DYNAMIC, "fa fa-shield", loadProviderDynamicElement);
    registerAttachable(loadProviderDynamicForm);
    // --------- load-provider=simple
    Metadata simpleMetadata = mbuiContext.metadataRegistry().lookup(LOAD_PROVIDER_SIMPLE_TEMPLATE);
    loadProviderSimpleForm = new ModelNodeForm.Builder<>("load-provider-simple-form", simpleMetadata).singleton(() -> presenter.loadProviderSimpleOperation(), () -> presenter.addLoadProviderSimple()).prepareRemove(form -> presenter.removeLoadProviderSimple()).onSave((form, changedValues) -> {
        String name = presenter.getProxyName();
        AddressTemplate template = LOAD_PROVIDER_SIMPLE_TEMPLATE.replaceWildcards(presenter.getProxyName());
        saveForm(LOAD_PROVIDER_SIMPLE, name, template.resolve(mbuiContext.statementContext(), name), changedValues, simpleMetadata);
    }).prepareReset(form -> {
        String name = presenter.getProxyName();
        AddressTemplate template = LOAD_PROVIDER_SIMPLE_TEMPLATE.replaceWildcards(presenter.getProxyName());
        resetForm(LOAD_PROVIDER_SIMPLE, name, template.resolve(mbuiContext.statementContext(), name), form, simpleMetadata);
    }).build();
    HTMLElement loadProviderSimpleElement = section().add(div().add(h(1).textContent(LOAD_PROVIDER_SIMPLE)).add(p().textContent(simpleMetadata.getDescription().getDescription())).element()).add(loadProviderSimpleForm).element();
    navigation.insertPrimary("load-provider-simple-item", "load-provider-dynamic-item", LOAD_PROVIDER_SIMPLE, "fa fa-exchange", loadProviderSimpleElement);
    registerAttachable(loadProviderSimpleForm);
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) Element(elemental2.dom.Element) Alert(org.jboss.hal.ballroom.Alert) LOAD_PROVIDER_DYNAMIC_TEMPLATE(org.jboss.hal.client.configuration.subsystem.modcluster.AddressTemplates.LOAD_PROVIDER_DYNAMIC_TEMPLATE) MbuiViewImpl(org.jboss.hal.core.mbui.MbuiViewImpl) Icons(org.jboss.hal.resources.Icons) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) AddressTemplate(org.jboss.hal.meta.AddressTemplate) MbuiElement(org.jboss.hal.spi.MbuiElement) HTMLElement(elemental2.dom.HTMLElement) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) Table(org.jboss.hal.ballroom.table.Table) LOAD_PROVIDER_SIMPLE(org.jboss.hal.resources.Names.LOAD_PROVIDER_SIMPLE) VerticalNavigation(org.jboss.hal.ballroom.VerticalNavigation) ModelNodeHelper.failSafeGet(org.jboss.hal.dmr.ModelNodeHelper.failSafeGet) List(java.util.List) MbuiContext(org.jboss.hal.core.mbui.MbuiContext) LOAD_PROVIDER_SIMPLE_TEMPLATE(org.jboss.hal.client.configuration.subsystem.modcluster.AddressTemplates.LOAD_PROVIDER_SIMPLE_TEMPLATE) PostConstruct(javax.annotation.PostConstruct) MbuiView(org.jboss.hal.spi.MbuiView) NamedNode(org.jboss.hal.dmr.NamedNode) LOAD_PROVIDER_DYNAMIC(org.jboss.hal.resources.Names.LOAD_PROVIDER_DYNAMIC) Elements(org.jboss.gwt.elemento.core.Elements) Form(org.jboss.hal.ballroom.form.Form) AddressTemplate(org.jboss.hal.meta.AddressTemplate) HTMLElement(elemental2.dom.HTMLElement) Metadata(org.jboss.hal.meta.Metadata) PostConstruct(javax.annotation.PostConstruct)

Example 23 with Form

use of org.jboss.hal.ballroom.form.Form in project console by hal.

the class HaPolicyView method createSimple.

private void createSimple(HaPolicy haPolicy) {
    Metadata metadata = metadataRegistry.lookup(haPolicy.template);
    Form<ModelNode> form = form(haPolicy);
    HTMLElement element = section().css(clearfix).add(h(1).textContent(haPolicy.type)).add(a().css(clickable, pullRight).on(click, event -> presenter.resetHaPolicy()).textContent(resources.constants().remove())).add(p().textContent(metadata.getDescription().getDescription())).add(form).element();
    policyForms.put(haPolicy, form);
    policyElements.put(haPolicy, element);
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) LoggerFactory(org.slf4j.LoggerFactory) HashMap(java.util.HashMap) CSS.clickable(org.jboss.hal.resources.CSS.clickable) Inject(javax.inject.Inject) Tabs(org.jboss.hal.ballroom.Tabs) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) HTMLElement(elemental2.dom.HTMLElement) Map(java.util.Map) EmptyState(org.jboss.hal.ballroom.EmptyState) HalViewImpl(org.jboss.hal.core.mvp.HalViewImpl) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) Logger(org.slf4j.Logger) Ids(org.jboss.hal.resources.Ids) CSS(org.jboss.hal.resources.CSS) EventType.click(org.jboss.gwt.elemento.core.EventType.click) CSS.marginTopLarge(org.jboss.hal.resources.CSS.marginTopLarge) ModelNodeHelper.failSafeGet(org.jboss.hal.dmr.ModelNodeHelper.failSafeGet) MetadataRegistry(org.jboss.hal.meta.MetadataRegistry) CSS.pullRight(org.jboss.hal.resources.CSS.pullRight) Resources(org.jboss.hal.resources.Resources) CSS.clearfix(org.jboss.hal.resources.CSS.clearfix) Elements(org.jboss.gwt.elemento.core.Elements) Form(org.jboss.hal.ballroom.form.Form) HTMLElement(elemental2.dom.HTMLElement) Metadata(org.jboss.hal.meta.Metadata) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 24 with Form

use of org.jboss.hal.ballroom.form.Form in project console by hal.

the class CredentialReference method form.

/**
 * Creates a form for the {@code credential-reference} complex attribute of a resource. The form is setup as a singleton
 * form to add, save, reset and remove the complex attribute.
 *
 * @param baseId base ID used for the generated form and add resource dialog
 * @param metadata the metadata of the resource which contains the {@code credential-reference} attribute
 * @param crName the name of the credential-reference complex attribute
 * @param alternativeName the name of the alternative attribute
 * @param alternativeValue the value of the alternative attribute
 * @param address the fully qualified address of the resource used for the CRUD actions
 * @param callback the callback executed after the {@code credential-reference} attributes has been added, saved, reset or
 *        removed
 */
public Form<ModelNode> form(String baseId, Metadata metadata, String crName, String alternativeName, Supplier<String> alternativeValue, Supplier<ResourceAddress> address, Callback callback) {
    String credentialReferenceName = crName == null ? CREDENTIAL_REFERENCE : crName;
    Metadata crMetadata = metadata.forComplexAttribute(credentialReferenceName);
    EmptyState.Builder emptyStateBuilder = new EmptyState.Builder(Ids.build(baseId, credentialReferenceName, Ids.FORM, Ids.EMPTY), resources.constants().noResource());
    if (crMetadata.getSecurityContext().isWritable()) {
        emptyStateBuilder.primaryAction(resources.constants().add(), () -> {
            if (alternativeName != null && alternativeValue != null && !Strings.isNullOrEmpty(alternativeValue.get())) {
                String alternativeLabel = new LabelBuilder().label(alternativeName);
                DialogFactory.showConfirmation(resources.messages().addResourceTitle(Names.CREDENTIAL_REFERENCE), resources.messages().credentialReferenceAddConfirmation(alternativeLabel), () -> setTimeout(o -> addCredentialReference(baseId, crMetadata, credentialReferenceName, alternativeName, address, callback), SHORT_TIMEOUT));
            } else {
                addCredentialReference(baseId, crMetadata, credentialReferenceName, null, address, callback);
            }
        }, Constraint.executable(metadata.getTemplate(), ADD)).description(resources.messages().noResource());
    } else {
        emptyStateBuilder.description(resources.constants().restricted());
    }
    EmptyState noCredentialReference = emptyStateBuilder.build();
    ModelNodeForm.Builder<ModelNode> formBuilder = new ModelNodeForm.Builder<>(Ids.build(baseId, credentialReferenceName, Ids.FORM), crMetadata).include(STORE, ALIAS, CLEAR_TEXT, TYPE).unsorted().singleton(() -> {
        ResourceAddress fqAddress = address.get();
        Operation operation = null;
        if (fqAddress != null && crMetadata.getSecurityContext().isReadable()) {
            operation = new Operation.Builder(address.get(), READ_ATTRIBUTE_OPERATION).param(NAME, credentialReferenceName).build();
        }
        return operation;
    }, noCredentialReference).onSave(((f, changedValues) -> {
        ResourceAddress fqa = address.get();
        if (fqa != null) {
            if (changedValues.isEmpty()) {
                MessageEvent.fire(eventBus, Message.warning(resources.messages().noChanges()));
                callback.execute();
            } else {
                ca.save(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqa, f.getModel(), callback);
            }
        } else {
            MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
        }
    }));
    // some credential-reference attributes are nillable=false, so only nillable=true may be removed
    if (crMetadata.getDescription().get(NILLABLE).asBoolean()) {
        formBuilder.prepareRemove(f -> {
            ResourceAddress fqAddress = address.get();
            if (fqAddress != null) {
                ca.remove(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqAddress, new Form.FinishRemove<ModelNode>(f) {

                    @Override
                    public void afterRemove(Form<ModelNode> form) {
                        callback.execute();
                    }
                });
            } else {
                MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
            }
        });
    }
    Form<ModelNode> form = formBuilder.build();
    form.addFormValidation(new CrFormValidation(alternativeName, alternativeValue, resources));
    form.addFormValidation(new CrFormValuesValidation(resources));
    return form;
}
Also used : ModelNode(org.jboss.hal.dmr.ModelNode) Constraint(org.jboss.hal.meta.security.Constraint) MessageEvent(org.jboss.hal.spi.MessageEvent) SHORT_TIMEOUT(org.jboss.hal.resources.UIConstants.SHORT_TIMEOUT) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Supplier(java.util.function.Supplier) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) FormValidation(org.jboss.hal.ballroom.form.FormValidation) Strings(com.google.common.base.Strings) Message(org.jboss.hal.spi.Message) EmptyState(org.jboss.hal.ballroom.EmptyState) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) ComplexAttributeOperations(org.jboss.hal.core.ComplexAttributeOperations) EventBus(com.google.web.bindery.event.shared.EventBus) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Composite(org.jboss.hal.dmr.Composite) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) FormItem(org.jboss.hal.ballroom.form.FormItem) Callback(org.jboss.hal.spi.Callback) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) ValidationResult(org.jboss.hal.ballroom.form.ValidationResult) Form(org.jboss.hal.ballroom.form.Form) DomGlobal.setTimeout(elemental2.dom.DomGlobal.setTimeout) EmptyState(org.jboss.hal.ballroom.EmptyState) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) Form(org.jboss.hal.ballroom.form.Form) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Metadata(org.jboss.hal.meta.Metadata) Operation(org.jboss.hal.dmr.Operation) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) ModelNode(org.jboss.hal.dmr.ModelNode)

Example 25 with Form

use of org.jboss.hal.ballroom.form.Form in project console by hal.

the class CredentialReference method addCredentialReference.

private void addCredentialReference(String baseId, Metadata crMetadata, String credentialReferenceName, String alternativeName, Supplier<ResourceAddress> address, Callback callback) {
    ResourceAddress fqAddress = address.get();
    if (fqAddress != null) {
        String id = Ids.build(baseId, credentialReferenceName, Ids.ADD);
        Form<ModelNode> form = new ModelNodeForm.Builder<>(id, crMetadata).addOnly().include(STORE, ALIAS, CLEAR_TEXT, TYPE).unsorted().build();
        form.addFormValidation(new CrFormValuesValidation(resources));
        new AddResourceDialog(resources.messages().addResourceTitle(Names.CREDENTIAL_REFERENCE), form, (name, model) -> {
            if (alternativeName != null) {
                Operation undefine = new Operation.Builder(fqAddress, UNDEFINE_ATTRIBUTE_OPERATION).param(NAME, alternativeName).build();
                Operation write = new Operation.Builder(fqAddress, WRITE_ATTRIBUTE_OPERATION).param(NAME, credentialReferenceName).param(VALUE, model).build();
                dispatcher.execute(new Composite(undefine, write), (CompositeResult result) -> {
                    MessageEvent.fire(eventBus, Message.success(resources.messages().addSingleResourceSuccess(Names.CREDENTIAL_REFERENCE)));
                    callback.execute();
                });
            } else {
                ca.add(credentialReferenceName, Names.CREDENTIAL_REFERENCE, fqAddress, model, callback);
            }
        }).show();
    } else {
        MessageEvent.fire(eventBus, Message.error(resources.messages().credentialReferenceAddressError()));
    }
}
Also used : AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) ModelNode(org.jboss.hal.dmr.ModelNode) Constraint(org.jboss.hal.meta.security.Constraint) MessageEvent(org.jboss.hal.spi.MessageEvent) SHORT_TIMEOUT(org.jboss.hal.resources.UIConstants.SHORT_TIMEOUT) AddResourceDialog(org.jboss.hal.core.mbui.dialog.AddResourceDialog) Supplier(java.util.function.Supplier) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) Inject(javax.inject.Inject) ModelNodeForm(org.jboss.hal.core.mbui.form.ModelNodeForm) FormValidation(org.jboss.hal.ballroom.form.FormValidation) Strings(com.google.common.base.Strings) Message(org.jboss.hal.spi.Message) EmptyState(org.jboss.hal.ballroom.EmptyState) Metadata(org.jboss.hal.meta.Metadata) Names(org.jboss.hal.resources.Names) CompositeResult(org.jboss.hal.dmr.CompositeResult) Operation(org.jboss.hal.dmr.Operation) Ids(org.jboss.hal.resources.Ids) ComplexAttributeOperations(org.jboss.hal.core.ComplexAttributeOperations) EventBus(com.google.web.bindery.event.shared.EventBus) DialogFactory(org.jboss.hal.ballroom.dialog.DialogFactory) Composite(org.jboss.hal.dmr.Composite) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Dispatcher(org.jboss.hal.dmr.dispatch.Dispatcher) FormItem(org.jboss.hal.ballroom.form.FormItem) Callback(org.jboss.hal.spi.Callback) Resources(org.jboss.hal.resources.Resources) ModelDescriptionConstants(org.jboss.hal.dmr.ModelDescriptionConstants) ValidationResult(org.jboss.hal.ballroom.form.ValidationResult) Form(org.jboss.hal.ballroom.form.Form) DomGlobal.setTimeout(elemental2.dom.DomGlobal.setTimeout) Composite(org.jboss.hal.dmr.Composite) ResourceAddress(org.jboss.hal.dmr.ResourceAddress) CompositeResult(org.jboss.hal.dmr.CompositeResult) LabelBuilder(org.jboss.hal.ballroom.LabelBuilder) Operation(org.jboss.hal.dmr.Operation) ModelNode(org.jboss.hal.dmr.ModelNode)

Aggregations

Form (org.jboss.hal.ballroom.form.Form)76 ModelNodeForm (org.jboss.hal.core.mbui.form.ModelNodeForm)69 ModelNode (org.jboss.hal.dmr.ModelNode)69 Metadata (org.jboss.hal.meta.Metadata)69 Ids (org.jboss.hal.resources.Ids)65 Names (org.jboss.hal.resources.Names)61 ModelDescriptionConstants (org.jboss.hal.dmr.ModelDescriptionConstants)55 List (java.util.List)54 NamedNode (org.jboss.hal.dmr.NamedNode)52 Resources (org.jboss.hal.resources.Resources)52 Inject (javax.inject.Inject)46 ResourceAddress (org.jboss.hal.dmr.ResourceAddress)44 EventBus (com.google.web.bindery.event.shared.EventBus)42 Map (java.util.Map)41 StatementContext (org.jboss.hal.meta.StatementContext)41 Dispatcher (org.jboss.hal.dmr.dispatch.Dispatcher)40 ModelNodeHelper.asNamedNodes (org.jboss.hal.dmr.ModelNodeHelper.asNamedNodes)39 AddressTemplate (org.jboss.hal.meta.AddressTemplate)39 MetadataRegistry (org.jboss.hal.meta.MetadataRegistry)39 AddResourceDialog (org.jboss.hal.core.mbui.dialog.AddResourceDialog)38