Package com.taobao.zeus.web.platform.client.module.jobdisplay.group

Source Code of com.taobao.zeus.web.platform.client.module.jobdisplay.group.CardEditGroup

package com.taobao.zeus.web.platform.client.module.jobdisplay.group;

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

import com.sencha.gxt.cell.core.client.form.TextAreaInputCell;
import com.sencha.gxt.cell.core.client.form.TextAreaInputCell.Resizable;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.FlowLayoutContainer;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
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.FieldLabel;
import com.sencha.gxt.widget.core.client.form.FieldSet;
import com.sencha.gxt.widget.core.client.form.TextArea;
import com.sencha.gxt.widget.core.client.form.TextField;
import com.taobao.zeus.web.platform.client.module.jobdisplay.CenterTemplate;
import com.taobao.zeus.web.platform.client.module.jobdisplay.FormatUtil;
import com.taobao.zeus.web.platform.client.module.jobdisplay.job.FileUploadWidget;
import com.taobao.zeus.web.platform.client.module.jobdisplay.job.FileUploadWidget.UploadCallback;
import com.taobao.zeus.web.platform.client.module.jobmanager.GroupModel;
import com.taobao.zeus.web.platform.client.module.jobmanager.event.TreeNodeChangeEvent;
import com.taobao.zeus.web.platform.client.util.RPCS;
import com.taobao.zeus.web.platform.client.util.Refreshable;
import com.taobao.zeus.web.platform.client.util.async.AbstractAsyncCallback;


/**
* group编辑功能
* @author zhoufang
*
*/
public class CardEditGroup extends CenterTemplate implements Refreshable<GroupModel>{
  private GroupModel model;
  private TextField name;
  private TextArea desc;
  private TextArea configs;
  private TextArea resources;
 
  private TextButton upload=new TextButton("上传资源文件", new SelectHandler() {
    @Override
    public void onSelect(SelectEvent event) {
      new FileUploadWidget("group", model.getId(),new UploadCallback() {
        @Override
        public void call(String name, String uri) {
          Map<String, String> map=new HashMap<String, String>();
          map.put("name", name);
          map.put("uri", uri);
          List<Map<String, String>> temp=new ArrayList<Map<String,String>>();
          temp.add(map);
          resources.setValue(resources.getValue()+"\n"+FormatUtil.convertResourcesToEditString(temp));
         
        }
      }).show();
    }
  });
  private TextButton save=new TextButton("保存", new SelectHandler() {
    @Override
    public void onSelect(SelectEvent event) {
      if(!resources.validate() || !configs.validate()){
        return;
      }
      model.setName(name.getValue());
      model.setDesc(desc.getValue());
      model.setLocalProperties(FormatUtil.parseProperties(configs.getValue()));
      model.setLocalResources(FormatUtil.parseResources(resources.getValue()));
      RPCS.getGroupService().updateGroup(model, new AbstractAsyncCallback<Void>() {
        @Override
        public void onSuccess(Void result) {
          RPCS.getGroupService().getUpstreamGroup(model.getId(), new AbstractAsyncCallback<GroupModel>() {
            @Override
            public void onSuccess(GroupModel result) {
              presenter.getPlatformContext().getPlatformBus().fireEvent(new TreeNodeChangeEvent(result));
              presenter.display(result);
            }
          });
        }
      });
    }
  });
 
  private GroupPresenter presenter;
  public CardEditGroup(final GroupPresenter presenter){
    this.presenter=presenter;
    this.model=presenter.getGroupModel();
    name=new TextField();
    name.setAllowBlank(false);
    desc=new TextArea();
   
    FlowLayoutContainer centerContainer=new FlowLayoutContainer();
    centerContainer.setScrollMode(ScrollMode.AUTOY);
   
    FieldSet one=new FieldSet();
    one.setHeadingText("基本信息");
    VerticalLayoutContainer p1 = new VerticalLayoutContainer();
    p1.add(new FieldLabel(name, "名称"),new VerticalLayoutContainer.VerticalLayoutData(1, 1));
    p1.add(new FieldLabel(desc, "描述"),new VerticalLayoutContainer.VerticalLayoutData(1, 1));
    one.add(p1);
   
    centerContainer.add(one,new MarginData(5));
   
    final FieldSet two=new FieldSet();
    two.setHeadingText("配置项信息");
    configs=new TextArea();
    configs.setResizable(TextAreaInputCell.Resizable.BOTH);
    configs.addValidator(FormatUtil.propValidator);
    configs.setWidth(800);
    configs.setHeight(150);
    two.add(configs);
   
    centerContainer.add(two,new MarginData(5));
   
    final FieldSet three=new FieldSet();
    three.setHeadingText("资源信息");
    resources=new TextArea();
    resources.setResizable(Resizable.BOTH);
    resources.setWidth(800);
    resources.setHeight(150);
    resources.addValidator(FormatUtil.resourceValidator);
    three.add(resources);
    centerContainer.add(three,new MarginData(5));
   
    setCenter(centerContainer);
   
    addButton(new TextButton("返回", new SelectHandler() {
      public void onSelect(SelectEvent event) {
        presenter.display(presenter.getGroupModel());
      }
    }));
    addButton(upload);
    addButton(save);
   
  }
  @Override
  public void refresh(GroupModel t) {
    this.model=t;
    name.setValue(t.getName());
    desc.setValue(t.getDesc());
    configs.setValue(FormatUtil.convertPropertiesToEditString(t.getLocalProperties()));
    resources.setValue(FormatUtil.convertResourcesToEditString(t.getLocalResources()));
 
  }
}
TOP

Related Classes of com.taobao.zeus.web.platform.client.module.jobdisplay.group.CardEditGroup

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.