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

Source Code of com.taobao.zeus.web.platform.client.module.jobdisplay.job.FileUploadWidget$UploadCallback

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

import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.box.AlertMessageBox;
import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SubmitCompleteEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
import com.sencha.gxt.widget.core.client.event.SubmitCompleteEvent.SubmitCompleteHandler;
import com.sencha.gxt.widget.core.client.form.FieldLabel;
import com.sencha.gxt.widget.core.client.form.FileUploadField;
import com.sencha.gxt.widget.core.client.form.FormPanel;
import com.sencha.gxt.widget.core.client.form.FormPanel.Encoding;
import com.sencha.gxt.widget.core.client.form.FormPanel.Method;

public class FileUploadWidget extends Window {
  public FileUploadWidget(final String type,final String id,final UploadCallback callback){
    this.callback=callback;
    setModal(true);
    setSize("400", "150");
    setHeadingText("上传资源文件");
   
    FramedPanel fp=new FramedPanel();
    fp.setHeaderVisible(false);
    fp.setButtonAlign(BoxLayoutPack.CENTER);
   
    final FormPanel panel = new FormPanel();
    panel.setAction("upload.do?type="+type+"&id="+id);
    panel.setEncoding(Encoding.MULTIPART);
    panel.setMethod(Method.POST);

    fp.add(panel);

   
   
    file = new FileUploadField();
    file.setAllowBlank(false);
    file.setName("uploadedfile");
    panel.add(new FieldLabel(file,"选择文件"));

    TextButton btn = new TextButton("重置",new SelectHandler() {
      public void onSelect(SelectEvent event) {
        panel.reset();
      }
    });
    fp.addButton(btn);

    btn = new TextButton("上传",new SelectHandler() {
      public void onSelect(SelectEvent event) {
        if (panel.isValid()) {
          panel.submit();
          return;
        }
      }
    });
    fp.addButton(btn);

    panel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
      public void onSubmitComplete(SubmitCompleteEvent event) {
        String html=event.getResults().trim();
        if(html.contains("[[uri=")){
          if(callback!=null){
            String value=html.substring(html.indexOf("[[")+6, html.indexOf("]]"));
            String name=file.getValue();
            if(file.getValue().lastIndexOf("\\")!=-1){
              name=name.substring(name.lastIndexOf("\\")+1);
              /** @see com.taobao.zeus.web.FileUploadServlet.doPost(HttpServletRequest, HttpServletResponse)*/
              name=name.replace(' ', '_');
            }
            callback.call(name,value);
          }
          FileUploadWidget.this.hide();
        }else{
          AlertMessageBox alert=new AlertMessageBox("上传失败", html);
          alert.show();
        }
      }
    });
   
    add(fp,new MarginData(5));
  }
  private FileUploadField file;
  private UploadCallback callback;
 
  public interface UploadCallback{
    public void call(String name,String uri);
  }
}
TOP

Related Classes of com.taobao.zeus.web.platform.client.module.jobdisplay.job.FileUploadWidget$UploadCallback

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.