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

org.jboss.as.console.client.shared.runtime.jpa.PersistenceUnitList 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.shared.runtime.jpa;

import com.google.gwt.cell.client.ActionCell;
import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.ProvidesKey;
import com.google.gwt.view.client.SingleSelectionModel;
import com.gwtplatform.mvp.client.proxy.PlaceRequest;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.core.NameTokens;
import org.jboss.as.console.client.shared.help.StaticHelpPanel;
import org.jboss.as.console.client.shared.runtime.jpa.model.JPADeployment;
import org.jboss.as.console.client.shared.viewframework.builder.MultipleToOneLayout;
import org.jboss.as.console.client.widgets.forms.FormToolStrip;
import org.jboss.as.console.client.widgets.tables.TextLinkCell;
import org.jboss.ballroom.client.widgets.forms.CheckBoxItem;
import org.jboss.ballroom.client.widgets.forms.Form;
import org.jboss.ballroom.client.widgets.forms.TextItem;
import org.jboss.ballroom.client.widgets.icons.Icons;
import org.jboss.ballroom.client.widgets.tables.DefaultCellTable;

import java.util.List;
import java.util.Map;

/**
 * @author Heiko Braun
 * @date 1/19/12
 */
public class PersistenceUnitList {


    private DefaultCellTable table;
    private ListDataProvider dataProvider;

    private JPAMetricPresenter presenter;

    public PersistenceUnitList(JPAMetricPresenter presenter) {
        this.presenter = presenter;
    }

    Widget asWidget() {


        table = new DefaultCellTable(8, new ProvidesKey() {
            @Override
            public Object getKey(JPADeployment item) {
                return item.getDeploymentName()+"_"+item.getPersistenceUnit();
            }
        });

        TextColumn name = new TextColumn() {

            @Override
            public String getValue(JPADeployment record) {
                return record.getDeploymentName();
            }
        };

        TextColumn unit = new TextColumn() {

            @Override
            public String getValue(JPADeployment record) {
                return record.getPersistenceUnit();
            }
        };

        Column statusColumn =
                new Column(new ImageResourceCell()) {
                    @Override
                    public ImageResource getValue(JPADeployment jpa) {

                        ImageResource res = null;

                        if(jpa.isMetricEnabled())
                            res = Icons.INSTANCE.status_good();
                        else
                            res = Icons.INSTANCE.status_bad();

                        return res;
                    }
                };


        Column option = new Column(
                new TextLinkCell(Console.CONSTANTS.common_label_view(), new ActionCell.Delegate() {
                    @Override
                    public void execute(JPADeployment selection) {
                        presenter.getPlaceManager().revealPlace(
                                new PlaceRequest(NameTokens.JPAMetricPresenter)
                                        .with("dpl", selection.getDeploymentName())
                                        .with("unit", selection.getPersistenceUnit())
                        );
                    }
                })
        ) {
            @Override
            public JPADeployment getValue(JPADeployment manager) {
                return manager;
            }
        };


        table.addColumn(unit, "Persistence Unit");
        table.addColumn(name, "Deployment");
        table.addColumn(statusColumn, "Metrics Enabled?");
        table.addColumn(option, "Option");

        table.setSelectionModel(
                new SingleSelectionModel(

                        // TODO: https://issues.jboss.org/browse/AS7-3441
                        /*new ProvidesKey() {
                            @Override
                            public Object getKey(JPADeployment item) {
                                return item.getDeploymentName()+"#"+item.getPersistenceUnit();
                            }
                        } */
                )
        );

        dataProvider = new ListDataProvider();
        dataProvider.addDataDisplay(table);


        // ---


        final Form form = new Form(JPADeployment.class);
        form.setNumColumns(2);
        form.setEnabled(false);

        TextItem deployment = new TextItem("deploymentName", "Deployment");
        TextItem persistenceUnit = new TextItem("persistenceUnit", "Unit");
        CheckBoxItem enabledField = new CheckBoxItem("metricEnabled", "Metrics Enabled?");

        form.setFields(deployment, persistenceUnit, enabledField);


         final StaticHelpPanel helpPanel = new StaticHelpPanel(
                 Console.CONSTANTS.subsys_jpa_deployment_desc()
         );

        form.bind(table);



        FormToolStrip formTools = new FormToolStrip(
                form, new FormToolStrip.FormCallback() {
            @Override
            public void onSave(Map changeset) {
                presenter.onSaveJPADeployment(form.getEditedEntity(), changeset);
            }

            @Override
            public void onDelete(JPADeployment entity) {
                // not provided
            }
        }
        );
        formTools.providesDeleteOp(false);

        VerticalPanel formPanel = new VerticalPanel();
        formPanel.add(formTools.asWidget());
        formPanel.add(helpPanel.asWidget());
        formPanel.add(form.asWidget());

        // ---

        MultipleToOneLayout layout = new MultipleToOneLayout()
                .setPlain(true)
                .setTitle("JPA Metrics")
                .setHeadline("Persistence Units")
                .setDescription(Console.CONSTANTS.subsys_jpa_puList_desc())
                .setMaster(Console.MESSAGES.available("Persistence Units"), table)
                .addDetail("Persistence Unit", formPanel);


        return layout.build();

    }

    public void setUnits(List jpaUnits) {
        dataProvider.setList(jpaUnits);

        table.selectDefaultEntity();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy