138 lines
5.1 KiB
Java
138 lines
5.1 KiB
Java
/**
|
|
*
|
|
*/
|
|
package org.gcube.portlets.widgets.workspaceuploader.client.uploader;
|
|
|
|
import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader;
|
|
import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploaderServiceAsync;
|
|
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem;
|
|
import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem.UPLOAD_STATUS;
|
|
|
|
import com.google.gwt.core.shared.GWT;
|
|
import com.google.gwt.user.client.Timer;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
|
|
|
|
/**
|
|
* The Class TimerUpload.
|
|
*
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
* May 11, 2016
|
|
*/
|
|
public class TimerUpload extends Timer{
|
|
|
|
/** The workspace uploader. */
|
|
private WorkspaceUploaderItem workspaceUploader;
|
|
private UploaderMonitor monitor;
|
|
private TimerUpload INSTANCE = this;
|
|
|
|
/**
|
|
* Instantiates a new timer upload.
|
|
*
|
|
* @param workspaceUploader the workspace uploader
|
|
* @param queue the queue
|
|
* @param indexQueue the index queue
|
|
*/
|
|
public TimerUpload(WorkspaceUploaderItem workspaceUploader) {
|
|
this.workspaceUploader = workspaceUploader;
|
|
this.monitor = UploaderMonitor.getInstance();
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see com.google.gwt.user.client.Timer#run()
|
|
*/
|
|
@Override
|
|
public void run() {
|
|
|
|
WorkspaceUploaderServiceAsync.Util.getInstance().getUploadStatus(workspaceUploader.getClientUploadKey(), new AsyncCallback<WorkspaceUploaderItem>() {
|
|
|
|
@Override
|
|
public void onSuccess(final WorkspaceUploaderItem result) {
|
|
try{
|
|
synchronized(this){
|
|
// Timer tmn = queue.get(workspaceUploader.getClientUploadKey());
|
|
if(INSTANCE!=null && INSTANCE.isRunning()){
|
|
if(result==null || result.getUploadStatus()==null){
|
|
GWT.log("Upload or status its 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());
|
|
// monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey());
|
|
|
|
ConstantsWorkspaceUploader.jslog("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
|
|
|
Timer timer = new Timer() {
|
|
|
|
@Override
|
|
public void run() {
|
|
ConstantsWorkspaceUploader.jslog("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
|
if(!result.getIsOverwrite())
|
|
monitor.notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
|
else
|
|
monitor.notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId());
|
|
}
|
|
};
|
|
//THIS IS A DELAY TO WAIT REPOSITORY SYNCHRONIZATION
|
|
timer.schedule(1000);
|
|
|
|
cancel();
|
|
monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey());
|
|
}else if(result.getUploadStatus().equals(UPLOAD_STATUS.FAILED)){
|
|
GWT.log("Upload Failed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
|
// monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey());
|
|
// queue.remove(workspaceUploader.getClientUploadKey());
|
|
monitor.notifyUploadError(result.getFile().getParentId(), null, result.getStatusDescription(), null);
|
|
// new DialogResult(null, "Upload Failed!!", result.getStatusDescription()).center();
|
|
|
|
cancel();
|
|
monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey());
|
|
}else if(result.getUploadStatus().equals(UPLOAD_STATUS.ABORTED)){
|
|
// monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey());
|
|
GWT.log("Upload Aborted "+result.getFile().getItemId() +" name: "+result.getFile().getFileName());
|
|
cancel();
|
|
monitor.notifyUploadAborted(result.getFile().getParentId(), null);
|
|
monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey());
|
|
}
|
|
|
|
monitor.getMonitorPanel().updateWorkspaceUploder(result);
|
|
// GWT.log(result.toString());
|
|
}else{
|
|
// monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey());
|
|
GWT.log("Timer is null or already closed or completed");
|
|
cancel();
|
|
monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey());
|
|
}
|
|
}
|
|
}catch(Exception e){
|
|
GWT.log("getUploadStatus exception "+e.getMessage());
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
GWT.log("onFailure: "+caught.getMessage());
|
|
cancel();
|
|
// monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey());
|
|
monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey());
|
|
monitor.notifyUploadError(workspaceUploader.getFile().getParentId(), null, null, caught);
|
|
// removeTimer(workspaceUploader.getClientUploadKey());
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
/* (non-Javadoc)
|
|
* @see com.google.gwt.user.client.Timer#cancel()
|
|
*/
|
|
@Override
|
|
public void cancel() {
|
|
GWT.log("Cancelling timer for "+workspaceUploader);
|
|
super.cancel();
|
|
}
|
|
|
|
|
|
|
|
}
|