Package org.jboss.as.console.client.domain.groups.deployment

Source Code of org.jboss.as.console.client.domain.groups.deployment.ServerGroupDeploymentView

package org.jboss.as.console.client.domain.groups.deployment;

import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
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.Widget;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.ProvidesKey;
import com.google.gwt.view.client.SingleSelectionModel;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.domain.model.ServerGroupRecord;
import org.jboss.as.console.client.shared.deployment.DeploymentFilter;
import org.jboss.as.console.client.shared.deployment.TitleColumn;
import org.jboss.as.console.client.shared.model.DeploymentRecord;
import org.jboss.as.console.client.shared.viewframework.builder.MultipleToOneLayout;
import org.jboss.ballroom.client.widgets.ContentHeaderLabel;
import org.jboss.ballroom.client.widgets.forms.Form;
import org.jboss.ballroom.client.widgets.forms.TextAreaItem;
import org.jboss.ballroom.client.widgets.icons.Icons;
import org.jboss.ballroom.client.widgets.tables.DefaultCellTable;
import org.jboss.ballroom.client.widgets.tools.ToolButton;
import org.jboss.ballroom.client.widgets.tools.ToolStrip;

import java.util.List;

/**
* @author Heiko Braun
* @date 7/30/12
*/
public class ServerGroupDeploymentView {

    private DefaultCellTable<DeploymentRecord> table;
    private ListDataProvider<DeploymentRecord> dataProvider;
    private DeploymentsPresenter presenter;
    private ContentHeaderLabel header;
    private ServerGroupRecord currentSelection;
    private DeploymentFilter filter;

    public ServerGroupDeploymentView(DeploymentsPresenter presenter) {
        this.presenter = presenter;
    }

    Widget asWidget() {

        final TitleColumn titleColumn = new TitleColumn();

        TextColumn<DeploymentRecord> dplRuntimeColumn = new TextColumn<DeploymentRecord>() {
            @Override
            public String getValue(DeploymentRecord record) {
                String title = null;
                if(record.getRuntimeName().length()>27)
                    title = record.getRuntimeName().substring(0,26)+"...";
                else
                    title = record.getRuntimeName();
                return title;
            }
        };


        final Column<DeploymentRecord, ImageResource> statusColumn = new Column<DeploymentRecord, ImageResource>(new ImageResourceCell()) {

            @Override
            public ImageResource getValue(DeploymentRecord deployment) {

                ImageResource res = null;

                if (deployment.isEnabled()) {
                    res = Icons.INSTANCE.status_good();
                } else {
                    res = Icons.INSTANCE.status_bad();
                }

                return res;
            }

        };

        this.table = new DefaultCellTable<DeploymentRecord>(8, new ProvidesKey<DeploymentRecord>() {
            @Override
            public Object getKey(DeploymentRecord deploymentRecord) {
                return deploymentRecord.getName();
            }

        });
        dataProvider = new ListDataProvider<DeploymentRecord>();
        dataProvider.addDataDisplay(table);

        final SingleSelectionModel<DeploymentRecord> selectionModel = new SingleSelectionModel<DeploymentRecord>();
        table.setSelectionModel(selectionModel);

        table.addColumn(titleColumn, Console.CONSTANTS.common_label_name());
        table.addColumn(dplRuntimeColumn, Console.CONSTANTS.common_label_runtimeName());
        table.addColumn(statusColumn, Console.CONSTANTS.common_label_enabled());


        Form<DeploymentRecord> form = new Form<DeploymentRecord>(DeploymentRecord.class);
        form.setNumColumns(2);
        form.setEnabled(true);
        TextAreaItem name = new TextAreaItem("name", "Name");
        //TextAreaItem runtimeName = new TextAreaItem("runtimeName", "Runtime Name");
        form.setFields(name);

        form.bind(table);

        ToolStrip tools = new ToolStrip();

        filter = new DeploymentFilter(dataProvider);
        tools.addToolWidget(filter.asWidget());

        tools.addToolButtonRight(new ToolButton("Assign", new ClickHandler() {
            @Override
            public void onClick(ClickEvent clickEvent) {

                presenter.onAssignDeploymentToGroup(currentSelection);
            }
        }));

        tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_remove(), new ClickHandler() {
            @Override
            public void onClick(ClickEvent clickEvent) {

                DeploymentRecord selection = selectionModel.getSelectedObject();
                if(selection!=null)
                {
                    presenter.onRemoveDeploymentInGroup(selection);
                }
            }
        }));

        tools.addToolButtonRight(new ToolButton(Console.CONSTANTS.common_label_enOrDisable(), new ClickHandler() {
            @Override
            public void onClick(ClickEvent clickEvent) {
                DeploymentRecord selection = selectionModel.getSelectedObject();
                if(selection!=null)
                {

                    presenter.onDisableDeploymentInGroup(selection);

                }
            }
        }));

        header = new ContentHeaderLabel();

        MultipleToOneLayout layout = new MultipleToOneLayout()
                .setPlain(true)
                .setHeadlineWidget(header)
                .setMaster(Console.MESSAGES.available("Deployments"), table)
                .setMasterTools(tools)
                .setDescription("Deployments assigned to this server group.")
                .setDetail(Console.CONSTANTS.common_label_selection(), form.asWidget());

        return layout.build();
    }

    public void setGroup(ServerGroupRecord selection) {
        this.currentSelection = selection;

        header.setText("Deployments in group: "+ selection.getGroupName());
    }

    public void setDeploymentInfo(List<DeploymentRecord> deploymentRecords) {
        dataProvider.setList(deploymentRecords);
        dataProvider.flush();
        table.selectDefaultEntity();
        filter.reset(true);

    }

    public ServerGroupRecord getCurrentSelection() {
        return currentSelection;
    }
}
TOP

Related Classes of org.jboss.as.console.client.domain.groups.deployment.ServerGroupDeploymentView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.