Package org.jboss.as.console.client.domain.hosts

Source Code of org.jboss.as.console.client.domain.hosts.ServerPicker

package org.jboss.as.console.client.domain.hosts;

import com.google.gwt.core.client.Scheduler;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
import org.jboss.as.console.client.Console;
import org.jboss.as.console.client.domain.events.HostSelectionEvent;
import org.jboss.as.console.client.domain.model.Host;
import org.jboss.as.console.client.domain.model.ServerInstance;
import org.jboss.as.console.client.domain.model.SimpleCallback;
import org.jboss.as.console.client.shared.state.ServerSelectionEvent;

import java.util.Collections;
import java.util.List;

/**
* @author Heiko Braun
* @date 11/4/11
*/
public class ServerPicker implements HostServerManagement {

    private HostServerTable serverSelection;
    private LoadServerCmd loadServerCmd;

    public ServerPicker() {
        this.loadServerCmd = new LoadServerCmd(Console.MODULES.getHostInfoStore());
    }

    public Widget asWidget() {

        VerticalPanel layout = new VerticalPanel();
        layout.setStyleName("fill-layout-width");
        layout.addStyleName("lhs-selector");
        layout.getElement().setAttribute("style","padding:4px;");

        serverSelection = new HostServerTable(this);

        serverSelection.setPopupWidth(400);
        serverSelection.setDescription(Console.CONSTANTS.server_instance_pleaseSelect());

        Widget widget = serverSelection.asWidget();
        widget.getElement().setAttribute("style", "width:100%;");

        Label label = new Label(Console.CONSTANTS.common_label_server()+":");
        label.setStyleName("header-label");

        layout.add(label);

        ScrollPanel scroll = new ScrollPanel(widget);
        layout.add(scroll);

        return layout;
    }

    public void setServers(List<ServerInstance> servers) {

        //should be done upon request
        // @see loadServer(hostName)
        //serverSelection.setServer(servers);
    }

    public void setSelected(ServerInstance server, boolean isSelected)
    {
        if(null==server) return;

        if(!server.isRunning())
        {
            Console.warning("Selected in-active server instance:"+server.getName());
        }

        serverSelection.selectServer(server);

    }

    public void setHosts(List<Host> hosts) {


        Host previousHost = serverSelection.getSelectedHost();

        serverSelection.setHosts(hosts);

        if(null==previousHost)
        {
            serverSelection.defaultHostSelection();
        }
        else
        {
            // restore previous selection
            serverSelection.selectHost(previousHost);
        }


    }

    @Override
    public void loadServer(final Host selectedHost) {

        loadServerCmd.execute(selectedHost.getName(), new SimpleCallback<List<ServerInstance>>() {
            @Override
            public void onSuccess(List<ServerInstance> result) {

                serverSelection.setServer(selectedHost, result);

                if(result.isEmpty())
                {
                    // no server on host. some operation are not available
                    Console.getEventBus().fireEvent(
                            new HostSelectionEvent(selectedHost.getName())
                    );

                }
            }
        });
    }

    @Override
    public void onServerSelected(final Host host, final ServerInstance server) {

        String name = server!=null ? server.getName(): "";

        //System.out.println("** Fire " + host.getName()+"/"+ name);

        Scheduler.get().scheduleDeferred(new Scheduler.ScheduledCommand() {
            @Override
            public void execute() {
                Console.getEventBus().fireEvent(
                        new ServerSelectionEvent(host.getName(), server)
                );
            }
        });

    }
}
TOP

Related Classes of org.jboss.as.console.client.domain.hosts.ServerPicker

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.