/** * */ package org.gcube.portlets.widgets.workspaceuploader.client.uploader; import java.util.ArrayList; import java.util.List; import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader; import org.gcube.portlets.widgets.workspaceuploader.client.DialogResult; import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploaderServiceAsync; import org.gcube.portlets.widgets.workspaceuploader.shared.HandlerResultMessage; import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploadFile; import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem; import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem.UPLOAD_STATUS; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import com.google.gwt.json.client.JSONString; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteEvent; import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler; import com.google.gwt.user.client.ui.FormPanel.SubmitEvent; import com.google.gwt.user.client.ui.FormPanel.SubmitHandler; import com.google.gwt.user.client.ui.HTML; /** * The Class MultipleDilaogUploadStream. * * @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it * Sep 11, 2015 */ public class MultipleDilaogUploadStream extends DialogUploadStream{ private static final String FILE_DELEMITER = ";"; private String fileUploadID; /** * Instantiates a new multiple dilaog upload stream. * * @param headerTitle the header title * @param parentId the parent id * @param uploadType the upload type */ public MultipleDilaogUploadStream(String headerTitle, String parentId, UPLOAD_TYPE uploadType) { super(headerTitle, parentId, uploadType); fileUpload.getElement().setAttribute("multiple", "multiple"); fileUploadID = GenerateUUID.get(10, 16); //is tagID fileUpload.getElement().setId(fileUploadID); this.addHandlers(); this.addListeners(); } /** * Adds the listeners. */ @Override protected void addListeners() { btnUpload.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { GWT.log("btnSubmit click"); if (fileUpload.getFilename()==null || !(fileUpload.getFilename().length()>2)) { GWT.log("No file specified "); return; } String[] files = null; String filesSelected = getFilesSelected(fileUploadID, FILE_DELEMITER); GWT.log("getFilesSelected: "+filesSelected); files = filesSelected.split(FILE_DELEMITER); //NORMALIZE FILE NAMES for (int i=0; i() { @Override public void onSuccess(final String itemId) { GWT.log("itemExistsInWorkpaceFolder: "+itemId); if(itemId!=null){ // HANDLE OWERWRITE if(Window.confirm(label + " exists in folder. Overwrite?")){ removeItemAndSubmitForm(itemId); updateItemSubmitForm(itemId); } }else submitForm(); //ITEM does NOT EXIST SO SUBMIT FORM; } @Override public void onFailure(Throwable caught) { GWT.log("Sorry an error occurred on the server "+caught.getLocalizedMessage() + ". Please try again later"); Window.alert(caught.getMessage()); } }); }else submitForm(); } }); /* btnCancel.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { hide(); } });*/ } /** * Generate new upload client keys. * * @param nmb the nmb * @return */ private void generateFakeUploaders(String[] files, String parentId){ fakeUploaders = new ArrayList(files.length); for (int i = 0; i fakeFiles){ try { JSONObject productObj = new JSONObject(); JSONArray jsonArray = new JSONArray(); productObj.put(ConstantsWorkspaceUploader.JSON_CLIENT_KEYS, jsonArray); for (int i=0; i