com.tasktop.c2c.server.profile.web.ui.client.view.deployment.CreateServiceDialog.java Source code

Java tutorial

Introduction

Here is the source code for com.tasktop.c2c.server.profile.web.ui.client.view.deployment.CreateServiceDialog.java

Source

/*******************************************************************************
 * Copyright (c) 2010, 2012 Tasktop Technologies
 * Copyright (c) 2010, 2011 SpringSource, a division of VMware
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     Tasktop Technologies - initial API and implementation
 ******************************************************************************/
package com.tasktop.c2c.server.profile.web.ui.client.view.deployment;

import java.util.List;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.logical.shared.ResizeEvent;
import com.google.gwt.event.logical.shared.ResizeHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;
import com.tasktop.c2c.server.common.profile.web.client.CommonProfileMessages;
import com.tasktop.c2c.server.deployment.domain.CloudService;
import com.tasktop.c2c.server.deployment.domain.DeploymentServiceConfiguration;
import com.tasktop.c2c.server.profile.web.ui.client.gin.AppGinjector;
import com.tasktop.c2c.server.profile.web.ui.client.resources.ProfileMessages;
import com.tasktop.c2c.server.profile.web.ui.client.view.deployment.ObjectListBox.Renderer;

/**
 * @author Clint Morgan <clint.morgan@tasktop.com> (Tasktop Technologies Inc.)
 * 
 */
public class CreateServiceDialog extends DialogBox {

    private static Binder uiBinder = GWT.create(Binder.class);

    interface Binder extends UiBinder<Widget, CreateServiceDialog> {
    }

    @UiField
    TextBox name;
    @UiField
    ObjectListBox<DeploymentServiceConfiguration> type;

    @UiField
    Button saveButton;
    @UiField
    Button cancelButton;
    private ServiceEditView viewForNewService;
    private CommonProfileMessages commonProfileMessages = AppGinjector.get.instance().getCommonProfileMessages();
    private ProfileMessages profileMessages = AppGinjector.get.instance().getProfileMessages();

    public CreateServiceDialog() {
        super(false, true);
        setText("Create new Service");
        setWidget(uiBinder.createAndBindUi(this));
        type.setRenderer(new Renderer<DeploymentServiceConfiguration>() {

            @Override
            public String renderToString(DeploymentServiceConfiguration object) {
                return object.getVendor() + " " + commonProfileMessages.parentheses(object.getType());
            }
        });

        cancelButton.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                viewForNewService.cancelCreateNewService();
                hide();
            }
        });

        saveButton.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                viewForNewService.addNewService(getValue());
                hide();
            }
        });
        Window.addResizeHandler(new ResizeHandler() {
            @Override
            public void onResize(ResizeEvent event) {
                if (isShowing()) {
                    center();
                }
            }
        });
    }

    public void clearValue() {
        name.setValue("");
        type.setValue(null);
    }

    public CloudService getValue() {
        CloudService result = new CloudService();
        result.setName(name.getValue());
        DeploymentServiceConfiguration selectedServiceConfig = type.getValue();
        result.setType(selectedServiceConfig.getType());
        result.setTierType(selectedServiceConfig.getTiers().get(0).getType());
        result.setVendor(selectedServiceConfig.getVendor());
        result.setVersion(selectedServiceConfig.getVersion());

        return result;
    }

    /**
     * @param availableServiceConfigurations
     */
    public void setServiceConfigurations(List<DeploymentServiceConfiguration> availableServiceConfigurations) {
        type.setValues(availableServiceConfigurations);
    }

    /**
     * @param changeHandler
     */
    public void setResultView(ServiceEditView view) {
        this.viewForNewService = view;
    }

}