List of usage examples for com.google.gwt.gears.client.desktop OpenFilesHandler OpenFilesHandler
OpenFilesHandler
From source file:com.google.gwt.gears.sample.uploaddemo.client.UploadDemo.java
License:Apache License
/** * This is the entry point method./* w ww . j a v a 2 s .c o m*/ */ public void onModuleLoad() { root = RootPanel.get(); final Button browse = new Button("Browse"); final Button upload = new Button("Upload"); upload.setEnabled(false); final TextBox selected = new TextBox(); selected.setEnabled(false); final SimplePanel progressInner = new SimplePanel(); progressInner.addStyleName("progressInner"); final SimplePanel progressGauge = new SimplePanel(); progressGauge.addStyleName("progressGauge"); progressGauge.add(progressInner); final HTML result = new HTML(); browse.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { Desktop desktop = factory.createDesktop(); desktop.openFiles(new OpenFilesHandler() { public void onOpenFiles(OpenFilesEvent event) { File[] files = event.getFiles(); selected.setText(files[0].getName()); selectedFile = files[0].getBlob(); upload.setEnabled(true); } }, true); } }); upload.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { HttpRequest request = factory.createHttpRequest(); request.open("POST", GWT.getModuleBaseURL() + "upload"); request.setRequestHeader("X-Filename", selected.getText()); request.setCallback(new RequestCallback() { public void onResponseReceived(HttpRequest request) { String msg = request.getStatus() + " " + request.getResponseText(); if (request.getStatus() != 200) { result.setHTML("<p style=\"color:red\">" + msg + "</p>"); } else { result.setHTML("<p style=\"color:green\">" + msg + "</p>"); } } }); request.getUpload().setProgressHandler(new ProgressHandler() { public void onProgress(ProgressEvent event) { double pcnt = ((double) event.getLoaded() / event.getTotal()); progressInner.setWidth((int) Math.floor(pcnt * 100) + "%"); } }); request.send(selectedFile); } }); HorizontalPanel inputPanel = new HorizontalPanel(); inputPanel.add(selected); inputPanel.add(browse); inputPanel.add(upload); root.add(inputPanel); root.add(new HTML("Progress:")); root.add(progressGauge); root.add(result); }
From source file:org.gss_project.gss.web.client.FileUploadGearsDialog.java
License:Open Source License
/** * The widget's constructor.//from ww w. ja v a 2 s . c o m */ public FileUploadGearsDialog() { // Set the dialog's caption. setText("File upload"); setAnimationEnabled(true); // Create a panel to hold all of the dialog widgets. VerticalPanel panel = new VerticalPanel(); final HTML info = new HTML("You may select one or more files to upload."); info.addStyleName("gss-uploadNote"); panel.add(info); // Add an informative label with the folder name. Object selection = GSS.get().getTreeView().getSelection(); folder = ((RestResourceWrapper) selection).getResource(); browse = new Button("Browse..."); HorizontalPanel fileUploadPanel = new HorizontalPanel(); fileUploadPanel.add(browse); generalTable = new FlexTable(); generalTable.setText(0, 0, "Folder"); generalTable.setText(1, 0, "File"); generalTable.setText(0, 1, folder.getName()); generalTable.setWidget(1, 1, fileUploadPanel); generalTable.getCellFormatter().setStyleName(0, 0, "props-labels"); generalTable.getCellFormatter().setStyleName(1, 0, "props-labels"); generalTable.getCellFormatter().setStyleName(0, 1, "props-values"); generalTable.getCellFormatter().setStyleName(1, 1, "props-values"); generalTable.setCellSpacing(4); panel.add(generalTable); // Create a panel to hold the buttons. HorizontalPanel buttons = new HorizontalPanel(); submit = new Button("Upload"); submit.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { prepareAndSubmit(); } }); submit.setEnabled(false); buttons.add(submit); buttons.setCellHorizontalAlignment(submit, HasHorizontalAlignment.ALIGN_CENTER); // Create the 'Cancel' button, along with a listener that hides the // dialog when the button is clicked. Button cancel = new Button("Cancel", new ClickHandler() { @Override public void onClick(ClickEvent event) { canContinue = false; cancelUpload(); GSS.get().showFileList(true); } }); buttons.add(cancel); buttons.setCellHorizontalAlignment(cancel, HasHorizontalAlignment.ALIGN_CENTER); buttons.setSpacing(8); buttons.addStyleName("gss-DialogBox"); browse.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { Desktop desktop = factory.createDesktop(); desktop.openFiles(new OpenFilesHandler() { @Override public void onOpenFiles(OpenFilesEvent ofevent) { fileObjects = ofevent.getFiles(); selectedFiles.addAll(Arrays.asList(fileObjects)); for (int i = 0; i < selectedFiles.size(); i++) { generalTable.setText(i + 1, 0, "File"); generalTable.setText(i + 1, 1, selectedFiles.get(i).getName()); ProgressBar progress = new ProgressBar(20, 0); generalTable.setWidget(i + 1, 2, progress); progressBars.add(progress); generalTable.getCellFormatter().setStyleName(i + 1, 0, "props-labels"); generalTable.getCellFormatter().setStyleName(i + 1, 1, "props-values"); } submit.setEnabled(true); } }); } }); panel.add(buttons); panel.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_CENTER); panel.addStyleName("gss-DialogBox"); addStyleName("gss-DialogBox"); setWidget(panel); }