Package com.taobao.zeus.web.platform.client.module.profile

Source Code of com.taobao.zeus.web.platform.client.module.profile.QuickHadoopConfig

package com.taobao.zeus.web.platform.client.module.profile;

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

import com.google.gwt.editor.client.Editor;
import com.google.gwt.editor.client.EditorError;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
import com.sencha.gxt.widget.core.client.form.TextArea;
import com.sencha.gxt.widget.core.client.form.Validator;
import com.sencha.gxt.widget.core.client.form.error.DefaultEditorError;
import com.taobao.zeus.web.platform.client.module.jobdisplay.FormatUtil;
import com.taobao.zeus.web.platform.client.util.RPCS;
import com.taobao.zeus.web.platform.client.util.async.AbstractAsyncCallback;

/**
* 快速配置Hadoop的配置
* @author zhoufang
*
*/
public class QuickHadoopConfig extends Window{

  private TextArea area=new TextArea();
  public QuickHadoopConfig(){
    setHeadingText("定制hadoop配置项");
    setModal(true);
    setHeight(500);
    setWidth(800);
    add(area);
    area.setEmptyText("使用key=value 的格式,所有的配置项都需要加前缀 hadoop.");
    area.addValidator(new Validator<String>() {
      public List<EditorError> validate(Editor<String> editor, String value) {
        List<EditorError> result=new ArrayList<EditorError>();
        String[] lines=value.split("\n");
        for(String line:lines){
          line=line.trim();
          if(line.equals("")){
            break;
          }
          if(!line.contains("=")){
            EditorError ee=new DefaultEditorError(editor, "格式不正确", value);
            result.add(ee);
          }
        }
        return result;
      }
    });
    addButton(new TextButton("保存", new SelectHandler() {
      public void onSelect(SelectEvent event) {
        if(area.validate()){
          Map<String, String> conf=FormatUtil.parseProperties(area.getValue());
          RPCS.getProfileService().updateHadoopConf(conf, new AbstractAsyncCallback<Void>() {
            public void onSuccess(Void result) {
              QuickHadoopConfig.this.hide();
            }
          });
        }
      }
    }));
    RPCS.getProfileService().getProfile(new AbstractAsyncCallback<ProfileModel>() {
      public void onSuccess(ProfileModel result) {
        String value="";
        if(result.getHadoopConf()!=null){
          for(String key:result.getHadoopConf().keySet()){
            value+=key+"="+result.getHadoopConf().get(key)+"\n";
          }
        }
        area.setValue(value);
      }
    });
  }
}
TOP

Related Classes of com.taobao.zeus.web.platform.client.module.profile.QuickHadoopConfig

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.