All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jboss.as.console.client.widgets.forms.FormEditor Maven / Gradle / Ivy

Go to download

Bundles the core AS7 console as a GWT module. Includes minor customizations to support extensions.

There is a newer version: 0.7.0.Final
Show newest version
package org.jboss.as.console.client.widgets.forms;

import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import org.jboss.as.console.client.shared.help.FormHelpPanel;
import org.jboss.ballroom.client.widgets.forms.Form;
import org.jboss.dmr.client.ModelNode;


/**
 * @author Heiko Braun
 * @date 12/13/11
 */
public class FormEditor {

    protected Form form;
    protected FormToolStrip.FormCallback callback;
    protected ModelNode helpAddress;
    private FormToolStrip tools;

    public FormEditor(Class baseType) {
        form = new Form(baseType);
    }

    public void setHelpAddress(ModelNode helpAddress) {
        this.helpAddress = helpAddress;
    }

    public void setCallback(FormToolStrip.FormCallback callback) {
        this.callback = callback;
    }

    public Widget asWidget() {
        VerticalPanel panel = new VerticalPanel();
        panel.setStyleName("fill-layout-width");

        form.setNumColumns(2);
        form.setEnabled(false);

        tools = new FormToolStrip(form, callback);

        tools.providesDeleteOp(false);

        final FormHelpPanel helpPanel = new FormHelpPanel(
                new FormHelpPanel.AddressCallback() {
                    @Override
                    public ModelNode getAddress() {
                        return helpAddress;
                    }
                }, form
        );

        panel.add(tools.asWidget());
        panel.add(helpPanel.asWidget());
        panel.add(form.asWidget());

        return panel;
    }

    public FormToolStrip getTools() {
        return tools;
    }

    public Form getForm() {
        return form;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy