Home | History | Annotate | Download | only in moblab
      1 package autotest.moblab;
      2 
      3 import autotest.common.JsonRpcCallback;
      4 import autotest.common.JsonRpcProxy;
      5 import autotest.common.SimpleCallback;
      6 import autotest.common.ui.TabView;
      7 import autotest.common.ui.NotifyManager;
      8 
      9 import com.google.gwt.event.dom.client.ClickHandler;
     10 import com.google.gwt.event.dom.client.ClickEvent;
     11 import com.google.gwt.json.client.JSONObject;
     12 import com.google.gwt.json.client.JSONString;
     13 import com.google.gwt.json.client.JSONValue;
     14 import com.google.gwt.user.client.ui.Button;
     15 import com.google.gwt.user.client.ui.FileUpload;
     16 import com.google.gwt.user.client.ui.FormPanel;
     17 import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent;
     18 import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler;
     19 import com.google.gwt.user.client.ui.FormPanel.SubmitEvent;
     20 import com.google.gwt.user.client.ui.FormPanel.SubmitHandler;
     21 
     22 
     23 public class KeyUploadView extends TabView {
     24     private FileUpload keyUpload;
     25     private Button submitButton;
     26     private FormPanel keyUploadForm;
     27 
     28     protected String fileUploadName = "key";
     29     protected String uploadViewName = "view_key";
     30     protected String submitButtonName = "view_submit_key";
     31     protected String rpcName = "";
     32     protected String rpcArgName = "key";
     33     protected String successMessage = "Key uploaded.";
     34 
     35     @Override
     36     public String getElementId() {
     37         return "key";
     38     }
     39 
     40     @Override
     41     public void initialize() {
     42         super.initialize();
     43 
     44         keyUpload = new FileUpload();
     45         keyUpload.setName(fileUploadName);
     46 
     47         keyUploadForm = new FormPanel();
     48         keyUploadForm.setAction(JsonRpcProxy.AFE_BASE_URL + "upload/");
     49         keyUploadForm.setEncoding(FormPanel.ENCODING_MULTIPART);
     50         keyUploadForm.setMethod(FormPanel.METHOD_POST);
     51         keyUploadForm.setWidget(keyUpload);
     52 
     53         submitButton = new Button("Submit", new ClickHandler() {
     54             public void onClick(ClickEvent event) {
     55                 keyUploadForm.submit();
     56             }
     57         });
     58 
     59         keyUploadForm.addSubmitCompleteHandler(new SubmitCompleteHandler() {
     60             public void onSubmitComplete(SubmitCompleteEvent event) {
     61                 String fileName = event.getResults();
     62                 JSONObject params = new JSONObject();
     63                 params.put(rpcArgName, new JSONString(fileName));
     64                 rpcCall(params);
     65             }
     66         });
     67 
     68         addWidget(keyUploadForm, uploadViewName);
     69         addWidget(submitButton, submitButtonName);
     70     }
     71 
     72     public void rpcCall(JSONObject params) {
     73         JsonRpcProxy rpcProxy = JsonRpcProxy.getProxy();
     74         rpcProxy.rpcCall(rpcName, params, new JsonRpcCallback() {
     75             @Override
     76             public void onSuccess(JSONValue result) {
     77                 NotifyManager.getInstance().showMessage(successMessage);
     78             }
     79         });
     80     }
     81 }
     82