Example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

List of usage examples for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel

Introduction

In this page you can find the example usage for com.google.gwt.view.client SingleSelectionModel SingleSelectionModel.

Prototype

public SingleSelectionModel(ProvidesKey<T> keyProvider) 

Source Link

Document

Constructs a SingleSelectionModel with the given key provider.

Usage

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.IdentityAttributeMappingView.java

License:Open Source License

IdentityAttributeMappingView() {
    this.nameProvider = modelNode -> modelNode.get("from");
    selectionModel = new SingleSelectionModel<>(nameProvider);
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.JdbcRealmPrincipalsQueryView.java

License:Open Source License

JdbcRealmPrincipalsQueryView(final Dispatcher circuit, ResourceDescription resourceDescription,
        SecurityContext securityContext) {
    this.circuit = circuit;
    this.securityContext = securityContext;
    this.nameProvider = modelNode -> modelNode.get("sql");
    selectionModel = new SingleSelectionModel<>(nameProvider);

    this.resourceDescription = new ResourceDescription(resourceDescription.clone());
    ModelNode reqPropsDescription = this.resourceDescription.get("operations").get("add")
            .get("request-properties");
    ModelNode filtersDescription = reqPropsDescription.get("principal-query").get("value-type");
    reqPropsDescription.set(filtersDescription);
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.JdbcRealmView.java

License:Apache License

public Widget asWidget() {

    ToolStrip tools = new ToolStrip();
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd()));
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
        if (selectionModel.getSelectedObject() != null) {
            String name = selectionModel.getSelectedObject().getName();
            Feedback.confirm(Console.MESSAGES.deleteTitle("JDBC Realm"),
                    Console.MESSAGES.deleteConfirm("JDBC Realm" + " '" + name + "'"), isConfirmed -> {
                        if (isConfirmed) {
                            circuit.dispatch(new RemoveResourceGeneric(ElytronStore.JDBC_REALM_ADDRESS, name));
                        }//w  ww .j  a  v a 2s  . com
                    });
        }
    }));

    ProvidesKey<Property> providesKey = Property::getName;
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    selectionModel = new SingleSelectionModel<>(providesKey);
    table.setSelectionModel(selectionModel);
    TextColumn<Property> nameColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            return node.getName();
        }
    };
    table.addColumn(nameColumn, "Name");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    principalsQueryViewView = new JdbcRealmPrincipalsQueryView(circuit, resourceDescription, securityContext);

    MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("JDBC Realm")
            .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString()))
            .setMasterTools(tools).setMaster(Console.MESSAGES.available("JDBC Realm"), table)
            .addDetail("Principals Query", principalsQueryViewView.asWidget());

    selectionModel.addSelectionChangeHandler(event -> {
        Property selected = selectionModel.getSelectedObject();
        if (selected != null) {
            principalsQueryViewView.update(selected);
        } else {
            principalsQueryViewView.clearValues();
        }
    });
    table.setSelectionModel(selectionModel);

    return layoutBuilder.build();
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.LdapRealmView.java

License:Apache License

public Widget asWidget() {

    ToolStrip tools = new ToolStrip();
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd()));
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
        if (selectionModel.getSelectedObject() != null) {
            String name = selectionModel.getSelectedObject().getName();
            Feedback.confirm(Console.MESSAGES.deleteTitle("LDAP Realm"),
                    Console.MESSAGES.deleteConfirm("LDAP Realm" + " '" + name + "'"), isConfirmed -> {
                        if (isConfirmed) {
                            circuit.dispatch(new RemoveResourceGeneric(ElytronStore.LDAP_REALM_ADDRESS, name));
                        }//from ww w  .  j  ava 2  s  . c o m
                    });
        }
    }));

    ProvidesKey<Property> providesKey = Property::getName;
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    selectionModel = new SingleSelectionModel<>(providesKey);
    table.setSelectionModel(selectionModel);
    TextColumn<Property> nameColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            return node.getName();
        }
    };
    table.addColumn(nameColumn, "Name");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    identityMappingFormAsset = new ComplexAttributeForm("identity-mapping", securityContext,
            resourceDescription)
                    .exclude("attribute-mapping", "new-identity-attributes", "otp-credential-mapper",
                            "user-password-mapper", "x509-credential-mapper")
                    .build();
    ModelNode nodeIdenMapping = resourceDescription.get("attributes").get("identity-mapping").get("value-type");

    ResourceDescription userPasswordMapperResource = new ResourceDescription(new ModelNode());
    userPasswordMapperResource.get(ATTRIBUTES).set(nodeIdenMapping);

    userPasswordMapperFormAsset = new ComplexAttributeForm("user-password-mapper", securityContext,
            userPasswordMapperResource).build();

    ResourceDescription otpCredentialMapperResource = new ResourceDescription(new ModelNode());
    otpCredentialMapperResource.get(ATTRIBUTES).set(nodeIdenMapping);

    otpCredentialMapperFormAsset = new ComplexAttributeForm("otp-credential-mapper", securityContext,
            otpCredentialMapperResource).build();

    ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder().setConfigOnly().exclude("identity-mapping")
            .setResourceDescription(resourceDescription).setSecurityContext(securityContext);
    modelForm = formBuilder.build();

    modelForm.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(final Map changeset) {
            circuit.dispatch(new ModifyResourceGeneric(ElytronStore.LDAP_REALM_ADDRESS,
                    selectionModel.getSelectedObject().getName(), changeset));
        }

        @Override
        public void onCancel(final Object entity) {
            modelForm.getForm().cancel();
        }
    });

    identityAttributeMappingView = new IdentityAttributeMappingView();
    newIdentityAttributesView = new NewIdentityAttributesView();

    MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("LDAP Realm")
            .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString()))
            .setMasterTools(tools).setMaster(Console.MESSAGES.available("LDAP Realm"), table)
            .addDetail(Console.CONSTANTS.common_label_attributes(), modelForm.asWidget())
            .addDetail("Identity Mapping", identityMappingFormAsset.asWidget())
            .addDetail("Identity Attribute Mapping", identityAttributeMappingView.asWidget())
            .addDetail("New Identity Attributes", newIdentityAttributesView.asWidget())
            .addDetail("User Password Mapper", userPasswordMapperFormAsset.asWidget())
            .addDetail("OTP Credential Mapper", otpCredentialMapperFormAsset.asWidget());

    selectionModel.addSelectionChangeHandler(event -> {
        Property node = selectionModel.getSelectedObject();
        if (node != null) {
            modelForm.getForm().edit(node.getValue());
            if (node.getValue().hasDefined("identity-mapping"))
                identityMappingFormAsset.getForm().edit(node.getValue().get("identity-mapping"));

            if (node.getValue().get("identity-mapping").hasDefined("attribute-mapping"))
                identityAttributeMappingView
                        .update(node.getValue().get("identity-mapping").get("attribute-mapping").asList());
            else
                identityAttributeMappingView.clearValues();

            if (node.getValue().get("identity-mapping").hasDefined("new-identity-attributes"))
                identityAttributeMappingView.update(
                        node.getValue().get("identity-mapping").get("new-identity-attributes").asList());
            else
                identityAttributeMappingView.clearValues();

            if (node.getValue().get("identity-mapping").hasDefined("user-password-mapper"))
                userPasswordMapperFormAsset.getForm()
                        .edit(node.getValue().get("identity-mapping").get("user-password-mapper"));
            else
                userPasswordMapperFormAsset.getForm().clearValues();

            if (node.getValue().get("identity-mapping").hasDefined("otp-credential-mapper"))
                otpCredentialMapperFormAsset.getForm()
                        .edit(node.getValue().get("identity-mapping").get("otp-credential-mapper"));
            else
                otpCredentialMapperFormAsset.getForm().clearValues();
        } else {
            modelForm.getForm().clearValues();
            identityMappingFormAsset.getForm().clearValues();
            identityAttributeMappingView.clearValues();
            newIdentityAttributesView.clearValues();
            userPasswordMapperFormAsset.getForm().clearValues();
            otpCredentialMapperFormAsset.getForm().clearValues();
        }
    });
    table.setSelectionModel(selectionModel);

    return layoutBuilder.build();
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.NewIdentityAttributesView.java

License:Open Source License

NewIdentityAttributesView() {
    this.nameProvider = modelNode -> modelNode.get("name");
    selectionModel = new SingleSelectionModel<>(nameProvider);
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.PolicyView.java

License:Apache License

@SuppressWarnings("unchecked")
public Widget asWidget() {
    ToolStrip tools = new ToolStrip();
    addButton = new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd());
    tools.addToolButtonRight(addButton);
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
        if (selectionModel.getSelectedObject() != null) {
            String name = selectionModel.getSelectedObject().getName();
            Feedback.confirm(Console.MESSAGES.deleteTitle(title),
                    Console.MESSAGES.deleteConfirm(title + " '" + name + "'"), isConfirmed -> {
                        if (isConfirmed) {
                            circuit.dispatch(new RemoveResourceGeneric(addressTemplate, name));
                        }/*from  w w w  . j  a v  a  2  s. c o m*/
                    });
        }
    }));

    ProvidesKey<Property> providesKey = Property::getName;
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    TextColumn<Property> nameColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            return node.getName();
        }
    };
    TextColumn<Property> typeColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            if (node.getValue().hasDefined(CUSTOM_POLICY)) {
                return "Custom Policy";
            } else if (node.getValue().hasDefined(JACC_POLICY)) {
                return "JACC Policy";
            } else {
                return "n/a";
            }
        }
    };
    table.addColumn(nameColumn, "Name");
    table.addColumn(typeColumn, "Type");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    selectionModel = new SingleSelectionModel<>(providesKey);
    selectionModel.addSelectionChangeHandler(event -> {
        Property selectedProperty = selectionModel.getSelectedObject();
        if (selectedProperty != null) {
            if (selectedProperty.getValue().hasDefined(CUSTOM_POLICY)) {
                forms.showWidget(1);
            } else if (selectedProperty.getValue().hasDefined(JACC_POLICY)) {
                forms.showWidget(2);
            } else {
                forms.showWidget(0);
            }
        } else {
            forms.showWidget(0);
        }
        selectTableItem(selectedProperty);

    });
    table.setSelectionModel(selectionModel);

    ResourceDescription customPolicyDescription = complexAttributeDescription(resourceDescription,
            CUSTOM_POLICY);
    ModelNodeFormBuilder customPolicyFormBuilder = new ModelNodeFormBuilder().include("class-name", "module")
            .unsorted().setResourceDescription(customPolicyDescription).setSecurityContext(securityContext);
    customPolicyForm = customPolicyFormBuilder.build();
    customPolicyForm.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(Map changeset) {
            circuit.dispatch(new ModifyComplexAttribute(addressTemplate, CUSTOM_POLICY,
                    selectionModel.getSelectedObject().getName(), payload(changeset)));
        }

        @Override
        public void onCancel(final Object entity) {
            customPolicyForm.getForm().cancel();
        }
    });

    ResourceDescription jaccPolicyDescription = complexAttributeDescription(resourceDescription, JACC_POLICY);
    ModelNodeFormBuilder jaccPolicyFormBuilder = new ModelNodeFormBuilder()
            .include("policy", "configuration-factory", "module").unsorted()
            .setResourceDescription(jaccPolicyDescription).setSecurityContext(securityContext);
    jaccPolicyForm = jaccPolicyFormBuilder.build();
    jaccPolicyForm.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(Map changeset) {
            circuit.dispatch(new ModifyComplexAttribute(addressTemplate, JACC_POLICY,
                    selectionModel.getSelectedObject().getName(), payload(changeset)));
        }

        @Override
        public void onCancel(final Object entity) {
            jaccPolicyForm.getForm().cancel();
        }
    });

    forms = new DeckPanel();
    forms.add(new Label());
    forms.add(customPolicyForm.asWidget());
    forms.add(jaccPolicyForm.asWidget());
    forms.showWidget(0);

    MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline(title)
            .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString()))
            .setMasterTools(tools).setMaster(Console.MESSAGES.available(title), table)
            .addDetail(Console.CONSTANTS.common_label_attributes(), forms.asWidget());
    return layoutBuilder.build();
}

From source file:org.jboss.as.console.client.shared.subsys.elytron.ui.PropertiesRealmView.java

License:Apache License

public Widget asWidget() {

    ToolStrip tools = new ToolStrip();
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd()));
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
        if (selectionModel.getSelectedObject() != null) {
            String name = selectionModel.getSelectedObject().getName();
            Feedback.confirm(Console.MESSAGES.deleteTitle("Properties Realm"),
                    Console.MESSAGES.deleteConfirm("Properties Realm" + " '" + name + "'"), isConfirmed -> {
                        if (isConfirmed) {
                            circuit.dispatch(
                                    new RemoveResourceGeneric(ElytronStore.PROPERTIES_REALM_ADDRESS, name));
                        }/*from  w ww .ja v a 2  s. c o  m*/
                    });
        }
    }));

    ProvidesKey<Property> providesKey = Property::getName;
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    selectionModel = new SingleSelectionModel<>(providesKey);
    table.setSelectionModel(selectionModel);
    TextColumn<Property> nameColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            return node.getName();
        }
    };
    table.addColumn(nameColumn, "Name");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder().setResourceDescription(resourceDescription)
            .exclude("groups-properties", "users-properties").setConfigOnly()
            .setSecurityContext(securityContext);
    modelFormAsset = formBuilder.build();

    modelFormAsset.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(final Map changeset) {
            circuit.dispatch(new ModifyResourceGeneric(ElytronStore.PROPERTIES_REALM_ADDRESS,
                    selectionModel.getSelectedObject().getName(), changeset));
        }

        @Override
        public void onCancel(final Object entity) {
            modelFormAsset.getForm().cancel();
        }
    });

    groupsPropertiesFormAssets = new ComplexAttributeForm("groups-properties", securityContext,
            resourceDescription).build();
    usersPropertiesFormAssets = new ComplexAttributeForm("users-properties", securityContext,
            resourceDescription).build();

    groupsPropertiesFormAssets.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(final Map changeset) {
            circuit.dispatch(new ModifyComplexAttribute(ElytronStore.PROPERTIES_REALM_ADDRESS,
                    "groups-properties", selectionModel.getSelectedObject().getName(),
                    handleUndefinedProperties(groupsPropertiesFormAssets.getForm().getUpdatedEntity())));
        }

        @Override
        public void onCancel(final Object entity) {
            groupsPropertiesFormAssets.getForm().cancel();
        }
    });
    groupsPropertiesFormAssets.getForm().addFormValidator((items, outcome) -> {
        // "path" is a required attribute, if "relative-to" is set "path" must be set as well
        Collections.sort(items, (a, b) -> a.getName().compareTo(b.getName()));
        FormItem path = items.get(0);
        FormItem relativeTo = items.get(1);

        if (!relativeTo.isUndefined() && path.isUndefined()) {
            path.setErrMessage("Must be set if \"Relative to\" is set");
            path.setErroneous(true);
            outcome.addError("path");
        }
    });

    usersPropertiesFormAssets.getForm().setToolsCallback(new FormCallback() {
        @Override
        @SuppressWarnings("unchecked")
        public void onSave(final Map changeset) {
            circuit.dispatch(new ModifyComplexAttribute(ElytronStore.PROPERTIES_REALM_ADDRESS,
                    "users-properties", selectionModel.getSelectedObject().getName(),
                    usersPropertiesFormAssets.getForm().getUpdatedEntity()));
        }

        @Override
        public void onCancel(final Object entity) {
            usersPropertiesFormAssets.getForm().cancel();
        }
    });

    VerticalPanel formPanel = new VerticalPanel();
    formPanel.setStyleName("fill-layout-width");
    formPanel.add(modelFormAsset.getHelp().asWidget());
    formPanel.add(modelFormAsset.getForm().asWidget());

    MultipleToOneLayout layoutBuilder = new MultipleToOneLayout().setPlain(true).setHeadline("Properties Realm")
            .setDescription(SafeHtmlUtils.fromString(resourceDescription.get(DESCRIPTION).asString()))
            .setMasterTools(tools).setMaster(Console.MESSAGES.available("Properties Realm"), table)
            .addDetail(Console.CONSTANTS.common_label_attributes(), modelFormAsset.asWidget())
            .addDetail("Users Properties", usersPropertiesFormAssets.asWidget())
            .addDetail("Groups Properties", groupsPropertiesFormAssets.asWidget());

    selectionModel.addSelectionChangeHandler(event -> {
        Property currentProp = selectionModel.getSelectedObject();
        if (currentProp != null) {
            modelFormAsset.getForm().edit(currentProp.getValue());
            if (currentProp.getValue().hasDefined("groups-properties"))
                groupsPropertiesFormAssets.getForm().edit(currentProp.getValue().get("groups-properties"));
            else
                groupsPropertiesFormAssets.getForm().edit(getEmptyProperties());

            if (currentProp.getValue().hasDefined("users-properties"))
                usersPropertiesFormAssets.getForm().edit(currentProp.getValue().get("users-properties"));
        } else {
            modelFormAsset.getForm().clearValues();
            groupsPropertiesFormAssets.getForm().clearValues();
            usersPropertiesFormAssets.getForm().clearValues();
        }
    });
    table.setSelectionModel(selectionModel);

    return layoutBuilder.build();
}

From source file:org.jboss.as.console.client.shared.subsys.io.IOPanel.java

License:Open Source License

@SuppressWarnings("unchecked")
public IOPanel(AddressTemplate address, IOPresenter presenter) {
    this.address = address;
    this.presenter = presenter;
    this.providesKey = new ProvidesKey<Property>() {
        @Override//from   w  w w .ja  v  a 2 s .  c o  m
        public Object getKey(Property item) {
            return item.getName();
        }
    };
    this.table = new DefaultCellTable<>(5, providesKey);
    this.dataProvider = new ListDataProvider<Property>(providesKey);
    this.selectionModel = new SingleSelectionModel<Property>(providesKey);

    dataProvider.addDataDisplay(table);
    table.setSelectionModel(selectionModel);
}

From source file:org.jboss.as.console.client.shared.subsys.jberet.ui.JobsRuntimePanel.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*w w w.ja v  a 2s  . c om*/
public Widget asWidget() {
    ProvidesKey<Job> providesKey = job1 -> job1.getDeploymentName() + job1.getName() + job1.getExecutionId();
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    selectionModel = new SingleSelectionModel<>(providesKey);
    selectionModel.addSelectionChangeHandler(event -> {
        Job job = selectionModel.getSelectedObject();
        if (job != null) {
            refresh(job);
        }
    });
    table.setSelectionModel(selectionModel);

    TextColumn<Job> deploymentColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job job) {
            String deploymentName = job.getDeploymentName();
            if (job.getSubdeploymentName().length() > 0) {
                deploymentName = deploymentName + "/" + job.getSubdeploymentName();
            }
            return deploymentName;
        }
    };
    TextColumn<Job> jobColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job node) {
            return node.getJobXmlName();
        }
    };
    TextColumn<Job> idColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job node) {
            return node.getInstanceId();
        }
    };
    TextColumn<Job> executionIdColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job node) {
            return node.getExecutionId();
        }
    };
    TextColumn<Job> statusColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job node) {
            return node.getCurrentStatus();
        }
    };
    TextColumn<Job> startColumn = new TextColumn<Job>() {
        @Override
        public String getValue(Job node) {
            return node.getStartTime();
        }
    };
    executionIdColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    idColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    statusColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    table.addColumn(deploymentColumn, "Deployment");
    table.addColumn(jobColumn, "Job-Xml-Name");
    table.addColumn(executionIdColumn, "Execution Id");
    table.addColumn(idColumn, "Instance Id");
    table.addColumn(statusColumn, "Batch Status");
    table.addColumn(startColumn, "Start time");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    VerticalPanel tableAndPager = new VerticalPanel();
    tableAndPager.setStyleName("fill-layout-width");
    tableAndPager.add(table);
    tableAndPager.add(pager);

    SecurityContext securityContext = securityFramework.getSecurityContext(presenter.getProxy().getNameToken());
    ResourceDescription jobDescription = resourceDescriptionRegistry.lookup(JberetStore.JOB_DEPLOYMENT_ADDRESS);
    ModelNodeFormBuilder.FormAssets formAssets = new ModelNodeFormBuilder()
            .setResourceDescription(jobDescription).setSecurityContext(securityContext)
            .include(METRIC_ATTRIBUTES).build();
    Widget help = formAssets.getHelp().asWidget();
    help.getElement().getStyle().setMarginTop(40, Style.Unit.PX);

    HorizontalPanel header = new HorizontalPanel();
    header.addStyleName("fill-layout-width");
    header.add(new HTML("<h3 class='metric-label-embedded'>Job Status</h3>"));

    columns = new Column[] { new NumberColumn("instance-id", "Instance Id"),
            new NumberColumn("batch-status", "Batch Status"), new NumberColumn("exit-status", "Exit Status"),
            new NumberColumn("create-time", "Create Time"), new NumberColumn("start-time", "Start Time"),
            new NumberColumn("end-time", "End Time"),
            new NumberColumn("last-updated-time", "Last Updated Time") };
    grid = new Grid(columns.length, 2);
    grid.addStyleName("metric-grid");
    for (int row = 0; row < columns.length; ++row) {
        grid.getCellFormatter().addStyleName(row, 0, "nominal");
        grid.getCellFormatter().addStyleName(row, 1, "numerical");
    }

    VerticalPanel metricsPanel = new VerticalPanel();
    metricsPanel.addStyleName("metric-container");
    metricsPanel.add(header);
    metricsPanel.add(grid);

    SimpleLayout layout = new SimpleLayout().setPlain(true).setHeadline("Job Status")
            .setDescription(SafeHtmlUtils
                    .fromString(jobDescription.get(ModelDescriptionConstants.DESCRIPTION).asString()))
            .addContent("", buttonsTool()).addContent("", tableAndPager).addContent("", help)
            .addContent("", metricsPanel);

    return layout.build().asWidget();
}

From source file:org.jboss.as.console.client.shared.subsys.jberet.ui.MasterDetailPanel.java

License:Open Source License

@Override
@SuppressWarnings("unchecked")
public Widget asWidget() {
    ToolStrip tools = new ToolStrip();
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_add(), event -> onAdd()));
    tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_delete(), event -> {
        if (selectionModel.getSelectedObject() != null) {
            String name = selectionModel.getSelectedObject().getName();
            Feedback.confirm(Console.MESSAGES.deleteTitle(title),
                    Console.MESSAGES.deleteConfirm(title + " '" + name + "'"), isConfirmed -> {
                        if (isConfirmed) {
                            dispatchRemove(circuit, name);
                        }/*from w w w  . j  a  v a2 s  .c  om*/
                    });
        }
    }));

    ProvidesKey<Property> providesKey = Property::getName;
    table = new DefaultCellTable<>(5, providesKey);
    dataProvider = new ListDataProvider<>(providesKey);
    dataProvider.addDataDisplay(table);
    selectionModel = new SingleSelectionModel<>(providesKey);
    table.setSelectionModel(selectionModel);
    TextColumn<Property> nameColumn = new TextColumn<Property>() {
        @Override
        public String getValue(Property node) {
            return node.getName();
        }
    };
    table.addColumn(nameColumn, "Name");

    DefaultPager pager = new DefaultPager();
    pager.setDisplay(table);

    VerticalPanel tableAndPager = new VerticalPanel();
    tableAndPager.setStyleName("fill-layout-width");
    tableAndPager.add(table);
    tableAndPager.add(pager);

    if (hasAttributes()) {
        ModelNodeFormBuilder formBuilder = new ModelNodeFormBuilder()
                .setResourceDescription(resourceDescription).setSecurityContext(securityContext)
                .setConfigOnly();
        if (excludes != null && excludes.length != 0) {
            formBuilder.exclude(excludes);
        }
        formAssets = formBuilder.build();

        formAssets.getForm().setToolsCallback(new FormCallback() {
            @Override
            @SuppressWarnings("unchecked")
            public void onSave(final Map changeset) {
                dispatchModify(circuit, selectionModel.getSelectedObject().getName(), changeset);
            }

            @Override
            public void onCancel(final Object entity) {
                formAssets.getForm().cancel();
            }
        });

        selectionModel.addSelectionChangeHandler(event -> {
            Property property = selectionModel.getSelectedObject();
            if (property != null) {
                formAssets.getForm().edit(property.getValue());
                if (timeFormAssets != null)
                    timeFormAssets.getForm().edit(property.getValue().get("keepalive-time"));
            } else {
                formAssets.getForm().clearValues();
                if (timeFormAssets != null)
                    timeFormAssets.getForm().clearValues();
            }
        });
    }

    OneToOneLayout layoutBuilder = new OneToOneLayout().setPlain(true).setHeadline(title)
            .setDescription(resourceDescription.get("description").asString()).setMasterTools(tools)
            .setMaster(null, tableAndPager);

    if (hasAttributes()) {
        layoutBuilder.addDetail(Console.CONSTANTS.common_label_attributes(), formAssets.asWidget());
    }

    if (resourceDescription.get("attributes").hasDefined("keepalive-time")) {
        // complex attribute 'file'
        ComplexAttributeForm timeForm = new ComplexAttributeForm("keepalive-time", securityContext,
                resourceDescription);
        timeFormAssets = timeForm.build();

        // order matters
        timeFormAssets.getForm().setToolsCallback(new FormCallback() {
            @Override
            public void onSave(Map changeset) {

                // ignore the changeset: complex attributes are written atomically, including all attributes

                dispatchWriteAttribute(circuit, selectionModel.getSelectedObject().getName(), "keepalive-time",
                        timeFormAssets.getForm().getUpdatedEntity());

            }

            @Override
            public void onCancel(Object o) {
                timeFormAssets.getForm().cancel();
            }
        });

        layoutBuilder.addDetail("Keepalive", timeFormAssets.asWidget());
    }

    return layoutBuilder.build();
}