Package autotest.tko

Source Code of autotest.tko.PreconfigSelector$PreconfigHandler

package autotest.tko;

import autotest.common.JsonRpcCallback;
import autotest.common.JsonRpcProxy;
import autotest.common.StaticDataRepository;
import autotest.common.Utils;
import autotest.common.ui.ExtendedListBox;

import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.json.client.JSONObject;
import com.google.gwt.json.client.JSONString;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.user.client.ui.Composite;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class PreconfigSelector extends Composite {
    public static final String NO_PRECONFIG = "----------";
   
    public static interface PreconfigHandler {
        public void handlePreconfig(Map<String, String> preconfigParameters);
    }

    private ExtendedListBox selector = new ExtendedListBox();
    private JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
    private String preconfigType;
    private PreconfigHandler listener;

    public PreconfigSelector(final String preconfigType, final PreconfigHandler listener) {
        this.preconfigType = preconfigType;
        this.listener = listener;
       
        initializePreconfigList(preconfigType);
       
        selector.addChangeHandler(new ChangeHandler() {
            public void onChange(ChangeEvent event) {
                loadSelectedPreconfig();
            }
        });
       
        initWidget(selector);
    }

    private void initializePreconfigList(final String preconfigType) {
        selector.addItem(NO_PRECONFIG);
        StaticDataRepository staticData = StaticDataRepository.getRepository();
        JSONObject preconfigs = staticData.getData("preconfigs").isObject();
        Set<String> keys = preconfigs.get(preconfigType).isObject().keySet();
        for (String key : keys) {
            selector.addItem(key);
        }
    }

    private void loadSelectedPreconfig() {
        String name = selector.getSelectedValue();
        if (name.equals(NO_PRECONFIG)) {
            return;
        }
        selector.setSelectedIndex(0);
       
        JSONObject params = new JSONObject();
        params.put("name", new JSONString(name));
        params.put("type", new JSONString(preconfigType));
        rpcProxy.rpcCall("get_preconfig", params, new JsonRpcCallback() {
            @Override
            public void onSuccess(JSONValue result) {
                JSONObject config = result.isObject();
                Map<String, String> map = new HashMap<String, String>();
                for (String key : config.keySet()) {
                    map.put(key, Utils.jsonToString(config.get(key)));
                }
                listener.handlePreconfig(map);
            }
        });
    }
}
TOP

Related Classes of autotest.tko.PreconfigSelector$PreconfigHandler

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.