3962: Workspace Uploader improvements: use a sequential get status instead of parallel during (multiple-)uploads
Task-Url: https://support.d4science.org/issues/3962 Updated pom version at 1.2.0 Starting sequential system to upload instead of parallel git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/widgets/workspace-uploader@128558 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
852cb584be
commit
aa74220a50
|
@ -29,5 +29,6 @@
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="lib" path="/home/francesco-mangiacrapa/libraries/asm-5.0.3/lib/asm-5.0.3.jar"/>
|
<classpathentry kind="lib" path="/home/francesco-mangiacrapa/libraries/asm-5.0.3/lib/asm-5.0.3.jar"/>
|
||||||
|
<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
|
||||||
<classpathentry kind="output" path="target/classes"/>
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
eclipse.preferences.version=1
|
eclipse.preferences.version=1
|
||||||
jarsExcludedFromWebInfLib=
|
jarsExcludedFromWebInfLib=
|
||||||
lastWarOutDir=/home/francesco-mangiacrapa/wseclipseluna/workspace-uploader-TRUNK/target/workspace-uploader-1.0.0-SNAPSHOT
|
lastWarOutDir=/home/francesco-mangiacrapa/wseclipseluna/workspace-uploader-TRUNK/target/workspace-uploader-1.0.0-SNAPSHOT
|
||||||
warSrcDir=
|
warSrcDir=src/main/webapp
|
||||||
warSrcDirIsOutput=false
|
warSrcDirIsOutput=false
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
<ReleaseNotes>
|
<ReleaseNotes>
|
||||||
|
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-2-0"
|
||||||
|
date="2016-05-09">
|
||||||
|
<Change>[Feature #3962] Sequential upload status</Change>
|
||||||
|
</Changeset>
|
||||||
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-1-0"
|
<Changeset component="org.gcube.portlets-widgets.workspace-uploader.1-1-0"
|
||||||
date="2016-01-08">
|
date="2016-01-08">
|
||||||
<Change>Bug Fixed #1333</Change>
|
<Change>Bug Fixed #1333</Change>
|
||||||
|
|
15
pom.xml
15
pom.xml
|
@ -12,7 +12,7 @@
|
||||||
<groupId>org.gcube.portlets.widgets</groupId>
|
<groupId>org.gcube.portlets.widgets</groupId>
|
||||||
<artifactId>workspace-uploader</artifactId>
|
<artifactId>workspace-uploader</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
<version>1.1.1-SNAPSHOT</version>
|
<version>1.2.0-SNAPSHOT</version>
|
||||||
<name>Workspace Uploader Widget</name>
|
<name>Workspace Uploader Widget</name>
|
||||||
<description>Workspace Uploader Widget allows your application to upload file/s in the gCube Workspace</description>
|
<description>Workspace Uploader Widget allows your application to upload file/s in the gCube Workspace</description>
|
||||||
<scm>
|
<scm>
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.distribution</groupId>
|
<groupId>org.gcube.distribution</groupId>
|
||||||
<artifactId>maven-portal-bom</artifactId>
|
<artifactId>maven-portal-bom</artifactId>
|
||||||
<version>LATEST</version>
|
<version>2.6.0-SNAPSHOT</version>
|
||||||
<type>pom</type>
|
<type>pom</type>
|
||||||
<scope>import</scope>
|
<scope>import</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
@ -60,11 +60,11 @@
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
|
||||||
<!-- UNCOMMENT THIS TO RUN IN DEVO MODE -->
|
<!-- UNCOMMENT THIS TO RUN IN DEVO MODE -->
|
||||||
<!-- <dependency> -->
|
<!-- <dependency> -->
|
||||||
<!-- <groupId>xerces</groupId> -->
|
<!-- <groupId>xerces</groupId> -->
|
||||||
<!-- <artifactId>xerces</artifactId> -->
|
<!-- <artifactId>xerces</artifactId> -->
|
||||||
<!-- <version>2.4.0</version> -->
|
<!-- <version>2.4.0</version> -->
|
||||||
<!-- </dependency> -->
|
<!-- </dependency> -->
|
||||||
|
|
||||||
<!-- Google Web Toolkit (GWT) -->
|
<!-- Google Web Toolkit (GWT) -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -179,7 +179,6 @@
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.gcube.portal</groupId>
|
<groupId>org.gcube.portal</groupId>
|
||||||
<artifactId>social-networking-library</artifactId>
|
<artifactId>social-networking-library</artifactId>
|
||||||
<version>[1.0.0-SNAPSHOT,2.0.0-SNAPSHOT)</version>
|
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -6,11 +6,12 @@ import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem
|
||||||
import com.google.gwt.event.shared.GwtEvent;
|
import com.google.gwt.event.shared.GwtEvent;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class CancelUploadEvent.
|
* The Class CancelUploadEvent.
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Sep 7, 2015
|
* May 10, 2016
|
||||||
*/
|
*/
|
||||||
public class CancelUploadEvent extends GwtEvent<CancelUploadEventHandler> {
|
public class CancelUploadEvent extends GwtEvent<CancelUploadEventHandler> {
|
||||||
public static Type<CancelUploadEventHandler> TYPE = new Type<CancelUploadEventHandler>();
|
public static Type<CancelUploadEventHandler> TYPE = new Type<CancelUploadEventHandler>();
|
||||||
|
@ -18,16 +19,12 @@ public class CancelUploadEvent extends GwtEvent<CancelUploadEventHandler> {
|
||||||
private String fileName;
|
private String fileName;
|
||||||
private WorkspaceUploaderItem uploader;
|
private WorkspaceUploaderItem uploader;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the hp
|
|
||||||
*/
|
|
||||||
public UploaderProgressView getProgessView() {
|
|
||||||
return uploaderProgressView;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new cancel upload event.
|
* Instantiates a new cancel upload event.
|
||||||
|
*
|
||||||
|
* @param uploader the uploader
|
||||||
|
* @param uploaderProgressView the uploader progress view
|
||||||
|
* @param fileName the file name
|
||||||
*/
|
*/
|
||||||
public CancelUploadEvent(WorkspaceUploaderItem uploader, UploaderProgressView uploaderProgressView, String fileName) {
|
public CancelUploadEvent(WorkspaceUploaderItem uploader, UploaderProgressView uploaderProgressView, String fileName) {
|
||||||
this.uploader = uploader;
|
this.uploader = uploader;
|
||||||
|
@ -36,6 +33,8 @@ public class CancelUploadEvent extends GwtEvent<CancelUploadEventHandler> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Gets the uploader.
|
||||||
|
*
|
||||||
* @return the uploader
|
* @return the uploader
|
||||||
*/
|
*/
|
||||||
public WorkspaceUploaderItem getUploader() {
|
public WorkspaceUploaderItem getUploader() {
|
||||||
|
@ -59,7 +58,19 @@ public class CancelUploadEvent extends GwtEvent<CancelUploadEventHandler> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return
|
* Gets the progess view.
|
||||||
|
*
|
||||||
|
* @return the progess view
|
||||||
|
*/
|
||||||
|
public UploaderProgressView getProgessView() {
|
||||||
|
return uploaderProgressView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the file name.
|
||||||
|
*
|
||||||
|
* @return the file name
|
||||||
*/
|
*/
|
||||||
public String getFileName() {
|
public String getFileName() {
|
||||||
return fileName;
|
return fileName;
|
||||||
|
|
|
@ -44,15 +44,15 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Sep 24, 2015
|
* Sep 24, 2015
|
||||||
*/
|
*/
|
||||||
public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNotificationListener{
|
public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNotificationListener{
|
||||||
|
|
||||||
private Hidden hiddenOverwrite = new Hidden(ConstantsWorkspaceUploader.IS_OVERWRITE,"false");
|
private Hidden hiddenOverwrite = new Hidden(ConstantsWorkspaceUploader.IS_OVERWRITE,"false");
|
||||||
protected final FormPanel formPanel = new FormPanel();
|
protected final FormPanel formPanel = new FormPanel();
|
||||||
protected FileUpload fileUpload;
|
protected FileUpload fileUpload;
|
||||||
protected Hidden jsonClientKeys;
|
protected Hidden jsonClientKeys;
|
||||||
protected List<WorkspaceUploaderItem> fakeUploaders = new ArrayList<WorkspaceUploaderItem>();
|
protected List<WorkspaceUploaderItem> fakeUploaders = new ArrayList<WorkspaceUploaderItem>();
|
||||||
protected WorkspaceUploaderListenerController controller = new WorkspaceUploaderListenerController();
|
protected WorkspaceUploaderListenerController controller = new WorkspaceUploaderListenerController();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Enum UPLOAD_TYPE.
|
* The Enum UPLOAD_TYPE.
|
||||||
*
|
*
|
||||||
|
@ -81,31 +81,31 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
super(false, true, headerTitle);
|
super(false, true, headerTitle);
|
||||||
setWidth("400px");
|
setWidth("400px");
|
||||||
fileUpload = new FileUpload();
|
fileUpload = new FileUpload();
|
||||||
|
|
||||||
//ONLY IN CASE OF FILE MULTIPLE UPLOAD IS AVAILABLE
|
//ONLY IN CASE OF FILE MULTIPLE UPLOAD IS AVAILABLE
|
||||||
if(uploadType.equals(UPLOAD_TYPE.File))
|
if(uploadType.equals(UPLOAD_TYPE.File))
|
||||||
fileUpload.getElement().setAttribute("multiple", "multiple");
|
fileUpload.getElement().setAttribute("multiple", "multiple");
|
||||||
|
|
||||||
this.parentIdentifier = parentId;
|
this.parentIdentifier = parentId;
|
||||||
this.uploadType = uploadType;
|
this.uploadType = uploadType;
|
||||||
this.addStyleName("fileInputUploader");
|
this.addStyleName("fileInputUploader");
|
||||||
formPanel.setAction(ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM);
|
formPanel.setAction(ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM);
|
||||||
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
|
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
|
||||||
formPanel.setMethod(FormPanel.METHOD_POST);
|
formPanel.setMethod(FormPanel.METHOD_POST);
|
||||||
formPanel.setWidth("auto");
|
formPanel.setWidth("auto");
|
||||||
|
|
||||||
// Create a panel to hold all of the form widgets.
|
// Create a panel to hold all of the form widgets.
|
||||||
panel = new VerticalPanel();
|
panel = new VerticalPanel();
|
||||||
formPanel.setWidget(panel);
|
formPanel.setWidget(panel);
|
||||||
setModal(false);
|
setModal(false);
|
||||||
|
|
||||||
fileUpload.setName(ConstantsWorkspaceUploader.UPLOAD_FORM_ELEMENT);
|
fileUpload.setName(ConstantsWorkspaceUploader.UPLOAD_FORM_ELEMENT);
|
||||||
|
|
||||||
// Add hidden parameters
|
// Add hidden parameters
|
||||||
panel.add(new Hidden(ConstantsWorkspaceUploader.ID_FOLDER,parentId));
|
panel.add(new Hidden(ConstantsWorkspaceUploader.ID_FOLDER,parentId));
|
||||||
panel.add(new Hidden(ConstantsWorkspaceUploader.UPLOAD_TYPE,uploadType.toString()));
|
panel.add(new Hidden(ConstantsWorkspaceUploader.UPLOAD_TYPE,uploadType.toString()));
|
||||||
panel.add(hiddenOverwrite);
|
panel.add(hiddenOverwrite);
|
||||||
|
|
||||||
initJsonClientKeys();
|
initJsonClientKeys();
|
||||||
panel.add(jsonClientKeys);
|
panel.add(jsonClientKeys);
|
||||||
panel.add(fileUpload);
|
panel.add(fileUpload);
|
||||||
|
@ -116,10 +116,10 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
hp.getElement().getStyle().setMarginTop(5, Unit.PX);
|
hp.getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||||
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||||
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
|
hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
|
||||||
|
|
||||||
anchorMyUploads = new Anchor(ConstantsWorkspaceUploader.MY_UPLOADS);
|
anchorMyUploads = new Anchor(ConstantsWorkspaceUploader.MY_UPLOADS);
|
||||||
anchorMyUploads.addClickHandler(new ClickHandler() {
|
anchorMyUploads.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
UploaderMonitor.getInstance().showMonitor();
|
UploaderMonitor.getInstance().showMonitor();
|
||||||
|
@ -127,12 +127,12 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
});
|
});
|
||||||
hp.add(anchorMyUploads);
|
hp.add(anchorMyUploads);
|
||||||
panel.add(hp);
|
panel.add(hp);
|
||||||
|
|
||||||
hpBottom = new HorizontalPanel();
|
hpBottom = new HorizontalPanel();
|
||||||
hpBottom.setWidth("100%");
|
hpBottom.setWidth("100%");
|
||||||
// hpBottom.getElement().getStyle().setMarginTop(5, Unit.PX);
|
// hpBottom.getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||||
hpBottom.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
hpBottom.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||||
|
|
||||||
if(uploadType.equals(UPLOAD_TYPE.File)){
|
if(uploadType.equals(UPLOAD_TYPE.File)){
|
||||||
HTML msg = new HTML("<p>To select multiple files, press and hold down the Ctrl key, and then</p><p style='margin:-3px 0;'>click each item that you want to select</p>");
|
HTML msg = new HTML("<p>To select multiple files, press and hold down the Ctrl key, and then</p><p style='margin:-3px 0;'>click each item that you want to select</p>");
|
||||||
msg.getElement().getStyle().setFontSize(10, Unit.PX);
|
msg.getElement().getStyle().setFontSize(10, Unit.PX);
|
||||||
|
@ -143,10 +143,10 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
hp2.getElement().getStyle().setMarginTop(5, Unit.PX);
|
hp2.getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||||
// hp2.getElement().getStyle().setWidth(100, Unit.PCT);
|
// hp2.getElement().getStyle().setWidth(100, Unit.PCT);
|
||||||
hp2.addStyleName("align-right-close");
|
hp2.addStyleName("align-right-close");
|
||||||
|
|
||||||
Button bClose = new Button("Close");
|
Button bClose = new Button("Close");
|
||||||
bClose.addClickHandler(new ClickHandler() {
|
bClose.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
DialogUpload.this.hide();
|
DialogUpload.this.hide();
|
||||||
|
@ -155,11 +155,11 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
|
|
||||||
hp2.add(bClose);
|
hp2.add(bClose);
|
||||||
hpBottom.add(hp2);
|
hpBottom.add(hp2);
|
||||||
panel.add(hpBottom);
|
panel.add(hpBottom);
|
||||||
|
|
||||||
add(formPanel);
|
add(formPanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the panel
|
* @return the panel
|
||||||
*/
|
*/
|
||||||
|
@ -170,7 +170,7 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
protected void initJsonClientKeys(){
|
protected void initJsonClientKeys(){
|
||||||
jsonClientKeys = new Hidden(ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS,"");
|
jsonClientKeys = new Hidden(ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS,"");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bind events.
|
* Bind events.
|
||||||
*/
|
*/
|
||||||
|
@ -183,17 +183,17 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
* Adds the handlers.
|
* Adds the handlers.
|
||||||
*/
|
*/
|
||||||
protected void addHandlers() {
|
protected void addHandlers() {
|
||||||
|
|
||||||
// handle the post
|
// handle the post
|
||||||
formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
|
formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubmitComplete(SubmitCompleteEvent event) {
|
public void onSubmitComplete(SubmitCompleteEvent event) {
|
||||||
GWT.log("onSubmitComplete");
|
GWT.log("onSubmitComplete");
|
||||||
hide();
|
hide();
|
||||||
// isStatusCompleted = true;
|
// isStatusCompleted = true;
|
||||||
String result = event.getResults();
|
String result = event.getResults();
|
||||||
|
|
||||||
if (result == null) {
|
if (result == null) {
|
||||||
removeLoading();
|
removeLoading();
|
||||||
new DialogResult(null, "Error during upload", "An error occurred during file upload.").center();
|
new DialogResult(null, "Error during upload", "An error occurred during file upload.").center();
|
||||||
|
@ -203,63 +203,64 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(strippedResult);
|
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(strippedResult);
|
||||||
|
|
||||||
switch (resultMessage.getStatus()) {
|
switch (resultMessage.getStatus()) {
|
||||||
case ERROR:
|
case ERROR:
|
||||||
removeLoading();
|
removeLoading();
|
||||||
GWT.log("Error during upload "+resultMessage.getMessage());
|
GWT.log("Error during upload "+resultMessage.getMessage());
|
||||||
break;
|
break;
|
||||||
case UNKNOWN:
|
case UNKNOWN:
|
||||||
removeLoading();
|
removeLoading();
|
||||||
GWT.log("Error during upload "+resultMessage.getMessage());
|
GWT.log("Error during upload "+resultMessage.getMessage());
|
||||||
break;
|
break;
|
||||||
case WARN: {
|
case WARN: {
|
||||||
GWT.log("Upload completed with warnings "+resultMessage.getMessage());
|
GWT.log("Upload completed with warnings "+resultMessage.getMessage());
|
||||||
removeLoading();
|
removeLoading();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OK: {
|
case OK: {
|
||||||
// removeLoading();
|
// removeLoading();
|
||||||
// UploaderMonitor.getInstance().pollWorkspaceUploaderId(resultMessage.getMessage());
|
// UploaderMonitor.getInstance().pollWorkspaceUploaderId(resultMessage.getMessage());
|
||||||
|
|
||||||
/*Timer t = new Timer() {
|
/*Timer t = new Timer() {
|
||||||
public void run() {
|
public void run() {
|
||||||
GWT.log("Upload started with id: "+resultMessage.getMessage());
|
GWT.log("Upload started with id: "+resultMessage.getMessage());
|
||||||
UploaderMonitor.getInstance().pollWorkspaceUploaderId(resultMessage.getMessage());
|
UploaderMonitor.getInstance().pollWorkspaceUploaderId(resultMessage.getMessage());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
t.schedule(250);*/
|
t.schedule(250);*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//TODO NEVER USED, WE ARE USING MULTIPLE DIALOG UPLOAD
|
||||||
formPanel.addSubmitHandler(new SubmitHandler() {
|
formPanel.addSubmitHandler(new SubmitHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSubmit(SubmitEvent event) {
|
public void onSubmit(SubmitEvent event) {
|
||||||
GWT.log("SubmitEvent");
|
GWT.log("SubmitEvent");
|
||||||
addLoading();
|
addLoading();
|
||||||
enableButtons(false);
|
enableButtons(false);
|
||||||
WorkspaceUploaderItem fakeUploader = new WorkspaceUploaderItem();
|
WorkspaceUploaderItem fakeUploader = new WorkspaceUploaderItem();
|
||||||
fakeUploader.setClientUploadKey(clientUploadKey);
|
fakeUploader.setClientUploadKey(clientUploadKey);
|
||||||
UploaderMonitor.getInstance().addNewSubmit(fakeUploader, fileUpload.getFilename());
|
UploaderMonitor.getInstance().addNewUploaderToMonitorPanel(fakeUploader, fileUpload.getFilename());
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
removeLoading();
|
removeLoading();
|
||||||
UploaderMonitor.getInstance().pollWorkspaceUploader(fakeUploader);
|
// UploaderMonitor.getInstance().pollWorkspaceUploader(fakeUploader);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
fileUpload.addChangeHandler(new ChangeHandler() {
|
fileUpload.addChangeHandler(new ChangeHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onChange(ChangeEvent event) {
|
public void onChange(ChangeEvent event) {
|
||||||
|
|
||||||
GWT.log("btnSubmit click");
|
GWT.log("btnSubmit click");
|
||||||
if (fileUpload.getFilename()==null || !(fileUpload.getFilename().length()>2)) {
|
if (fileUpload.getFilename()==null || !(fileUpload.getFilename().length()>2)) {
|
||||||
GWT.log("No file specified ");
|
GWT.log("No file specified ");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GWT.log("fileUpload.getFilename() "+fileUpload.getFilename());
|
GWT.log("fileUpload.getFilename() "+fileUpload.getFilename());
|
||||||
/*
|
/*
|
||||||
* TODO: recall: Some browser would write in fileUploadField.getValue() C:\fakepath\$fileName
|
* TODO: recall: Some browser would write in fileUploadField.getValue() C:\fakepath\$fileName
|
||||||
|
@ -301,7 +302,7 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
protected void addLoading(){
|
protected void addLoading(){
|
||||||
panel.add(LOADING);
|
panel.add(LOADING);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Removes the loading.
|
* Removes the loading.
|
||||||
*/
|
*/
|
||||||
|
@ -309,10 +310,10 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
try{
|
try{
|
||||||
panel.remove(LOADING);
|
panel.remove(LOADING);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable buttons.
|
* Enable buttons.
|
||||||
*
|
*
|
||||||
|
@ -328,7 +329,7 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
* Submit form.
|
* Submit form.
|
||||||
*/
|
*/
|
||||||
public void submitForm(){
|
public void submitForm(){
|
||||||
formPanel.submit();
|
formPanel.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,7 +360,7 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
|
|
||||||
});*/
|
});*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update item submit form.
|
* Update item submit form.
|
||||||
*
|
*
|
||||||
|
@ -385,5 +386,5 @@ public class DialogUpload extends ClosableDialog implements HasWorskpaceUploadNo
|
||||||
public void removeWorkspaceUploadNotificationListener(WorskpaceUploadNotificationListener handler) {
|
public void removeWorkspaceUploadNotificationListener(WorskpaceUploadNotificationListener handler) {
|
||||||
controller.removeWorkspaceUploadListener(handler);
|
controller.removeWorkspaceUploadListener(handler);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
||||||
|
|
||||||
|
@ -35,19 +35,19 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
* Sep 24, 2015
|
* Sep 24, 2015
|
||||||
*/
|
*/
|
||||||
public class MonitorPanel extends ScrollPanel{
|
public class MonitorPanel extends ScrollPanel{
|
||||||
|
|
||||||
private VerticalPanel vpListUpload = new VerticalPanel();
|
private VerticalPanel vpListUpload = new VerticalPanel();
|
||||||
private VerticalPanel mainPanel = new VerticalPanel();
|
private VerticalPanel mainPanel = new VerticalPanel();
|
||||||
private Map<String, WorkspaceUploaderItem> mapUploading = new HashMap<String, WorkspaceUploaderItem>();
|
private Map<String, WorkspaceUploaderItem> mapUploading = new HashMap<String, WorkspaceUploaderItem>();
|
||||||
private Map<String, UploaderProgressView> mapPanels = new HashMap<String, UploaderProgressView>();
|
private Map<String, UploaderProgressView> mapPanels = new HashMap<String, UploaderProgressView>();
|
||||||
private HandlerManager eventBus;
|
private HandlerManager eventBus;
|
||||||
private HorizontalPanel hpNoUploads = new HorizontalPanel();
|
private HorizontalPanel hpNoUploads = new HorizontalPanel();
|
||||||
|
|
||||||
private HTML labelNumbUpload = new HTML("Uploaded 0 of 0");
|
private HTML labelNumbUpload = new HTML("Uploaded 0 of 0");
|
||||||
private HorizontalPanel hpBottomPanel = new HorizontalPanel();
|
private HorizontalPanel hpBottomPanel = new HorizontalPanel();
|
||||||
|
|
||||||
private HorizontalPanel hpCloseMonitor = new HorizontalPanel();
|
private HorizontalPanel hpCloseMonitor = new HorizontalPanel();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
ProgressBarCssAndImages.INSTANCE.css().ensureInjected();
|
ProgressBarCssAndImages.INSTANCE.css().ensureInjected();
|
||||||
}
|
}
|
||||||
|
@ -67,10 +67,10 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
hpBottomPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
hpBottomPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||||
hpBottomPanel.setWidth("100%");
|
hpBottomPanel.setWidth("100%");
|
||||||
hpBottomPanel.add(labelNumbUpload);
|
hpBottomPanel.add(labelNumbUpload);
|
||||||
|
|
||||||
// mainPanel.add(hpNumbUpload);
|
// mainPanel.add(hpNumbUpload);
|
||||||
// mainPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
|
// mainPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
|
||||||
|
|
||||||
//LIST OF UPLOADS
|
//LIST OF UPLOADS
|
||||||
vpListUpload.getElement().getStyle().setMargin(5, Unit.PX);
|
vpListUpload.getElement().getStyle().setMargin(5, Unit.PX);
|
||||||
// setHeight("500px");
|
// setHeight("500px");
|
||||||
|
@ -80,61 +80,61 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
scroll.setHeight("200px");
|
scroll.setHeight("200px");
|
||||||
// scroll.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
|
// scroll.getElement().getStyle().setBorderStyle(BorderStyle.SOLID);
|
||||||
// scroll.getElement().getStyle().setBorderWidth(1.0, Unit.PX);
|
// scroll.getElement().getStyle().setBorderWidth(1.0, Unit.PX);
|
||||||
|
|
||||||
mainPanel.add(scroll);
|
mainPanel.add(scroll);
|
||||||
|
|
||||||
//CLOSE MONITOR
|
//CLOSE MONITOR
|
||||||
// hpCloseMonitor.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
|
// hpCloseMonitor.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
|
||||||
// hpCloseMonitor.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
|
// hpCloseMonitor.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);
|
||||||
Button bClose = new Button("Close");
|
Button bClose = new Button("Close");
|
||||||
bClose.addClickHandler(new ClickHandler() {
|
bClose.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
eventBus.fireEvent(new HideMonitorEvent());
|
eventBus.fireEvent(new HideMonitorEvent());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// hpNumbUpload.add(bClose);
|
// hpNumbUpload.add(bClose);
|
||||||
|
|
||||||
hpCloseMonitor.add(bClose);
|
hpCloseMonitor.add(bClose);
|
||||||
hpCloseMonitor.addStyleName("align-right-close");
|
hpCloseMonitor.addStyleName("align-right-close");
|
||||||
hpBottomPanel.add(hpCloseMonitor);
|
hpBottomPanel.add(hpCloseMonitor);
|
||||||
hpBottomPanel.getElement().getStyle().setMarginTop(5.0, Unit.PX);
|
hpBottomPanel.getElement().getStyle().setMarginTop(5.0, Unit.PX);
|
||||||
mainPanel.setWidth("100%");
|
mainPanel.setWidth("100%");
|
||||||
mainPanel.add(hpBottomPanel);
|
mainPanel.add(hpBottomPanel);
|
||||||
|
|
||||||
add(mainPanel);
|
add(mainPanel);
|
||||||
// RootPanel.get("workspace-uploader").add(verticalPanel);
|
// RootPanel.get("workspace-uploader").add(verticalPanel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void updateNumberUpload(){
|
private void updateNumberUpload(){
|
||||||
int numCompleted = 0;
|
int numCompleted = 0;
|
||||||
for (String uploadKey : mapUploading.keySet()) {
|
for (String uploadKey : mapUploading.keySet()) {
|
||||||
WorkspaceUploaderItem uploader = mapUploading.get(uploadKey);
|
WorkspaceUploaderItem uploader = mapUploading.get(uploadKey);
|
||||||
if(uploader.getUploadStatus().equals(UPLOAD_STATUS.COMPLETED))
|
if(uploader.getUploadStatus().equals(UPLOAD_STATUS.COMPLETED))
|
||||||
numCompleted++;
|
numCompleted++;
|
||||||
}
|
}
|
||||||
|
|
||||||
labelNumbUpload.setHTML("Uploaded "+numCompleted +" of "+mapUploading.size());
|
labelNumbUpload.setHTML("Uploaded "+numCompleted +" of "+mapUploading.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initPanelNoUploads(){
|
private void initPanelNoUploads(){
|
||||||
hpNoUploads = new HorizontalPanel();
|
hpNoUploads = new HorizontalPanel();
|
||||||
hpNoUploads.addStyleName("noUploads");
|
hpNoUploads.addStyleName("noUploads");
|
||||||
hpNoUploads.add(new HTML("No Uploads"));
|
hpNoUploads.add(new HTML("No Uploads"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeNoUploads(){
|
private void removeNoUploads(){
|
||||||
|
|
||||||
try{
|
try{
|
||||||
vpListUpload.remove(hpNoUploads);
|
vpListUpload.remove(hpNoUploads);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update workspace uploder.
|
* Update workspace uploder.
|
||||||
*
|
*
|
||||||
|
@ -142,18 +142,23 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
*/
|
*/
|
||||||
public void updateWorkspaceUploder(WorkspaceUploaderItem uploader){
|
public void updateWorkspaceUploder(WorkspaceUploaderItem uploader){
|
||||||
|
|
||||||
|
if(uploader==null){
|
||||||
|
GWT.log("Skipping update progress view, uploader is null");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mapUploading.put(uploader.getClientUploadKey(), uploader);
|
mapUploading.put(uploader.getClientUploadKey(), uploader);
|
||||||
|
|
||||||
if(mapPanels.get(uploader.getClientUploadKey())!=null){
|
if(mapPanels.get(uploader.getClientUploadKey())!=null){
|
||||||
UploaderProgressView upv = mapPanels.get(uploader.getClientUploadKey());
|
UploaderProgressView upv = mapPanels.get(uploader.getClientUploadKey());
|
||||||
upv.update(uploader);
|
upv.update(uploader);
|
||||||
}else{
|
}else{
|
||||||
GWT.log("Skip update, uploader: "+uploader.getClientUploadKey() +" "+uploader.getFile().toString()+", not found!");
|
GWT.log("Skipping update progress view, uploader: "+uploader.getClientUploadKey() +" "+uploader.getFile().toString()+", not found!");
|
||||||
}
|
}
|
||||||
|
|
||||||
updateNumberUpload();
|
updateNumberUpload();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* New workspace uploder.
|
* New workspace uploder.
|
||||||
*
|
*
|
||||||
|
@ -169,7 +174,7 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
upvPanel.addStyleName("upladerMargin");
|
upvPanel.addStyleName("upladerMargin");
|
||||||
// vpListUpload.insert(upvPanel, 0);
|
// vpListUpload.insert(upvPanel, 0);
|
||||||
vpListUpload.add(upvPanel);
|
vpListUpload.add(upvPanel);
|
||||||
|
|
||||||
updateNumberUpload();
|
updateNumberUpload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,7 +182,7 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
* Adds the close handler.
|
* Adds the close handler.
|
||||||
*/
|
*/
|
||||||
private void addCloseHandler(){
|
private void addCloseHandler(){
|
||||||
|
|
||||||
Window.addWindowClosingHandler(new Window.ClosingHandler() {
|
Window.addWindowClosingHandler(new Window.ClosingHandler() {
|
||||||
@Override
|
@Override
|
||||||
public void onWindowClosing(ClosingEvent event) {
|
public void onWindowClosing(ClosingEvent event) {
|
||||||
|
@ -185,11 +190,11 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
String msg = "";
|
String msg = "";
|
||||||
for (String uploadKey : mapUploading.keySet()) {
|
for (String uploadKey : mapUploading.keySet()) {
|
||||||
WorkspaceUploaderItem uploader = mapUploading.get(uploadKey);
|
WorkspaceUploaderItem uploader = mapUploading.get(uploadKey);
|
||||||
GWT.log("Closing uploder status: "+uploader.getFile().getFileName() +" status: "+uploader.getUploadStatus());
|
GWT.log("Closing uploader status: "+uploader.getFile().getFileName() +" status: "+uploader.getUploadStatus());
|
||||||
if(uploader.getUploadStatus().equals(UPLOAD_STATUS.WAIT) || uploader.getUploadStatus().equals(UPLOAD_STATUS.IN_PROGRESS))
|
if(uploader.getUploadStatus().equals(UPLOAD_STATUS.WAIT) || uploader.getUploadStatus().equals(UPLOAD_STATUS.IN_PROGRESS))
|
||||||
msg+=uploader.getFile().getFileName()+";";
|
msg+=uploader.getFile().getFileName()+";";
|
||||||
}
|
}
|
||||||
|
|
||||||
if(msg!=null && !msg.isEmpty()){
|
if(msg!=null && !msg.isEmpty()){
|
||||||
event.setMessage("Abort upload? "+msg);
|
event.setMessage("Abort upload? "+msg);
|
||||||
}
|
}
|
||||||
|
@ -200,7 +205,7 @@ public class MonitorPanel extends ScrollPanel{
|
||||||
@Override
|
@Override
|
||||||
public void onClose(CloseEvent<Window> event) {
|
public void onClose(CloseEvent<Window> event) {
|
||||||
// Window.alert("bye bye Closed");
|
// Window.alert("bye bye Closed");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
private MultipleDNDUpload dnd;
|
private MultipleDNDUpload dnd;
|
||||||
public MultipleDilaogUpload instance = this;
|
public MultipleDilaogUpload instance = this;
|
||||||
private String jsonKeys;
|
private String jsonKeys;
|
||||||
|
|
||||||
private String idFolder;
|
private String idFolder;
|
||||||
private UPLOAD_TYPE type;
|
private UPLOAD_TYPE type;
|
||||||
private String servlet = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM;
|
private String servlet = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM;
|
||||||
|
@ -57,16 +57,13 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
*/
|
*/
|
||||||
public MultipleDilaogUpload(String headerTitle, String parentId, UPLOAD_TYPE uploadType) {
|
public MultipleDilaogUpload(String headerTitle, String parentId, UPLOAD_TYPE uploadType) {
|
||||||
super(headerTitle, parentId, uploadType);
|
super(headerTitle, parentId, uploadType);
|
||||||
|
|
||||||
this.type =uploadType;
|
this.type =uploadType;
|
||||||
this.idFolder = parentId;
|
this.idFolder = parentId;
|
||||||
|
|
||||||
fileUploadID = GenerateUUID.get(10, 16); // is tagID
|
fileUploadID = GenerateUUID.get(10, 16); // is tagID
|
||||||
fileUpload.getElement().setId(fileUploadID);
|
fileUpload.getElement().setId(fileUploadID);
|
||||||
this.addHandlers();
|
this.addHandlers();
|
||||||
// exportGenerateFakeUploaders();
|
|
||||||
// exportCreateJsonKeyForFiles();
|
|
||||||
// exportAddNewSubmitToMonitor();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -77,23 +74,20 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
* @return the list
|
* @return the list
|
||||||
*/
|
*/
|
||||||
public void generateFakeUploaders(String filesSelected, String parentId) {
|
public void generateFakeUploaders(String filesSelected, String parentId) {
|
||||||
|
|
||||||
if(filesSelected==null || filesSelected.isEmpty())
|
if(filesSelected==null || filesSelected.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
String[] files = filesSelected.split(FILE_DELEMITER);
|
String[] files = filesSelected.split(FILE_DELEMITER);
|
||||||
|
|
||||||
// NORMALIZE FILE NAMES
|
// NORMALIZE FILE NAMES
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
String normalizedFileName = files[i];
|
String normalizedFileName = files[i];
|
||||||
if (normalizedFileName.contains("\\")) {
|
if (normalizedFileName.contains("\\")) {
|
||||||
files[i] = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\") + 1); // remove
|
files[i] = normalizedFileName.substring(normalizedFileName.lastIndexOf("\\") + 1); // remove C:\fakepath if exists
|
||||||
// C:\fakepath\
|
|
||||||
// if
|
|
||||||
// exists
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GWT.log("generating fake uploaders on: "+files.toString());
|
GWT.log("generating fake uploaders on: "+files.toString());
|
||||||
fakeUploaders = new ArrayList<WorkspaceUploaderItem>(files.length);
|
fakeUploaders = new ArrayList<WorkspaceUploaderItem>(files.length);
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
|
@ -106,14 +100,14 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
fakeItem.setFile(fakeFile);
|
fakeItem.setFile(fakeFile);
|
||||||
fakeUploaders.add(fakeItem);
|
fakeUploaders.add(fakeItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
GWT.log("fakeUploaders generated: "+fakeUploaders.toString());
|
GWT.log("fakeUploaders generated: "+fakeUploaders.toString());
|
||||||
// return fakeUploaders;
|
// return fakeUploaders;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.uploader.
|
* @see org.gcube.portlets.widgets.workspaceuploader.client.uploader.
|
||||||
* DialogUploadStream#addHandlers()
|
* DialogUploadStream#addHandlers()
|
||||||
*/
|
*/
|
||||||
|
@ -156,19 +150,6 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case OK: {
|
case OK: {
|
||||||
// removeLoading();
|
|
||||||
// UploaderMonitor.getInstance().pollWorkspaceUploaderId(resultMessage.getMessage());
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Timer t = new Timer() { public void run() {
|
|
||||||
* GWT.log("Upload started with id: "
|
|
||||||
* +resultMessage.getMessage());
|
|
||||||
* UploaderMonitor.getInstance(
|
|
||||||
* ).pollWorkspaceUploaderId(resultMessage.getMessage()); }
|
|
||||||
* };
|
|
||||||
*
|
|
||||||
* t.schedule(250);
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -202,19 +183,9 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
// GWT.log("getFilesSelected: " + filesSelected);
|
// GWT.log("getFilesSelected: " + filesSelected);
|
||||||
files = filesSelected.split(FILE_DELEMITER);
|
files = filesSelected.split(FILE_DELEMITER);
|
||||||
|
|
||||||
|
|
||||||
if(isLimitExceeded(files.length))
|
if(isLimitExceeded(files.length))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// if (files.length > ConstantsWorkspaceUploader.LIMIT_UPLOADS) {
|
|
||||||
// Window.alert("Multiple upload limit is "
|
|
||||||
// + ConstantsWorkspaceUploader.LIMIT_UPLOADS
|
|
||||||
// + " files");
|
|
||||||
// MultipleDilaogUpload.this.hide();
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// GENERATE NEW UPLOADERS
|
// GENERATE NEW UPLOADERS
|
||||||
generateFakeUploaders(filesSelected, parentIdentifier);
|
generateFakeUploaders(filesSelected, parentIdentifier);
|
||||||
|
@ -275,9 +246,9 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if is limit exceeded.
|
* Checks if is limit exceeded.
|
||||||
*
|
*
|
||||||
|
@ -285,7 +256,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
* @return true, if is limit exceeded
|
* @return true, if is limit exceeded
|
||||||
*/
|
*/
|
||||||
public boolean isLimitExceeded(int numbOfFiles){
|
public boolean isLimitExceeded(int numbOfFiles){
|
||||||
|
|
||||||
if (numbOfFiles > ConstantsWorkspaceUploader.LIMIT_UPLOADS) {
|
if (numbOfFiles > ConstantsWorkspaceUploader.LIMIT_UPLOADS) {
|
||||||
Window.alert("Multiple upload limit is "
|
Window.alert("Multiple upload limit is "
|
||||||
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS
|
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS
|
||||||
|
@ -293,24 +264,28 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
MultipleDilaogUpload.this.hide();
|
MultipleDilaogUpload.this.hide();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the new submit to monitor.
|
* Adds the new submit to monitor.
|
||||||
*/
|
*/
|
||||||
public void addNewSubmitToMonitor(){
|
public void addNewSubmitToMonitor(){
|
||||||
GWT.log("addNewSubmitToMonitor...");
|
GWT.log("addNewSubmitToMonitor...");
|
||||||
|
int queueIndex = UploaderMonitor.getInstance().newQueue();
|
||||||
for (final WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
for (final WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
||||||
UploaderMonitor.getInstance().addNewSubmit(workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
UploaderMonitor.getInstance().addNewUploaderToMonitorPanel(workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
||||||
setVisible(false);
|
setVisible(false);
|
||||||
removeLoading();
|
removeLoading();
|
||||||
UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem);
|
UploaderMonitor.getInstance().addNewTimerToQueue(queueIndex, workspaceUploaderItem);
|
||||||
|
// UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UploaderMonitor.getInstance().doStartPollingQueue(queueIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the json key for files.
|
* Creates the json key for files.
|
||||||
*
|
*
|
||||||
|
@ -323,14 +298,14 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
JSONArray jsonArray = new JSONArray();
|
JSONArray jsonArray = new JSONArray();
|
||||||
productObj.put(ConstantsWorkspaceUploader.JSON_CLIENT_KEYS, jsonArray);
|
productObj.put(ConstantsWorkspaceUploader.JSON_CLIENT_KEYS, jsonArray);
|
||||||
// GWT.log("Creating json keys on fakeUploaders: "+fakeUploaders.toString());
|
// GWT.log("Creating json keys on fakeUploaders: "+fakeUploaders.toString());
|
||||||
|
|
||||||
for (int i = 0; i < fakeUploaders.size(); i++) {
|
for (int i = 0; i < fakeUploaders.size(); i++) {
|
||||||
WorkspaceUploaderItem file = fakeUploaders.get(i);
|
WorkspaceUploaderItem file = fakeUploaders.get(i);
|
||||||
JSONObject obj = new JSONObject();
|
JSONObject obj = new JSONObject();
|
||||||
obj.put(file.getClientUploadKey(), new JSONString(file.getFile().getFileName()));
|
obj.put(file.getClientUploadKey(), new JSONString(file.getFile().getFileName()));
|
||||||
jsonArray.set(i, obj);
|
jsonArray.set(i, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonKeys = productObj.toString();
|
jsonKeys = productObj.toString();
|
||||||
GWT.log("updated jsonKeys: "+jsonKeys);
|
GWT.log("updated jsonKeys: "+jsonKeys);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -339,64 +314,12 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// /**
|
|
||||||
// * Export generate fake uploaders.
|
|
||||||
// */
|
|
||||||
// public native void exportGenerateFakeUploaders() /*-{
|
|
||||||
// var that = this;
|
|
||||||
// $wnd.add = $entry(function(files,parentId) {
|
|
||||||
// that.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::generateFakeUploaders([Ljava/lang/String;Ljava/lang/String;)(files,parentId);
|
|
||||||
// });
|
|
||||||
// }-*/;
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * Export create json key for files.
|
|
||||||
// */
|
|
||||||
// public native void exportCreateJsonKeyForFiles() /*-{
|
|
||||||
// var that = this;
|
|
||||||
// $wnd.add = $entry(function() {
|
|
||||||
// that.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::createJsonKeyForFiles()();
|
|
||||||
// });
|
|
||||||
// }-*/;
|
|
||||||
//
|
|
||||||
// /**
|
|
||||||
// * Export create json key for files.
|
|
||||||
// */
|
|
||||||
// public native void exportAddNewSubmitToMonitor() /*-{
|
|
||||||
// var that = this;
|
|
||||||
// $wnd.add = $entry(function() {
|
|
||||||
// that.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::addNewSubmitToMonitor()();
|
|
||||||
// });
|
|
||||||
// }-*/;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Submit form.
|
* Submit form.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void submitForm() {
|
public void submitForm() {
|
||||||
formPanel.submit();
|
formPanel.submit();
|
||||||
// for (final WorkspaceUploaderItem workspaceUploaderItem :
|
|
||||||
// fakeUploaders) {
|
|
||||||
//
|
|
||||||
// UploaderMonitor.getInstance().addNewSubmit(workspaceUploaderItem,
|
|
||||||
// workspaceUploaderItem.getFile().getFileName());
|
|
||||||
// setVisible(false);
|
|
||||||
// removeLoading();
|
|
||||||
// //
|
|
||||||
// UploaderMonitor.getInstance().pollWorkspaceUploaderId(workspaceUploaderItem.getClientUploadKey());
|
|
||||||
//
|
|
||||||
// //WAITING 0.1 SEC TO FIRST UPDATES
|
|
||||||
// /*new Timer() {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public void run() {
|
|
||||||
// removeLoading();
|
|
||||||
// UploaderMonitor.getInstance().pollWorkspaceUploaderId(workspaceUploaderItem.getClientUploadKey());
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// }.schedule(100);*/
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -426,7 +349,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
}
|
}
|
||||||
|
|
||||||
}-*/;
|
}-*/;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the parent id.
|
* Gets the parent id.
|
||||||
*
|
*
|
||||||
|
@ -444,22 +367,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
public UPLOAD_TYPE getUploadType() {
|
public UPLOAD_TYPE getUploadType() {
|
||||||
return uploadType;
|
return uploadType;
|
||||||
}
|
}
|
||||||
|
|
||||||
// public native void exportParentId() /*-{
|
|
||||||
// var that = this;
|
|
||||||
// $wnd.add = $entry(function() {
|
|
||||||
// that.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::getParentId();
|
|
||||||
// });
|
|
||||||
// }-*/;
|
|
||||||
//
|
|
||||||
// public native void exportUploadType() /*-{
|
|
||||||
// var that = this;
|
|
||||||
// $wnd.add = $entry(function() {
|
|
||||||
// that.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::getUploadType();
|
|
||||||
// });
|
|
||||||
// }-*/;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the files selected.
|
* Gets the files selected.
|
||||||
*
|
*
|
||||||
|
@ -482,15 +390,15 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
}
|
}
|
||||||
return out;
|
return out;
|
||||||
}-*/;
|
}-*/;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inits the file reader.
|
* Inits the file reader.
|
||||||
*/
|
*/
|
||||||
public void initFileReader() {
|
public void initFileReader() {
|
||||||
initW3CFileReader(instance, MultipleDilaogUpload.FILE_DELEMITER);
|
initW3CFileReader(instance, MultipleDilaogUpload.FILE_DELEMITER);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the files selected.
|
* Gets the files selected.
|
||||||
*
|
*
|
||||||
|
@ -531,7 +439,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
if (e.preventDefault) {
|
if (e.preventDefault) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
} // stops the browser from redirecting off to the image.
|
} // stops the browser from redirecting off to the image.
|
||||||
|
|
||||||
var servlet = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::servlet;
|
var servlet = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::servlet;
|
||||||
|
|
||||||
var opts = {
|
var opts = {
|
||||||
|
@ -539,10 +447,10 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
type : "POST",
|
type : "POST",
|
||||||
processData : false
|
processData : false
|
||||||
};
|
};
|
||||||
|
|
||||||
var idfolder = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::idFolder;
|
var idfolder = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::idFolder;
|
||||||
console.log("idfolder: " + idfolder);
|
console.log("idfolder: " + idfolder);
|
||||||
|
|
||||||
var uploadType = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::type;
|
var uploadType = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::type;
|
||||||
console.log("uploadType: " + uploadType);
|
console.log("uploadType: " + uploadType);
|
||||||
|
|
||||||
|
@ -555,17 +463,17 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
filesSelected += files[i].name + fileDelimiter;
|
filesSelected += files[i].name + fileDelimiter;
|
||||||
}
|
}
|
||||||
console.log("filesSelected: " + filesSelected);
|
console.log("filesSelected: " + filesSelected);
|
||||||
|
|
||||||
// var files = filese
|
// var files = filese
|
||||||
// var files = filesSelected.split(fileDelimiter);
|
// var files = filesSelected.split(fileDelimiter);
|
||||||
console.log("files: " + files);
|
console.log("files: " + files);
|
||||||
|
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::isLimitExceeded(I)(files.length);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::isLimitExceeded(I)(files.length);
|
||||||
|
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;)(filesSelected,idfolder);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;)(filesSelected,idfolder);
|
||||||
|
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::createJsonKeyForFiles()();
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::createJsonKeyForFiles()();
|
||||||
|
|
||||||
var jsonKeys = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::jsonKeys;
|
var jsonKeys = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::jsonKeys;
|
||||||
console.log("jsonKeys: " + jsonKeys);
|
console.log("jsonKeys: " + jsonKeys);
|
||||||
|
|
||||||
|
@ -575,14 +483,14 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
// var upload = xhr.upload;
|
// var upload = xhr.upload;
|
||||||
|
|
||||||
// upload.fileIndex = i;
|
// upload.fileIndex = i;
|
||||||
// upload.fileObj = file;
|
// upload.fileObj = file;
|
||||||
// upload.downloadStartTime = new Date().getTime();
|
// upload.downloadStartTime = new Date().getTime();
|
||||||
// upload.currentStart = upload.downloadStartTime;
|
// upload.currentStart = upload.downloadStartTime;
|
||||||
// upload.currentProgress = 0;
|
// upload.currentProgress = 0;
|
||||||
// upload.startData = 0;
|
// upload.startData = 0;
|
||||||
|
|
||||||
// console.log("upload: " + upload.toString());
|
// console.log("upload: " + upload.toString());
|
||||||
// add listeners
|
// add listeners
|
||||||
|
|
||||||
|
@ -606,7 +514,7 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
formdata.append("isOverwrite", "false");
|
formdata.append("isOverwrite", "false");
|
||||||
|
|
||||||
// $wnd.exportCreateJsonKeyForFiles();
|
// $wnd.exportCreateJsonKeyForFiles();
|
||||||
//
|
//
|
||||||
// $wnd.exportAddNewSubmitToMonitor();
|
// $wnd.exportAddNewSubmitToMonitor();
|
||||||
|
|
||||||
formdata.append("client_upload_keys", jsonKeys);
|
formdata.append("client_upload_keys", jsonKeys);
|
||||||
|
@ -615,7 +523,9 @@ public class MultipleDilaogUpload extends DialogUpload {
|
||||||
formdata.append('uploadFormElement', file);
|
formdata.append('uploadFormElement', file);
|
||||||
|
|
||||||
xhr.send(formdata);
|
xhr.send(formdata);
|
||||||
|
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::addNewSubmitToMonitor()();
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.MultipleDilaogUpload::addNewSubmitToMonitor()();
|
||||||
|
|
||||||
// reader.readAsText(file);
|
// reader.readAsText(file);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.ClosableDialog;
|
import org.gcube.portlets.widgets.workspaceuploader.client.ClosableDialog;
|
||||||
import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader;
|
import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader;
|
||||||
|
@ -41,13 +45,15 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
* Sep 7, 2015
|
* Sep 7, 2015
|
||||||
*/
|
*/
|
||||||
public class UploaderMonitor {
|
public class UploaderMonitor {
|
||||||
|
|
||||||
private static UploaderMonitor instance;
|
private static UploaderMonitor instance;
|
||||||
private final static HandlerManager monitorEventBus = new HandlerManager(null);
|
private final static HandlerManager monitorEventBus = new HandlerManager(null);
|
||||||
private MonitorPanel monitorPanel = new MonitorPanel(monitorEventBus);
|
private MonitorPanel monitorPanel = new MonitorPanel(monitorEventBus);
|
||||||
private static Map<String, Timer> mapTimer = new HashMap<String, Timer>();
|
private static ArrayList<LinkedHashMap<String, WorkspaceUploaderItem>> queueUploads = new ArrayList<LinkedHashMap<String,WorkspaceUploaderItem>>();
|
||||||
|
|
||||||
private ClosableDialog dialogUploadMonitor = new ClosableDialog(monitorPanel, false, ConstantsWorkspaceUploader.MY_UPLOADS);
|
private ClosableDialog dialogUploadMonitor = new ClosableDialog(monitorPanel, false, ConstantsWorkspaceUploader.MY_UPLOADS);
|
||||||
|
private Map<String, Timer> currentTimersRun = new HashMap<String, Timer>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the single instance of UploaderMonitor.
|
* Gets the single instance of UploaderMonitor.
|
||||||
*
|
*
|
||||||
|
@ -59,7 +65,10 @@ public class UploaderMonitor {
|
||||||
}
|
}
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Instantiates a new uploader monitor.
|
||||||
|
*/
|
||||||
private UploaderMonitor(){
|
private UploaderMonitor(){
|
||||||
dialogUploadMonitor.setWidth("400px");
|
dialogUploadMonitor.setWidth("400px");
|
||||||
bindEvents();
|
bindEvents();
|
||||||
|
@ -69,43 +78,63 @@ public class UploaderMonitor {
|
||||||
* Bind events.
|
* Bind events.
|
||||||
*/
|
*/
|
||||||
private void bindEvents() {
|
private void bindEvents() {
|
||||||
|
|
||||||
monitorEventBus.addHandler(CancelUploadEvent.TYPE, new CancelUploadEventHandler() {
|
monitorEventBus.addHandler(CancelUploadEvent.TYPE, new CancelUploadEventHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCancelUpload(final CancelUploadEvent deleteTimerEvent) {
|
public void onCancelUpload(final CancelUploadEvent deleteTimerEvent) {
|
||||||
|
|
||||||
if(deleteTimerEvent.getUploader()==null)
|
if(deleteTimerEvent.getUploader()==null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
String clientKey = deleteTimerEvent.getUploader().getClientUploadKey();
|
final String clientKey = deleteTimerEvent.getUploader().getClientUploadKey();
|
||||||
Timer timer = mapTimer.get(clientKey);
|
final LinkedHashMap<String, WorkspaceUploaderItem> queue = getQueueFromClientUploadKey(clientKey);
|
||||||
GWT.log("Delete timer "+timer);
|
if(queue==null){
|
||||||
if(timer!=null && timer.isRunning()){
|
GWT.log("onCancelUpload mapUpload is null for key: "+clientKey +", return");
|
||||||
timer.cancel();
|
return;
|
||||||
mapTimer.put(clientKey, null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
RequestBuilder request = new RequestBuilder(RequestBuilder.GET,
|
final Timer timer = getTimer(clientKey);
|
||||||
ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM+"?"+ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS+"="+clientKey+"&"+ConstantsWorkspaceUploader.CANCEL_UPLOAD+"=true");
|
GWT.log("Client abort for timer with clientKey "+clientKey);
|
||||||
|
|
||||||
|
if(timer==null || !timer.isRunning()){
|
||||||
|
GWT.log("Timer abort skipping, timer for clientKey "+clientKey+" is null or not running");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//CANCELLING TIMER
|
||||||
|
timer.cancel();
|
||||||
|
// queue.put(clientKey, null);
|
||||||
|
|
||||||
|
/*if(timer!=null && timer.isRunning()){
|
||||||
|
timer.cancel();
|
||||||
|
// mapUpload.put(clientKey, null);
|
||||||
|
GWT.log("Aborted WorkspaceUploaderItem for key: "+clientKey);
|
||||||
|
// removeTimer(clientKey);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
RequestBuilder request = new RequestBuilder(RequestBuilder.GET, ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM+"?"+ConstantsWorkspaceUploader.CLIENT_UPLOAD_KEYS+"="+clientKey+"&"+ConstantsWorkspaceUploader.CANCEL_UPLOAD+"=true");
|
||||||
try {
|
try {
|
||||||
request.sendRequest(null, new RequestCallback() {
|
request.sendRequest(null, new RequestCallback() {
|
||||||
|
|
||||||
@SuppressWarnings("incomplete-switch")
|
|
||||||
@Override
|
@Override
|
||||||
public void onResponseReceived(Request request, Response response) {
|
public void onResponseReceived(Request request, Response response) {
|
||||||
String strippedResult = new HTML(response.getText()).getText();
|
String result = response.getText();
|
||||||
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(strippedResult);
|
GWT.log("onResponseReceived "+result);
|
||||||
|
final HandlerResultMessage resultMessage = HandlerResultMessage.parseResult(result);
|
||||||
switch (resultMessage.getStatus()) {
|
GWT.log("Cancel Upload Stream result: "+resultMessage);
|
||||||
case ERROR: {
|
if(resultMessage==null)
|
||||||
GWT.log("ERROR: Error during stop upload "+resultMessage.getMessage());
|
|
||||||
Window.alert("Sorry, An error occurred during upload abort!");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
case OK: {
|
switch(resultMessage.getStatus()){
|
||||||
|
case ERROR:{
|
||||||
|
GWT.log("ERROR: Error during stop upload "+resultMessage.getMessage());
|
||||||
|
Window.alert("Sorry, An error occurred during upload abort! "+resultMessage.getMessage());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case OK:{
|
||||||
UploaderProgressView upv = deleteTimerEvent.getProgessView();
|
UploaderProgressView upv = deleteTimerEvent.getProgessView();
|
||||||
VerticalPanel vp = upv.getPanel();
|
VerticalPanel vp = upv!=null?upv.getPanel():null;
|
||||||
if(vp!=null){
|
if(vp!=null){
|
||||||
vp.clear();
|
vp.clear();
|
||||||
HTML html = new HTML();
|
HTML html = new HTML();
|
||||||
|
@ -113,36 +142,132 @@ public class UploaderMonitor {
|
||||||
String text = "<div><img src='"+WorkspaceUploaderResources.getImageCancelRed().getUrl()+"'>";
|
String text = "<div><img src='"+WorkspaceUploaderResources.getImageCancelRed().getUrl()+"'>";
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>Upload "+deleteTimerEvent.getFileName()+ " aborted</span></div>";
|
text+="<span style='margin-left:5px; vertical-align: top;'>Upload "+deleteTimerEvent.getFileName()+ " aborted</span></div>";
|
||||||
html.setHTML(text);
|
html.setHTML(text);
|
||||||
|
|
||||||
|
//UPDATING STATUS AS ABORTED IN ORDER TO STOP THE TIMER
|
||||||
|
// WorkspaceUploaderItem workspaceUploader = mapUpload.get(clientKey);
|
||||||
|
// workspaceUploader.setUploadStatus(UPLOAD_STATUS.ABORTED);
|
||||||
|
// mapUpload.put(clientKey, workspaceUploader);
|
||||||
|
|
||||||
|
//UPDATING STATUS AS ABORTED IN ORDER TO STOP THE TIMER
|
||||||
|
GWT.log("Upload Aborted is OK");
|
||||||
|
timer.cancel();
|
||||||
|
// queue.remove(clientKey);
|
||||||
|
removeTimer(clientKey);
|
||||||
|
// int indexQueue = getQueueIndexFromClientUploadKey(clientKey);
|
||||||
|
// nextUploader(queue, indexQueue);
|
||||||
|
// queue.remove(clientKey);
|
||||||
|
// timer.cancel();
|
||||||
|
// removeTimer(clientKey);
|
||||||
|
// int indexQueue = getQueueIndexFromClientUploadKey(clientKey);
|
||||||
|
// nextUploader(queue, indexQueue);
|
||||||
|
|
||||||
deleteTimerEvent.getUploader().setUploadStatus(UPLOAD_STATUS.ABORTED);
|
deleteTimerEvent.getUploader().setUploadStatus(UPLOAD_STATUS.ABORTED);
|
||||||
notifyUploadAborted(deleteTimerEvent.getUploader().getFile().getParentId(), null);
|
notifyUploadAborted(deleteTimerEvent.getUploader().getFile().getParentId(), null);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
case UNKNOWN:
|
||||||
|
case WARN:{
|
||||||
|
GWT.log("UNKNOWN/WARN CASE: Error during stop upload "+resultMessage.getMessage());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// switch (resultMessage.getStatus()) {
|
||||||
|
// case ERROR: {
|
||||||
|
// GWT.log("ERROR: Error during stop upload "+resultMessage.getMessage());
|
||||||
|
// Window.alert("Sorry, An error occurred during upload abort! "+resultMessage.getMessage());
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// case OK: {
|
||||||
|
// UploaderProgressView upv = deleteTimerEvent.getProgessView();
|
||||||
|
// VerticalPanel vp = upv!=null?upv.getPanel():null;
|
||||||
|
// if(vp!=null){
|
||||||
|
// vp.clear();
|
||||||
|
// HTML html = new HTML();
|
||||||
|
// vp.add(html);
|
||||||
|
// String text = "<div><img src='"+WorkspaceUploaderResources.getImageCancelRed().getUrl()+"'>";
|
||||||
|
// text+="<span style='margin-left:5px; vertical-align: top;'>Upload "+deleteTimerEvent.getFileName()+ " aborted</span></div>";
|
||||||
|
// html.setHTML(text);
|
||||||
|
|
||||||
|
//UPDATING STATUS AS ABORTED IN ORDER TO STOP THE TIMER
|
||||||
|
// WorkspaceUploaderItem workspaceUploader = mapUpload.get(clientKey);
|
||||||
|
// workspaceUploader.setUploadStatus(UPLOAD_STATUS.ABORTED);
|
||||||
|
// mapUpload.put(clientKey, workspaceUploader);
|
||||||
|
|
||||||
|
// deleteTimerEvent.getUploader().setUploadStatus(UPLOAD_STATUS.ABORTED);
|
||||||
|
// notifyUploadAborted(deleteTimerEvent.getUploader().getFile().getParentId(), null);
|
||||||
|
// }
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// default:{
|
||||||
|
// GWT.log("UNKNOWN CASE: Error during stop upload "+resultMessage.getMessage());
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(Request request, Throwable exception) {
|
public void onError(Request request, Throwable exception) {
|
||||||
GWT.log("ERROR: Error during stop upload "+exception.getMessage());
|
GWT.log("ERROR: Error during stop upload "+exception.getMessage());
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (RequestException e) {
|
} catch (RequestException e) {
|
||||||
GWT.log("RequestException: Error during stop upload "+e.getMessage());
|
GWT.log("RequestException: Error during stop upload "+e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
monitorEventBus.addHandler(HideMonitorEvent.TYPE, new HideMonitorEventHandler() {
|
monitorEventBus.addHandler(HideMonitorEvent.TYPE, new HideMonitorEventHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onHideMonitor(HideMonitorEvent hideMonitorEvent) {
|
public void onHideMonitor(HideMonitorEvent hideMonitorEvent) {
|
||||||
dialogUploadMonitor.hide();
|
dialogUploadMonitor.hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the queue from client upload key.
|
||||||
|
*
|
||||||
|
* @param clientKey the client key
|
||||||
|
* @return the queue from client upload key, otherwise null;
|
||||||
|
*/
|
||||||
|
public LinkedHashMap<String, WorkspaceUploaderItem> getQueueFromClientUploadKey(String clientKey){
|
||||||
|
for (LinkedHashMap<String, WorkspaceUploaderItem> queue : queueUploads) {
|
||||||
|
if(queue!=null){
|
||||||
|
WorkspaceUploaderItem tm = queue.get(clientKey);
|
||||||
|
if(tm != null)
|
||||||
|
return queue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the queue index from client upload key.
|
||||||
|
*
|
||||||
|
* @param clientKey the client key
|
||||||
|
* @return the queue index from client upload key, otherwise -1;
|
||||||
|
*/
|
||||||
|
public int getQueueIndexFromClientUploadKey(String clientKey){
|
||||||
|
int index = -1;
|
||||||
|
for (LinkedHashMap<String, WorkspaceUploaderItem> queue : queueUploads) {
|
||||||
|
if(queue!=null){
|
||||||
|
index++;
|
||||||
|
WorkspaceUploaderItem tm = queue.get(clientKey);
|
||||||
|
if(tm != null)
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return index;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show monitor.
|
* Show monitor.
|
||||||
*/
|
*/
|
||||||
|
@ -152,67 +277,69 @@ public class UploaderMonitor {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the new submit.
|
* Adds the new uploader to monitor panel.
|
||||||
*
|
*
|
||||||
* @param uploader the uploader
|
* @param uploader the uploader
|
||||||
* @param fileName the file name
|
* @param fileName the file name
|
||||||
*/
|
*/
|
||||||
public void addNewSubmit(WorkspaceUploaderItem uploader, String fileName){
|
public void addNewUploaderToMonitorPanel(WorkspaceUploaderItem uploader, String fileName){
|
||||||
if(!dialogUploadMonitor.isShowing())
|
if(!dialogUploadMonitor.isShowing())
|
||||||
dialogUploadMonitor.center();
|
dialogUploadMonitor.center();
|
||||||
|
|
||||||
monitorPanel.newWorkspaceUploder(uploader, fileName);
|
monitorPanel.newWorkspaceUploder(uploader, fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Poll workspace uploader.
|
* Do polling.
|
||||||
*
|
*
|
||||||
* @param workspaceUploader the workspace uploader item
|
* @param workspaceUploader the workspace uploader
|
||||||
|
* @param queue the queue
|
||||||
|
* @param indexQueue the index queue
|
||||||
|
* @return the timer
|
||||||
*/
|
*/
|
||||||
public void pollWorkspaceUploader(final WorkspaceUploaderItem workspaceUploader){
|
/*private void doPolling(final WorkspaceUploaderItem workspaceUploader){
|
||||||
|
|
||||||
Timer timer = new Timer() {
|
Timer timer = new Timer() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
|
||||||
WorkspaceUploaderServiceAsync.Util.getInstance().getUploadStatus(workspaceUploader.getClientUploadKey(), new AsyncCallback<WorkspaceUploaderItem>() {
|
WorkspaceUploaderServiceAsync.Util.getInstance().getUploadStatus(workspaceUploader.getClientUploadKey(), new AsyncCallback<WorkspaceUploaderItem>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(WorkspaceUploaderItem result) {
|
public void onSuccess(WorkspaceUploaderItem result) {
|
||||||
// GWT.log("onSuccess: "+result.toString());
|
// GWT.log("onSuccess: "+result.toString());
|
||||||
synchronized(this){
|
synchronized(this){
|
||||||
Timer tmn = mapTimer.get(workspaceUploader.getClientUploadKey());
|
Timer tmn = queueTimers.get(workspaceUploader.getClientUploadKey());
|
||||||
if(tmn!=null && tmn.isRunning()){
|
if(tmn!=null && tmn.isRunning()){
|
||||||
if(result.getUploadStatus().equals(UPLOAD_STATUS.COMPLETED)){
|
if(result.getUploadStatus().equals(UPLOAD_STATUS.COMPLETED)){
|
||||||
GWT.log("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
GWT.log("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
||||||
mapTimer.remove(tmn);
|
queueTimers.remove(tmn);
|
||||||
|
|
||||||
if(!result.getIsOverwrite())
|
if(!result.getIsOverwrite())
|
||||||
notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
||||||
else
|
else
|
||||||
notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
||||||
|
|
||||||
cancel();
|
cancel();
|
||||||
}else if(result.getUploadStatus().equals(UPLOAD_STATUS.FAILED)){
|
}else if(result.getUploadStatus().equals(UPLOAD_STATUS.FAILED)){
|
||||||
GWT.log("Upload Failed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
GWT.log("Upload Failed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
||||||
mapTimer.remove(tmn);
|
queueTimers.remove(tmn);
|
||||||
notifyUploadError(result.getFile().getParentId(), null, null);
|
notifyUploadError(result.getFile().getParentId(), null, null);
|
||||||
// new DialogResult(null, "Upload Failed!!", result.getStatusDescription()).center();
|
// new DialogResult(null, "Upload Failed!!", result.getStatusDescription()).center();
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
monitorPanel.updateWorkspaceUploder(result);
|
monitorPanel.updateWorkspaceUploder(result);
|
||||||
// GWT.log(result.toString());
|
// GWT.log(result.toString());
|
||||||
}else{
|
}else{
|
||||||
GWT.log("Timer is null or already closed or completed");
|
GWT.log("Timer is null or already closed or completed");
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onFailure(Throwable caught) {
|
public void onFailure(Throwable caught) {
|
||||||
GWT.log("onFailure: "+caught.getMessage());
|
GWT.log("onFailure: "+caught.getMessage());
|
||||||
|
@ -220,13 +347,126 @@ public class UploaderMonitor {
|
||||||
cancel();
|
cancel();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mapTimer.put(workspaceUploader.getClientUploadKey(), timer);
|
queueTimers.put(workspaceUploader.getClientUploadKey(), timer);
|
||||||
|
timer.scheduleRepeating(2000);
|
||||||
|
|
||||||
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
public void startTimer(final WorkspaceUploaderItem workspaceUploader, final LinkedHashMap<String, WorkspaceUploaderItem> queue, final int indexQueue){
|
||||||
|
|
||||||
|
final Timer timer = new Timer() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
|
||||||
|
WorkspaceUploaderServiceAsync.Util.getInstance().getUploadStatus(workspaceUploader.getClientUploadKey(), new AsyncCallback<WorkspaceUploaderItem>() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WorkspaceUploaderItem result) {
|
||||||
|
// GWT.log("onSuccess: "+result.toString());
|
||||||
|
synchronized(this){
|
||||||
|
// Timer tmn = queue.get(workspaceUploader.getClientUploadKey());
|
||||||
|
if(isRunning()){
|
||||||
|
if(result.getUploadStatus()==null){
|
||||||
|
GWT.log("Upload status is null for: "+workspaceUploader.getClientUploadKey());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(result.getUploadStatus().equals(UPLOAD_STATUS.COMPLETED)){
|
||||||
|
GWT.log("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
||||||
|
queue.remove(workspaceUploader.getClientUploadKey());
|
||||||
|
|
||||||
|
if(!result.getIsOverwrite())
|
||||||
|
notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
||||||
|
else
|
||||||
|
notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
||||||
|
|
||||||
|
cancel();
|
||||||
|
removeTimer(workspaceUploader.getClientUploadKey());
|
||||||
|
nextUploader(queue, indexQueue);
|
||||||
|
}else if(result.getUploadStatus().equals(UPLOAD_STATUS.FAILED)){
|
||||||
|
GWT.log("Upload Failed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
||||||
|
queue.remove(workspaceUploader.getClientUploadKey());
|
||||||
|
notifyUploadError(result.getFile().getParentId(), null, null);
|
||||||
|
// new DialogResult(null, "Upload Failed!!", result.getStatusDescription()).center();
|
||||||
|
|
||||||
|
cancel();
|
||||||
|
removeTimer(workspaceUploader.getClientUploadKey());
|
||||||
|
nextUploader(queue, indexQueue);
|
||||||
|
}
|
||||||
|
// }else if(result.getUploadStatus().equals(UPLOAD_STATUS.ABORTED)){
|
||||||
|
// GWT.log("Upload Aborted "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
||||||
|
// cancel();
|
||||||
|
// removeTimer(workspaceUploader.getClientUploadKey());
|
||||||
|
// nextUploader(queue, indexQueue);
|
||||||
|
// }
|
||||||
|
|
||||||
|
monitorPanel.updateWorkspaceUploder(result);
|
||||||
|
// GWT.log(result.toString());
|
||||||
|
}else{
|
||||||
|
GWT.log("Timer is null or already closed or completed");
|
||||||
|
cancel();
|
||||||
|
removeTimer(workspaceUploader.getClientUploadKey());
|
||||||
|
nextUploader(queue, indexQueue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Throwable caught) {
|
||||||
|
GWT.log("onFailure: "+caught.getMessage());
|
||||||
|
cancel();
|
||||||
|
notifyUploadError(workspaceUploader.getFile().getParentId(), null, caught);
|
||||||
|
removeTimer(workspaceUploader.getClientUploadKey());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
GWT.log("Starting new timer for key: "+workspaceUploader.getClientUploadKey());
|
||||||
|
saveTimer(timer, workspaceUploader.getClientUploadKey());
|
||||||
timer.scheduleRepeating(2000);
|
timer.scheduleRepeating(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Removes the timer.
|
||||||
|
*
|
||||||
|
* @param clientKey the client key
|
||||||
|
*/
|
||||||
|
private synchronized void removeTimer(String clientKey){
|
||||||
|
Timer timer = currentTimersRun.get(clientKey);
|
||||||
|
if(timer!=null){
|
||||||
|
currentTimersRun.remove(clientKey);
|
||||||
|
GWT.log("Remove timer for key: "+clientKey+", performed correctly");
|
||||||
|
}else
|
||||||
|
GWT.log("Remove timer for key: "+clientKey+", skypped, already removed?");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save timer.
|
||||||
|
*
|
||||||
|
* @param timer the timer
|
||||||
|
* @param clientKey the client key
|
||||||
|
*/
|
||||||
|
private synchronized void saveTimer(Timer timer, String clientKey){
|
||||||
|
currentTimersRun.put(clientKey, timer);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the timer.
|
||||||
|
*
|
||||||
|
* @param clientKey the client key
|
||||||
|
* @return the timer
|
||||||
|
*/
|
||||||
|
private Timer getTimer(String clientKey){
|
||||||
|
return currentTimersRun.get(clientKey);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify upload completed.
|
* Notify upload completed.
|
||||||
*
|
*
|
||||||
|
@ -237,7 +477,7 @@ public class UploaderMonitor {
|
||||||
GWT.log("notifyOverwriteCompleted in monitor");
|
GWT.log("notifyOverwriteCompleted in monitor");
|
||||||
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.OVERWRITE_COMPLETED, parentId, itemId));
|
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.OVERWRITE_COMPLETED, parentId, itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify upload completed.
|
* Notify upload completed.
|
||||||
*
|
*
|
||||||
|
@ -248,7 +488,7 @@ public class UploaderMonitor {
|
||||||
GWT.log("notifyUploadCompleted in monitor");
|
GWT.log("notifyUploadCompleted in monitor");
|
||||||
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.UPLOAD_COMPLETED, parentId, itemId));
|
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.UPLOAD_COMPLETED, parentId, itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify upload aborted.
|
* Notify upload aborted.
|
||||||
*
|
*
|
||||||
|
@ -258,7 +498,7 @@ public class UploaderMonitor {
|
||||||
private void notifyUploadAborted(String parentId, String itemId){
|
private void notifyUploadAborted(String parentId, String itemId){
|
||||||
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.ABORTED, parentId, itemId));
|
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.ABORTED, parentId, itemId));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Notify upload error.
|
* Notify upload error.
|
||||||
*
|
*
|
||||||
|
@ -269,4 +509,135 @@ public class UploaderMonitor {
|
||||||
private void notifyUploadError(String parentId, String itemId, Throwable t){
|
private void notifyUploadError(String parentId, String itemId, Throwable t){
|
||||||
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.FAILED, parentId, itemId, t));
|
WorkspaceUploaderListenerController.getEventBus().fireEvent(new NotifyUploadEvent(UPLOAD_EVENT_TYPE.FAILED, parentId, itemId, t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* New queue.
|
||||||
|
*
|
||||||
|
* @return the int
|
||||||
|
*/
|
||||||
|
public synchronized int newQueue() {
|
||||||
|
|
||||||
|
int freeIndex = -1;
|
||||||
|
GWT.log("Current queue upload size is: "+queueUploads.size());
|
||||||
|
for(int i = 0; i < queueUploads.size(); i++){
|
||||||
|
if(queueUploads.get(i) == null){
|
||||||
|
freeIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GWT.log("Index for new queue uploads is: "+freeIndex);
|
||||||
|
|
||||||
|
if(freeIndex>=0 && freeIndex<queueUploads.size()){
|
||||||
|
GWT.log("Using set index: "+freeIndex);
|
||||||
|
queueUploads.set(freeIndex, new LinkedHashMap<String,WorkspaceUploaderItem>());
|
||||||
|
}else{
|
||||||
|
freeIndex= queueUploads.size();
|
||||||
|
GWT.log("Using add index: "+freeIndex);
|
||||||
|
queueUploads.add(freeIndex, new LinkedHashMap<String,WorkspaceUploaderItem>());
|
||||||
|
}
|
||||||
|
GWT.log("Returning new queue index: "+freeIndex);
|
||||||
|
return freeIndex;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete queue.
|
||||||
|
*
|
||||||
|
* @param index the index
|
||||||
|
*/
|
||||||
|
public synchronized void deleteQueue(int index) {
|
||||||
|
|
||||||
|
if(index<0){
|
||||||
|
GWT.log("Delete queue at invalid index: "+index +", skipping delete");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(queueUploads.get(index)!=null){
|
||||||
|
queueUploads.set(index, null);
|
||||||
|
GWT.log("Deleted queue at index: "+index);
|
||||||
|
}else
|
||||||
|
GWT.log("Queue at index: "+index +", not found, already deleted?, skipping");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds the new timer to queue.
|
||||||
|
*
|
||||||
|
* @param indexQueue the index queue
|
||||||
|
* @param workspaceUploaderItem the workspace uploader item
|
||||||
|
*/
|
||||||
|
public void addNewTimerToQueue(int indexQueue, WorkspaceUploaderItem workspaceUploaderItem) {
|
||||||
|
LinkedHashMap<String, WorkspaceUploaderItem> queue = queueUploads.get(indexQueue);
|
||||||
|
queue.put(workspaceUploaderItem.getClientUploadKey(), workspaceUploaderItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do start polling queue.
|
||||||
|
*
|
||||||
|
* @param index the index
|
||||||
|
*/
|
||||||
|
public synchronized void doStartPollingQueue(int index) {
|
||||||
|
LinkedHashMap<String, WorkspaceUploaderItem> queue = queueUploads.get(index);
|
||||||
|
|
||||||
|
if(queue.size()<0){
|
||||||
|
GWT.log("doStartPollingQueue return, queue size is < 0");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<String> keys = queue.keySet();
|
||||||
|
|
||||||
|
if(keys.size()==0){
|
||||||
|
GWT.log("no keys for queue index: "+index+", return");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkspaceUploaderItem workspaceUploader = getNextUploader(queue);
|
||||||
|
startTimer(workspaceUploader, queue, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the next uploader.
|
||||||
|
*
|
||||||
|
* @param queue the queue
|
||||||
|
* @return the next uploader
|
||||||
|
*/
|
||||||
|
public WorkspaceUploaderItem getNextUploader(LinkedHashMap<String, WorkspaceUploaderItem> queue){
|
||||||
|
Iterator<String> it = queue.keySet().iterator();
|
||||||
|
String firstKey = it.next();
|
||||||
|
|
||||||
|
if(firstKey==null || firstKey.isEmpty()){
|
||||||
|
GWT.log("getNextUploader return empty or null key, returning null");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return queue.get(firstKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Next uploader.
|
||||||
|
*
|
||||||
|
* @param queue the queue
|
||||||
|
* @param indexQueue the index queue
|
||||||
|
*/
|
||||||
|
public synchronized void nextUploader(LinkedHashMap<String, WorkspaceUploaderItem> queue, int indexQueue){
|
||||||
|
|
||||||
|
if(queue.keySet().size()==0){
|
||||||
|
GWT.log("nextUploader return, queue size is = 0, deleting queue");
|
||||||
|
deleteQueue(indexQueue);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
WorkspaceUploaderItem workspaceUploader = getNextUploader(queue);
|
||||||
|
|
||||||
|
if(workspaceUploader==null){
|
||||||
|
GWT.log("nextUploader return a null uploader, deleting queue");
|
||||||
|
deleteQueue(indexQueue);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
startTimer(workspaceUploader, queue, indexQueue);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ import com.google.gwt.user.client.ui.VerticalPanel;
|
||||||
* Oct 12, 2015
|
* Oct 12, 2015
|
||||||
*/
|
*/
|
||||||
public class UploaderProgressView {
|
public class UploaderProgressView {
|
||||||
|
|
||||||
private VerticalPanel vp = new VerticalPanel();
|
private VerticalPanel vp = new VerticalPanel();
|
||||||
private static final int MAX_CHARS = 50;
|
private static final int MAX_CHARS = 50;
|
||||||
private HorizontalPanel hp = new HorizontalPanel();
|
private HorizontalPanel hp = new HorizontalPanel();
|
||||||
|
@ -38,7 +38,7 @@ public class UploaderProgressView {
|
||||||
private HandlerManager eventBus;
|
private HandlerManager eventBus;
|
||||||
private boolean cancel = false;
|
private boolean cancel = false;
|
||||||
private Image cancelImg = null;
|
private Image cancelImg = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new uploader progress view.
|
* Instantiates a new uploader progress view.
|
||||||
*
|
*
|
||||||
|
@ -53,27 +53,27 @@ public class UploaderProgressView {
|
||||||
cancelImg.addStyleName("cancel-upload");
|
cancelImg.addStyleName("cancel-upload");
|
||||||
hpBar.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
hpBar.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||||
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||||
|
|
||||||
String text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
String text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
||||||
String msg = StringUtil.ellipsize("Uploading "+fileName, MAX_CHARS, 0);
|
String msg = StringUtil.ellipsize("Uploading "+fileName, MAX_CHARS, 0);
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>"+msg+"</span>";
|
text+="<span style='margin-left:5px; vertical-align: top;'>"+msg+"</span>";
|
||||||
text+="</div>";
|
text+="</div>";
|
||||||
|
|
||||||
html.setHTML(text);
|
html.setHTML(text);
|
||||||
html.setTitle("Uploading "+fileName);
|
html.setTitle("Uploading "+fileName);
|
||||||
hp.add(html);
|
hp.add(html);
|
||||||
|
|
||||||
bar.update(0);
|
bar.update(0);
|
||||||
setVisibleBar(false);
|
setVisibleBar(false);
|
||||||
setVisibleCancel(false);
|
setVisibleCancel(false);
|
||||||
vp.add(hp);
|
vp.add(hp);
|
||||||
|
|
||||||
hpBar.add(cancelImg);
|
hpBar.add(cancelImg);
|
||||||
hpBar.add(bar);
|
hpBar.add(bar);
|
||||||
vp.add(hpBar);
|
vp.add(hpBar);
|
||||||
// vp.add(bar);
|
// vp.add(bar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param b
|
* @param b
|
||||||
*/
|
*/
|
||||||
|
@ -84,7 +84,7 @@ public class UploaderProgressView {
|
||||||
public void setVisibleBar(boolean bool){
|
public void setVisibleBar(boolean bool){
|
||||||
bar.setVisible(bool);
|
bar.setVisible(bool);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Update.
|
* Update.
|
||||||
*
|
*
|
||||||
|
@ -92,80 +92,84 @@ public class UploaderProgressView {
|
||||||
*/
|
*/
|
||||||
public void update(WorkspaceUploaderItem uploader){
|
public void update(WorkspaceUploaderItem uploader){
|
||||||
String text;
|
String text;
|
||||||
switch(uploader.getUploadStatus()){
|
try{
|
||||||
case COMPLETED:
|
switch(uploader.getUploadStatus()){
|
||||||
setVisibleBar(true);
|
case COMPLETED:
|
||||||
text = "<div><img src='"+WorkspaceUploaderResources.getImageCompleted().getUrl()+"'>";
|
setVisibleBar(true);
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(uploader.getFile().getFileName()+" uploaded successfully!", MAX_CHARS, 0)+"</span></div>";
|
text = "<div><img src='"+WorkspaceUploaderResources.getImageCompleted().getUrl()+"'>";
|
||||||
// GWT.log(text);
|
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(uploader.getFile().getFileName()+" uploaded successfully!", MAX_CHARS, 0)+"</span></div>";
|
||||||
html.setHTML(text);
|
// GWT.log(text);
|
||||||
html.setTitle(uploader.getStatusDescription());
|
html.setHTML(text);
|
||||||
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
html.setTitle(uploader.getStatusDescription());
|
||||||
try{
|
|
||||||
hpBar.clear();
|
|
||||||
}catch (Exception e) {}
|
|
||||||
break;
|
|
||||||
case FAILED:
|
|
||||||
setVisibleBar(true);
|
|
||||||
text = "<div><img src='"+WorkspaceUploaderResources.getImageFailed().getUrl()+"'>";
|
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(uploader.getStatusDescription(), MAX_CHARS, 0)+"</span></div>";
|
|
||||||
// GWT.log(text);
|
|
||||||
html.setHTML(text);
|
|
||||||
html.setTitle(uploader.getStatusDescription());
|
|
||||||
// bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
|
||||||
try{
|
|
||||||
hpBar.clear();
|
|
||||||
}catch (Exception e) {}
|
|
||||||
break;
|
|
||||||
case IN_PROGRESS:
|
|
||||||
setVisibleBar(true);
|
|
||||||
// text = "<div><img src='"+WorkspaceUploaderResources.getImageUpload().getUrl()+"'>";
|
|
||||||
text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
|
||||||
String msg = StringUtil.ellipsize(uploader.getFile().getFileName(), MAX_CHARS, 0);
|
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>"+msg+"</span>";
|
|
||||||
text+="</div>";
|
|
||||||
// GWT.log(text);
|
|
||||||
html.setHTML(text);
|
|
||||||
html.setTitle(uploader.getStatusDescription());
|
|
||||||
|
|
||||||
if(uploader.getUploadProgress().getLastEvent().getReadPercentage()!=100 && !cancel){
|
|
||||||
cancel = true;
|
|
||||||
handleCancelUpload(uploader);
|
|
||||||
setVisibleCancel(true);
|
|
||||||
}else if(uploader.getUploadProgress().getLastEvent().getReadPercentage()==100 && cancel){
|
|
||||||
try{
|
|
||||||
setVisibleCancel(false);
|
|
||||||
// hp.remove(cancelImg);
|
|
||||||
}catch (Exception e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
|
||||||
break;
|
|
||||||
case WAIT:
|
|
||||||
setVisibleBar(false);
|
|
||||||
text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
|
||||||
String descr = "";
|
|
||||||
if(uploader.getFile()!=null && uploader.getFile().getFileName()!=null)
|
|
||||||
descr = uploader.getFile().getFileName();
|
|
||||||
else
|
|
||||||
descr = uploader.getStatusDescription();
|
|
||||||
|
|
||||||
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(descr, MAX_CHARS, 0)+"</span></div>";
|
|
||||||
text+="</div>";
|
|
||||||
// GWT.log(text);
|
|
||||||
html.setHTML(text);
|
|
||||||
|
|
||||||
if(uploader.getUploadProgress()!=null && uploader.getUploadProgress().getLastEvent()!=null)
|
|
||||||
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
||||||
else
|
try{
|
||||||
bar.update(0);
|
hpBar.clear();
|
||||||
|
}catch (Exception e) {}
|
||||||
break;
|
break;
|
||||||
default:
|
case FAILED:
|
||||||
break;
|
setVisibleBar(true);
|
||||||
|
text = "<div><img src='"+WorkspaceUploaderResources.getImageFailed().getUrl()+"'>";
|
||||||
|
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(uploader.getStatusDescription(), MAX_CHARS, 0)+"</span></div>";
|
||||||
|
// GWT.log(text);
|
||||||
|
html.setHTML(text);
|
||||||
|
html.setTitle(uploader.getStatusDescription());
|
||||||
|
// bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
||||||
|
try{
|
||||||
|
hpBar.clear();
|
||||||
|
}catch (Exception e) {}
|
||||||
|
break;
|
||||||
|
case IN_PROGRESS:
|
||||||
|
setVisibleBar(true);
|
||||||
|
// text = "<div><img src='"+WorkspaceUploaderResources.getImageUpload().getUrl()+"'>";
|
||||||
|
text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
||||||
|
String msg = StringUtil.ellipsize(uploader.getFile().getFileName(), MAX_CHARS, 0);
|
||||||
|
text+="<span style='margin-left:5px; vertical-align: top;'>"+msg+"</span>";
|
||||||
|
text+="</div>";
|
||||||
|
// GWT.log(text);
|
||||||
|
html.setHTML(text);
|
||||||
|
html.setTitle(uploader.getStatusDescription());
|
||||||
|
|
||||||
|
if(uploader.getUploadProgress().getLastEvent().getReadPercentage()!=100 && !cancel){
|
||||||
|
cancel = true;
|
||||||
|
handleCancelUpload(uploader);
|
||||||
|
setVisibleCancel(true);
|
||||||
|
}else if(uploader.getUploadProgress().getLastEvent().getReadPercentage()==100 && cancel){
|
||||||
|
try{
|
||||||
|
setVisibleCancel(false);
|
||||||
|
// hp.remove(cancelImg);
|
||||||
|
}catch (Exception e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
||||||
|
break;
|
||||||
|
case WAIT:
|
||||||
|
setVisibleBar(false);
|
||||||
|
text = "<div><img src='"+WorkspaceUploaderResources.getImageLoading().getUrl()+"'>";
|
||||||
|
String descr = "";
|
||||||
|
if(uploader.getFile()!=null && uploader.getFile().getFileName()!=null)
|
||||||
|
descr = uploader.getFile().getFileName();
|
||||||
|
else
|
||||||
|
descr = uploader.getStatusDescription();
|
||||||
|
|
||||||
|
text+="<span style='margin-left:5px; vertical-align: top;'>"+StringUtil.ellipsize(descr, MAX_CHARS, 0)+"</span></div>";
|
||||||
|
text+="</div>";
|
||||||
|
// GWT.log(text);
|
||||||
|
html.setHTML(text);
|
||||||
|
|
||||||
|
if(uploader.getUploadProgress()!=null && uploader.getUploadProgress().getLastEvent()!=null)
|
||||||
|
bar.update(uploader.getUploadProgress().getLastEvent().getReadPercentage());
|
||||||
|
else
|
||||||
|
bar.update(0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}catch(Exception e) {
|
||||||
|
GWT.log("error during update");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handle cancel upload.
|
* Handle cancel upload.
|
||||||
*
|
*
|
||||||
|
@ -175,7 +179,7 @@ public class UploaderProgressView {
|
||||||
private Image handleCancelUpload(final WorkspaceUploaderItem uploader){
|
private Image handleCancelUpload(final WorkspaceUploaderItem uploader){
|
||||||
|
|
||||||
cancelImg.addClickHandler(new ClickHandler() {
|
cancelImg.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
GWT.log("Click cancel");
|
GWT.log("Click cancel");
|
||||||
|
@ -194,7 +198,7 @@ public class UploaderProgressView {
|
||||||
});
|
});
|
||||||
return cancelImg;
|
return cancelImg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the panel.
|
* Gets the panel.
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
||||||
|
|
||||||
|
@ -24,13 +24,13 @@ import com.google.gwt.user.client.Window;
|
||||||
* Oct 20, 2015
|
* Oct 20, 2015
|
||||||
*/
|
*/
|
||||||
public class WorkspaceFieldsUploadManager {
|
public class WorkspaceFieldsUploadManager {
|
||||||
|
|
||||||
//FORM FIELD TO UPLOAD INTO WORKSPACE
|
//FORM FIELD TO UPLOAD INTO WORKSPACE
|
||||||
private String jsonKeys;
|
private String jsonKeys;
|
||||||
public static final String FILE_DELEMITER = ";";
|
public static final String FILE_DELEMITER = ";";
|
||||||
private List<WorkspaceUploaderItem> fakeUploaders = new ArrayList<WorkspaceUploaderItem>();
|
private List<WorkspaceUploaderItem> fakeUploaders = new ArrayList<WorkspaceUploaderItem>();
|
||||||
|
|
||||||
|
|
||||||
public WorkspaceFieldsUploadManager() {
|
public WorkspaceFieldsUploadManager() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,29 +41,32 @@ public class WorkspaceFieldsUploadManager {
|
||||||
* @return true, if is limit exceeded
|
* @return true, if is limit exceeded
|
||||||
*/
|
*/
|
||||||
public boolean isLimitExceeded(int numbOfFiles){
|
public boolean isLimitExceeded(int numbOfFiles){
|
||||||
|
|
||||||
if (numbOfFiles > ConstantsWorkspaceUploader.LIMIT_UPLOADS) {
|
if (numbOfFiles > ConstantsWorkspaceUploader.LIMIT_UPLOADS) {
|
||||||
Window.alert("Multiple upload limit is "
|
Window.alert("Multiple upload limit is "
|
||||||
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS
|
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS
|
||||||
+ " files");
|
+ " files");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds the new submit to monitor.
|
* Adds the new submit to monitor.
|
||||||
*/
|
*/
|
||||||
public void addNewSubmitToMonitor(){
|
public void addNewSubmitToMonitor(){
|
||||||
GWT.log("addNewSubmitToMonitor...");
|
GWT.log("addNewSubmitToMonitor...");
|
||||||
|
int queueIndex = UploaderMonitor.getInstance().newQueue();
|
||||||
for (final WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
for (final WorkspaceUploaderItem workspaceUploaderItem : fakeUploaders) {
|
||||||
UploaderMonitor.getInstance().addNewSubmit(workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
UploaderMonitor.getInstance().addNewUploaderToMonitorPanel(workspaceUploaderItem, workspaceUploaderItem.getFile().getFileName());
|
||||||
UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem);
|
UploaderMonitor.getInstance().addNewTimerToQueue(queueIndex, workspaceUploaderItem);
|
||||||
|
// UploaderMonitor.getInstance().pollWorkspaceUploader(workspaceUploaderItem);
|
||||||
}
|
}
|
||||||
|
UploaderMonitor.getInstance().doStartPollingQueue(queueIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates the json key for files.
|
* Creates the json key for files.
|
||||||
*
|
*
|
||||||
|
@ -76,14 +79,14 @@ public class WorkspaceFieldsUploadManager {
|
||||||
JSONArray jsonArray = new JSONArray();
|
JSONArray jsonArray = new JSONArray();
|
||||||
productObj.put(ConstantsWorkspaceUploader.JSON_CLIENT_KEYS, jsonArray);
|
productObj.put(ConstantsWorkspaceUploader.JSON_CLIENT_KEYS, jsonArray);
|
||||||
// GWT.log("Creating json keys on fakeUploaders: "+fakeUploaders.toString());
|
// GWT.log("Creating json keys on fakeUploaders: "+fakeUploaders.toString());
|
||||||
|
|
||||||
for (int i = 0; i < fakeUploaders.size(); i++) {
|
for (int i = 0; i < fakeUploaders.size(); i++) {
|
||||||
WorkspaceUploaderItem file = fakeUploaders.get(i);
|
WorkspaceUploaderItem file = fakeUploaders.get(i);
|
||||||
JSONObject obj = new JSONObject();
|
JSONObject obj = new JSONObject();
|
||||||
obj.put(file.getClientUploadKey(), new JSONString(file.getFile().getFileName()));
|
obj.put(file.getClientUploadKey(), new JSONString(file.getFile().getFileName()));
|
||||||
jsonArray.set(i, obj);
|
jsonArray.set(i, obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonKeys = productObj.toString();
|
jsonKeys = productObj.toString();
|
||||||
GWT.log("updated jsonKeys: "+jsonKeys);
|
GWT.log("updated jsonKeys: "+jsonKeys);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -91,7 +94,7 @@ public class WorkspaceFieldsUploadManager {
|
||||||
jsonKeys = null;
|
jsonKeys = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generate new upload client keys.
|
* Generate new upload client keys.
|
||||||
*
|
*
|
||||||
|
@ -100,12 +103,12 @@ public class WorkspaceFieldsUploadManager {
|
||||||
* @return the list
|
* @return the list
|
||||||
*/
|
*/
|
||||||
public void generateFakeUploaders(String filesSelected, String parentId) {
|
public void generateFakeUploaders(String filesSelected, String parentId) {
|
||||||
|
|
||||||
if(filesSelected==null || filesSelected.isEmpty())
|
if(filesSelected==null || filesSelected.isEmpty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
String[] files = filesSelected.split(FILE_DELEMITER);
|
String[] files = filesSelected.split(FILE_DELEMITER);
|
||||||
|
|
||||||
// NORMALIZE FILE NAMES
|
// NORMALIZE FILE NAMES
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
String normalizedFileName = files[i];
|
String normalizedFileName = files[i];
|
||||||
|
@ -116,7 +119,7 @@ public class WorkspaceFieldsUploadManager {
|
||||||
// exists
|
// exists
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GWT.log("generating fake uploaders on: "+files.toString());
|
GWT.log("generating fake uploaders on: "+files.toString());
|
||||||
fakeUploaders = new ArrayList<WorkspaceUploaderItem>(files.length);
|
fakeUploaders = new ArrayList<WorkspaceUploaderItem>(files.length);
|
||||||
for (int i = 0; i < files.length; i++) {
|
for (int i = 0; i < files.length; i++) {
|
||||||
|
@ -129,10 +132,10 @@ public class WorkspaceFieldsUploadManager {
|
||||||
fakeItem.setFile(fakeFile);
|
fakeItem.setFile(fakeFile);
|
||||||
fakeUploaders.add(fakeItem);
|
fakeUploaders.add(fakeItem);
|
||||||
}
|
}
|
||||||
|
|
||||||
GWT.log("fakeUploaders generated: "+fakeUploaders.toString());
|
GWT.log("fakeUploaders generated: "+fakeUploaders.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the jsonKeys
|
* @return the jsonKeys
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop;
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop;
|
||||||
|
|
||||||
|
@ -37,10 +37,10 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
private String servlet = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM;
|
private String servlet = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVLET_STREAM;
|
||||||
private String service = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVICE;
|
private String service = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_SERVICE;
|
||||||
private String workspaceUtil = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_WS_UTIL;
|
private String workspaceUtil = ConstantsWorkspaceUploader.WORKSPACE_UPLOADER_WS_UTIL;
|
||||||
|
|
||||||
private String folder_parent_id = ConstantsWorkspaceUploader.FOLDER_PARENT_ID;
|
private String folder_parent_id = ConstantsWorkspaceUploader.FOLDER_PARENT_ID;
|
||||||
private String item_name = ConstantsWorkspaceUploader.ITEM_NAME;
|
private String item_name = ConstantsWorkspaceUploader.ITEM_NAME;
|
||||||
|
|
||||||
public static final String FILE_DELEMITER = ";";
|
public static final String FILE_DELEMITER = ";";
|
||||||
private Widget onlyChild;
|
private Widget onlyChild;
|
||||||
|
|
||||||
|
@ -64,14 +64,14 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
// ScriptInjector.fromUrl("workspaceuploader/dndhtmlfileupload.js")
|
// ScriptInjector.fromUrl("workspaceuploader/dndhtmlfileupload.js")
|
||||||
// .setWindow(ScriptInjector.TOP_WINDOW).inject();
|
// .setWindow(ScriptInjector.TOP_WINDOW).inject();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.google.gwt.user.client.ui.LayoutPanel#onAttach()
|
* @see com.google.gwt.user.client.ui.LayoutPanel#onAttach()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void onAttach() {
|
protected void onAttach() {
|
||||||
super.onAttach();
|
super.onAttach();
|
||||||
|
|
||||||
if(onlyChild!=null){
|
if(onlyChild!=null){
|
||||||
onlyChild.getElement().setId("drop_target_only_child");
|
onlyChild.getElement().setId("drop_target_only_child");
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see com.google.gwt.user.client.ui.Widget#onLoad()
|
* @see com.google.gwt.user.client.ui.Widget#onLoad()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@ -161,7 +161,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
Window.alert("Multiple upload limit is "
|
Window.alert("Multiple upload limit is "
|
||||||
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS + " files");
|
+ ConstantsWorkspaceUploader.LIMIT_UPLOADS + " files");
|
||||||
return isLimitExceeded = true;
|
return isLimitExceeded = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return isLimitExceeded = false;
|
return isLimitExceeded = false;
|
||||||
|
@ -307,19 +307,26 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
String fileDelimiter) /*-{
|
String fileDelimiter) /*-{
|
||||||
|
|
||||||
console.log("initW3CFileReader");
|
console.log("initW3CFileReader");
|
||||||
|
|
||||||
function makeSyncAjaxCall(url, params, msgText, conType){
|
function isFileOverwrite(url, params, msgText){
|
||||||
var xhReq = new XMLHttpRequest();
|
var xhReq = new XMLHttpRequest();
|
||||||
xhReq.open(conType, url+"?"+params, false);
|
xhReq.open("GET", url+"?"+params, false); //SYNCRONUS CALL
|
||||||
if (conType == "POST")
|
|
||||||
xhReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
|
||||||
|
|
||||||
xhReq.send(msgText);
|
xhReq.send(msgText);
|
||||||
if(xhReq.status==200){
|
if(xhReq.readyState==4 && xhReq.status==200) {
|
||||||
console.log(xhReq.responseText);
|
var content = xhReq.responseText;
|
||||||
return xhReq.responseText;
|
console.log("responseText:" +content);
|
||||||
}else
|
if(content!=undefined && content=='null'){
|
||||||
|
console.log("isFileOverwrite response ok, responseText is null, returning null");
|
||||||
|
return null;
|
||||||
|
}else{
|
||||||
|
console.log("isFileOverwrite response ok, responseText "+content);
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
}else if(xhReq.readyState==4 && xhReq.status!=200){
|
||||||
|
console.log("isFileOverwrite error on status, returning null");
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function generateUUID() {
|
function generateUUID() {
|
||||||
|
@ -335,16 +342,6 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
|
|
||||||
//DROP CHECK IF CONTAINS FILES
|
//DROP CHECK IF CONTAINS FILES
|
||||||
function containsFiles(items) {
|
function containsFiles(items) {
|
||||||
// if (dataTransfer.types) {
|
|
||||||
// for (var i = 0; i < dataTransfer.types.length; i++) {
|
|
||||||
// console.log("dataTransfer.types[i] "+dataTransfer.types[i]);
|
|
||||||
// if (dataTransfer.types[i] != "Files") {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return true;
|
|
||||||
|
|
||||||
if (items) {
|
if (items) {
|
||||||
|
|
||||||
for (i = 0; i < items.length; i++) {
|
for (i = 0; i < items.length; i++) {
|
||||||
|
@ -374,7 +371,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
console.log("before load");
|
console.log("before load");
|
||||||
var drop = $wnd.$('#drop_target')[0];
|
var drop = $wnd.$('#drop_target')[0];
|
||||||
$wnd.$('#drop_target_outer')[0].style.display = "none";
|
$wnd.$('#drop_target_outer')[0].style.display = "none";
|
||||||
|
|
||||||
console.log("drop is " + drop);
|
console.log("drop is " + drop);
|
||||||
|
|
||||||
function cancel(e) {
|
function cancel(e) {
|
||||||
|
@ -425,7 +422,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
$wnd.$('#drop_target_inner')[0].className = "";
|
$wnd.$('#drop_target_inner')[0].className = "";
|
||||||
// $wnd.$('#drop_target_only_child')[0].style.display = "none";
|
// $wnd.$('#drop_target_only_child')[0].style.display = "none";
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setVisibleOnlyChild(Z)(false);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setVisibleOnlyChild(Z)(false);
|
||||||
|
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
if (containsFiles(e)) {
|
if (containsFiles(e)) {
|
||||||
console.log("The drag event contains files");
|
console.log("The drag event contains files");
|
||||||
|
@ -456,7 +453,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
e = e || window.event; // get window.event if e argument missing (in IE)
|
e = e || window.event; // get window.event if e argument missing (in IE)
|
||||||
if (e.preventDefault) {
|
if (e.preventDefault) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
} //
|
} //
|
||||||
console.log('dragover');
|
console.log('dragover');
|
||||||
drop.className = "over-true";
|
drop.className = "over-true";
|
||||||
$wnd.$('#drop_target_outer')[0].style.display = "";
|
$wnd.$('#drop_target_outer')[0].style.display = "";
|
||||||
|
@ -523,19 +520,19 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("# of file/s: " + files.length);
|
console.log("# of file/s: " + files.length);
|
||||||
|
|
||||||
var numFolder = 0;
|
var numFolder = 0;
|
||||||
for (var i = 0; i < files.length; i++) {
|
for (var i = 0; i < files.length; i++) {
|
||||||
var file = files[i];
|
var file = files[i];
|
||||||
var filesSelected = files[i].name + fileDelimiter;
|
var filesSelected = files[i].name + fileDelimiter;
|
||||||
if (!isFolder(file)) {
|
if (!isFolder(file)) {
|
||||||
|
|
||||||
console.log("filesSelected: " + filesSelected);
|
console.log("filesSelected: " + filesSelected);
|
||||||
console.log("files: " + files);
|
console.log("files: " + files);
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(filesSelected,idfolder,uploadUUID);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::generateFakeUploaders(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(filesSelected,idfolder,uploadUUID);
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::createJsonKeyForFiles(Ljava/lang/String;)(uploadUUID);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::createJsonKeyForFiles(Ljava/lang/String;)(uploadUUID);
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::updateJsonKeys(Ljava/lang/String;)(uploadUUID);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::updateJsonKeys(Ljava/lang/String;)(uploadUUID);
|
||||||
|
|
||||||
var jsonKeysMap = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::jsonKeys;
|
var jsonKeysMap = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::jsonKeys;
|
||||||
console.log("jsonKeysMap: " + jsonKeysMap);
|
console.log("jsonKeysMap: " + jsonKeysMap);
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setCurrentJsonKeValue(Ljava/lang/String;)(uploadUUID);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::setCurrentJsonKeValue(Ljava/lang/String;)(uploadUUID);
|
||||||
|
@ -543,27 +540,27 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
console.log("keyVal: " + keyVal);
|
console.log("keyVal: " + keyVal);
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
// var upload = xhr.upload;
|
// var upload = xhr.upload;
|
||||||
|
|
||||||
// upload.fileIndex = i;
|
// upload.fileIndex = i;
|
||||||
// upload.fileObj = file;
|
// upload.fileObj = file;
|
||||||
// upload.downloadStartTime = new Date().getTime();
|
// upload.downloadStartTime = new Date().getTime();
|
||||||
// upload.currentStart = upload.downloadStartTime;
|
// upload.currentStart = upload.downloadStartTime;
|
||||||
// upload.currentProgress = 0;
|
// upload.currentProgress = 0;
|
||||||
// upload.startData = 0;
|
// upload.startData = 0;
|
||||||
|
|
||||||
// console.log("upload: " + upload.toString());
|
// console.log("upload: " + upload.toString());
|
||||||
// add listeners
|
// add listeners
|
||||||
|
|
||||||
// upload.addEventListener("progress", progress, false);
|
// upload.addEventListener("progress", progress, false);
|
||||||
// upload.addEventListener("load", load, false);
|
// upload.addEventListener("load", load, false);
|
||||||
|
|
||||||
xhr.open(opts.type, opts.url, true);
|
xhr.open(opts.type, opts.url, true);
|
||||||
// var boundary = "AJAX--------------" + (new Date).getTime();
|
// var boundary = "AJAX--------------" + (new Date).getTime();
|
||||||
// var contentType = "multipart/form-data; boundary=" + boundary;
|
// var contentType = "multipart/form-data; boundary=" + boundary;
|
||||||
// xhr.setRequestHeader("Content-Type", contentType);
|
// xhr.setRequestHeader("Content-Type", contentType);
|
||||||
// Use native function(Chrome 5+ ,Safari 5+ and Firefox 4+), for dealing
|
// Use native function(Chrome 5+ ,Safari 5+ and Firefox 4+), for dealing
|
||||||
// with multipart/form-data and boundray generation
|
// with multipart/form-data and boundray generation
|
||||||
|
|
||||||
var formdata = new FormData();
|
var formdata = new FormData();
|
||||||
formdata.append("client_upload_keys", keyVal);
|
formdata.append("client_upload_keys", keyVal);
|
||||||
formdata.append("uploadType", uploadType);
|
formdata.append("uploadType", uploadType);
|
||||||
|
@ -578,8 +575,8 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
console.log("item_name: " + item_name);
|
console.log("item_name: " + item_name);
|
||||||
var params = folder_parent_id+"="+idfolder+"&"+item_name+"="+files[i].name
|
var params = folder_parent_id+"="+idfolder+"&"+item_name+"="+files[i].name
|
||||||
console.log("params: " + params);
|
console.log("params: " + params);
|
||||||
var response = makeSyncAjaxCall(wsUtil, params, "", "GET");
|
var response = isFileOverwrite(wsUtil, params, "");
|
||||||
console.log("response: " + response);
|
console.log("response overwrite: " + response);
|
||||||
if(response!=null && response!=undefined){
|
if(response!=null && response!=undefined){
|
||||||
console.log("overwrite confirm?");
|
console.log("overwrite confirm?");
|
||||||
if($wnd.confirm(files[i].name+" exists in folder. Overwrite?")){
|
if($wnd.confirm(files[i].name+" exists in folder. Overwrite?")){
|
||||||
|
@ -588,22 +585,22 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
}else{
|
}else{
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::reset()();
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::reset()();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
formdata.append("isOverwrite", overwrite);
|
formdata.append("isOverwrite", overwrite);
|
||||||
//*********uploadFormElement MUST BE THE LAST!!!
|
//*********uploadFormElement MUST BE THE LAST!!!
|
||||||
formdata.append('uploadFormElement', file);
|
formdata.append('uploadFormElement', file);
|
||||||
xhr.send(formdata);
|
xhr.send(formdata);
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::addNewSubmitToMonitor(Ljava/lang/String;)(uploadUUID);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::addNewSubmitToMonitor(Ljava/lang/String;)(uploadUUID);
|
||||||
|
|
||||||
// reader.readAsText(file);
|
// reader.readAsText(file);
|
||||||
}else{
|
}else{
|
||||||
numFolder++;
|
numFolder++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(numFolder>0){
|
if(numFolder>0){
|
||||||
var msg;
|
var msg;
|
||||||
if(numFolder==files.length){
|
if(numFolder==files.length){
|
||||||
|
@ -611,7 +608,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::showAlert(Ljava/lang/String;)(msg);
|
instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::showAlert(Ljava/lang/String;)(msg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var msg = "Ignored ";
|
var msg = "Ignored ";
|
||||||
msg += numFolder > 1? numFolder+" folders": numFolder+" folder";
|
msg += numFolder > 1? numFolder+" folders": numFolder+" folder";
|
||||||
msg+= " during upload";
|
msg+= " during upload";
|
||||||
|
@ -636,7 +633,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
*/
|
*/
|
||||||
public static native void test(String parentIdentifier, String name)/*-{
|
public static native void test(String parentIdentifier, String name)/*-{
|
||||||
var servlet = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::service;
|
var servlet = instance.@org.gcube.portlets.widgets.workspaceuploader.client.uploader.dragdrop.MultipleDNDUpload::service;
|
||||||
|
|
||||||
var jqxhr = $.get("itemExistsInWorkpaceFolder?", function() {
|
var jqxhr = $.get("itemExistsInWorkpaceFolder?", function() {
|
||||||
alert( "success" );
|
alert( "success" );
|
||||||
})
|
})
|
||||||
|
@ -658,7 +655,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
||||||
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
||||||
* addWorkspaceUploadNotificationListener
|
* addWorkspaceUploadNotificationListener
|
||||||
|
@ -673,7 +670,7 @@ public class MultipleDNDUpload extends LayoutPanel implements
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
* @see org.gcube.portlets.widgets.workspaceuploader.client.
|
||||||
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
* WorkspaceUploadNotification.HasWorskpaceUploadNotificationListener#
|
||||||
* removeWorkspaceUploadNotificationListener
|
* removeWorkspaceUploadNotificationListener
|
||||||
|
|
|
@ -65,11 +65,12 @@ import org.json.JSONTokener;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Class WorkspaceUploadServletStream.
|
* The Class WorkspaceUploadServletStream.
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* @Jan 21, 2014
|
* May 10, 2016
|
||||||
*/
|
*/
|
||||||
public class WorkspaceUploadServletStream extends HttpServlet implements Servlet{
|
public class WorkspaceUploadServletStream extends HttpServlet implements Servlet{
|
||||||
|
|
||||||
|
@ -138,7 +139,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
|
||||||
logger.debug("GET method CANCEL_UPLOAD "+cancelUpload);
|
logger.debug("GET method CANCEL_UPLOAD "+cancelUpload);
|
||||||
if (cancelUpload) {
|
if (cancelUpload) {
|
||||||
cancelUpload(request.getSession(), clientUploadKey);
|
cancelUpload(request.getSession(), clientUploadKey);
|
||||||
sendMessage(response, "Upload abort: "+request.getParameter(CANCEL_UPLOAD));
|
sendMessage(response, "Upload aborted "+clientUploadKey);
|
||||||
}else
|
}else
|
||||||
logger.debug(CANCEL_UPLOAD + " param not found");
|
logger.debug(CANCEL_UPLOAD + " param not found");
|
||||||
// }else
|
// }else
|
||||||
|
@ -544,6 +545,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
|
||||||
* @param clientUploadKey the client upload key
|
* @param clientUploadKey the client upload key
|
||||||
* @param folderParentId the folder parent id
|
* @param folderParentId the folder parent id
|
||||||
* @param fileName the file name
|
* @param fileName the file name
|
||||||
|
* @param isOverwrite the is overwrite
|
||||||
* @return the workspace uploader item
|
* @return the workspace uploader item
|
||||||
*/
|
*/
|
||||||
private WorkspaceUploaderItem createNewWorkspaceUploader(String clientUploadKey, String folderParentId, String fileName, boolean isOverwrite){
|
private WorkspaceUploaderItem createNewWorkspaceUploader(String clientUploadKey, String folderParentId, String fileName, boolean isOverwrite){
|
||||||
|
@ -837,6 +839,7 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
|
||||||
protected void sendMessage(HttpServletResponse response, String message) throws IOException{
|
protected void sendMessage(HttpServletResponse response, String message) throws IOException{
|
||||||
try {
|
try {
|
||||||
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
response.setStatus(HttpServletResponse.SC_ACCEPTED);
|
||||||
|
message = message.replaceAll(":", "");
|
||||||
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
HandlerResultMessage resultMessage = HandlerResultMessage.okResult(message);
|
||||||
response.getWriter().write(resultMessage.toString());
|
response.getWriter().write(resultMessage.toString());
|
||||||
//5.6 Closure of Response Object:
|
//5.6 Closure of Response Object:
|
||||||
|
@ -964,21 +967,4 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet
|
||||||
}else
|
}else
|
||||||
logger.warn("Listener "+clientUploadKey+ "is null");
|
logger.warn("Listener "+clientUploadKey+ "is null");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The main method.
|
|
||||||
*
|
|
||||||
* @param args the arguments
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
public static void main(String[] args) {
|
|
||||||
try {
|
|
||||||
parseJSONClientUploadKeys("{\"ClientKeys\":[{\"3D6CAAEFF9241F6\":\"bookmarks.xml\"}, {\"69E9907A78AD20B\":\"WFS\"}]}");
|
|
||||||
} catch (FileUploadException e) {
|
|
||||||
// TODO Auto-generated catch block
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
sendError(resp, "An error occurred during item exists check");
|
sendError(resp, "An error occurred during item exists check");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#itemExistsInWorkpaceFolder(java.lang.String, java.lang.String)
|
* @see org.gcube.portlets.user.workspace.client.rpc.GWTWorkspaceService#itemExistsInWorkpaceFolder(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
|
@ -65,14 +65,14 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
HttpSession session = req.getSession();
|
HttpSession session = req.getSession();
|
||||||
Workspace workspace = WsUtil.getWorkspace(session);
|
Workspace workspace = WsUtil.getWorkspace(session);
|
||||||
WorkspaceItem wsItem = workspace.getItem(parentId); //GET PARENT
|
WorkspaceItem wsItem = workspace.getItem(parentId); //GET PARENT
|
||||||
|
|
||||||
if(wsItem.getType().equals(WorkspaceItemType.FOLDER) || wsItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
if(wsItem.getType().equals(WorkspaceItemType.FOLDER) || wsItem.getType().equals(WorkspaceItemType.SHARED_FOLDER)){
|
||||||
WorkspaceItem itemFound = workspace.find(itemName, parentId);
|
WorkspaceItem itemFound = workspace.find(itemName, parentId);
|
||||||
if(itemFound==null){
|
if(itemFound==null){
|
||||||
logger.trace("item: "+itemName+", not exists in parentId: "+parentId);
|
logger.trace("item: "+itemName+", not exists in parentId: "+parentId);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.trace("item: "+itemName+", exists in parentId: "+parentId +", returning id:" +itemFound.getId());
|
logger.trace("item: "+itemName+", exists in parentId: "+parentId +", returning id:" +itemFound.getId());
|
||||||
return itemFound.getId();
|
return itemFound.getId();
|
||||||
}
|
}
|
||||||
|
@ -85,7 +85,7 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
throw new Exception(e.getMessage());
|
throw new Exception(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send error.
|
* Send error.
|
||||||
|
@ -109,7 +109,7 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
throw e; //Sending Exceptions
|
throw e; //Sending Exceptions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send message.
|
* Send message.
|
||||||
|
@ -121,6 +121,9 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
protected void sendOKMessage(HttpServletResponse response, String message) throws IOException{
|
protected void sendOKMessage(HttpServletResponse response, String message) throws IOException{
|
||||||
try {
|
try {
|
||||||
response.setStatus(HttpServletResponse.SC_OK);
|
response.setStatus(HttpServletResponse.SC_OK);
|
||||||
|
response.setContentType("text/xml");
|
||||||
|
if(message==null)
|
||||||
|
message="null";
|
||||||
response.getWriter().write(message);
|
response.getWriter().write(message);
|
||||||
//5.6 Closure of Response Object:
|
//5.6 Closure of Response Object:
|
||||||
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
//When a response is closed, the container must immediately flush all remaining content in the response buffer to the client
|
||||||
|
@ -133,5 +136,5 @@ public class WorkspaceUploaderWsUtil extends HttpServlet {
|
||||||
throw e; //Sending Exceptions
|
throw e; //Sending Exceptions
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.widgets.workspaceuploader.shared;
|
package org.gcube.portlets.widgets.workspaceuploader.shared;
|
||||||
|
|
||||||
|
@ -10,15 +10,18 @@ import java.io.Serializable;
|
||||||
* The Class HandlerResultMessage.
|
* The Class HandlerResultMessage.
|
||||||
*
|
*
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Aug 3, 2015
|
* May 10, 2016
|
||||||
*/
|
*/
|
||||||
public class HandlerResultMessage implements Serializable{
|
public class HandlerResultMessage implements Serializable{
|
||||||
|
|
||||||
|
|
||||||
|
protected Status status;
|
||||||
|
protected String message;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private static final long serialVersionUID = -4607236625671465107L;
|
private static final long serialVersionUID = -7652344136772252755L;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Enum Status.
|
* The Enum Status.
|
||||||
|
@ -32,20 +35,37 @@ public class HandlerResultMessage implements Serializable{
|
||||||
*/
|
*/
|
||||||
ERROR,
|
ERROR,
|
||||||
/**
|
/**
|
||||||
* If no error occurs.
|
* If no error occurs.
|
||||||
*/
|
*/
|
||||||
OK,
|
OK,
|
||||||
/**
|
/**
|
||||||
* If there was some problems.
|
* If there was some problems.
|
||||||
*/
|
*/
|
||||||
WARN,
|
WARN,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If the result is unknown.
|
* If the result is unknown.
|
||||||
*/
|
*/
|
||||||
UNKNOWN;
|
UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TO SERIALIZATION
|
||||||
|
*/
|
||||||
|
public HandlerResultMessage() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new result message.
|
||||||
|
* @param status the status.
|
||||||
|
* @param message the message.
|
||||||
|
*/
|
||||||
|
public HandlerResultMessage(Status status, String message) {
|
||||||
|
this.status = status;
|
||||||
|
this.message = message;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error result.
|
* Error result.
|
||||||
*
|
*
|
||||||
|
@ -55,7 +75,7 @@ public class HandlerResultMessage implements Serializable{
|
||||||
public static HandlerResultMessage errorResult(String message){
|
public static HandlerResultMessage errorResult(String message){
|
||||||
return new HandlerResultMessage(Status.ERROR, message);
|
return new HandlerResultMessage(Status.ERROR, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ok result.
|
* Ok result.
|
||||||
*
|
*
|
||||||
|
@ -65,7 +85,7 @@ public class HandlerResultMessage implements Serializable{
|
||||||
public static HandlerResultMessage okResult(String message){
|
public static HandlerResultMessage okResult(String message){
|
||||||
return new HandlerResultMessage(Status.OK, message);
|
return new HandlerResultMessage(Status.OK, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Warn result.
|
* Warn result.
|
||||||
*
|
*
|
||||||
|
@ -75,18 +95,21 @@ public class HandlerResultMessage implements Serializable{
|
||||||
public static HandlerResultMessage warnResult(String message){
|
public static HandlerResultMessage warnResult(String message){
|
||||||
return new HandlerResultMessage(Status.WARN, message);
|
return new HandlerResultMessage(Status.WARN, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Parses the result.
|
* Parses the result.
|
||||||
*
|
* expected status:message (e.g. OK:Upload aborted)
|
||||||
* @param result the result
|
* @param result the result
|
||||||
* @return the handler result message
|
* @return the handler result message
|
||||||
*/
|
*/
|
||||||
public static HandlerResultMessage parseResult(String result){
|
public static HandlerResultMessage parseResult(String result){
|
||||||
//expected 200:Upload complete
|
//expected status:message
|
||||||
String statusToken = null;
|
String statusToken = null;
|
||||||
String messageToken = null;
|
String messageToken = null;
|
||||||
|
|
||||||
|
if(result==null || result.isEmpty())
|
||||||
|
return errorResult("result is null or empty");
|
||||||
|
|
||||||
int index = result.indexOf(':');
|
int index = result.indexOf(':');
|
||||||
if (index>0){
|
if (index>0){
|
||||||
statusToken = result.substring(0,index);
|
statusToken = result.substring(0,index);
|
||||||
|
@ -94,30 +117,20 @@ public class HandlerResultMessage implements Serializable{
|
||||||
messageToken = result.substring(index+1);
|
messageToken = result.substring(index+1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Status status = Status.UNKNOWN;
|
Status status = Status.UNKNOWN;
|
||||||
if (statusToken!=null){
|
if (statusToken!=null){
|
||||||
status = Status.valueOf(statusToken);
|
try{
|
||||||
|
status = Status.valueOf(statusToken);
|
||||||
|
}catch (Exception e) {
|
||||||
|
status = Status.UNKNOWN;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String message = (messageToken!=null)?messageToken:"";
|
String message = messageToken!=null?messageToken:"";
|
||||||
|
|
||||||
return new HandlerResultMessage(status, message);
|
return new HandlerResultMessage(status, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected Status status;
|
|
||||||
protected String message;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new result message.
|
|
||||||
* @param status the status.
|
|
||||||
* @param message the message.
|
|
||||||
*/
|
|
||||||
public HandlerResultMessage(Status status, String message) {
|
|
||||||
this.status = status;
|
|
||||||
this.message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -149,6 +162,4 @@ public class HandlerResultMessage implements Serializable{
|
||||||
builder.append(message);
|
builder.append(message);
|
||||||
return builder.toString();
|
return builder.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue