Enhancement on Project Activity #11690

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/widgets/ws-task-executor-widget@167320 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Francesco Mangiacrapa 2018-05-04 10:46:29 +00:00
parent 8c115ce3a1
commit 26b6d38dcd
5 changed files with 495 additions and 2 deletions

View File

@ -3,5 +3,4 @@ encoding//src/main/java=UTF-8
encoding//src/main/resources=UTF-8
encoding//src/test/java=UTF-8
encoding//src/test/resources=UTF-8
encoding//target/generated-sources/gwt=UTF-8
encoding/<project>=UTF-8

View File

@ -1,6 +1,10 @@
package org.gcube.portlets.widgets.wstaskexecutor.client;
import org.gcube.portlets.widgets.wstaskexecutor.client.view.WsTaskExecutorWidgetViewManager;
import com.google.gwt.event.shared.HandlerManager;
/**
* Entry point classes define <code>onModuleLoad()</code>.
@ -20,6 +24,11 @@ public class WsTaskExecutorWidget {
*/
public static final WsTaskExecutorWidgetServiceAsync greetingService = WsTaskExecutorWidgetServiceAsync.Util.getInstance();
/** The Constant eventBus. */
public final static HandlerManager eventBus = new HandlerManager(null);
private WsTaskExecutorWidgetViewManager viewManager = new WsTaskExecutorWidgetViewManager();
/**
*
*/

View File

@ -0,0 +1,420 @@
package org.gcube.portlets.widgets.wstaskexecutor.client.view;
// TODO: Auto-generated Javadoc
/**
* The Class WsThreddsWidgetViewManager.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
* Feb 19, 2018
*/
public class WsTaskExecutorWidgetViewManager {
//private Map<String, MonitorFolderSyncStatusView> mapMonitor = new HashMap<String, MonitorFolderSyncStatusView>();
/**
* Instantiates a new ws thredds widget view manager.
*/
public WsTaskExecutorWidgetViewManager() {
}
// /**
// * Cancel monitor.
// *
// * @param folder the folder
// */
// public void cancelMonitor(WsFolder folder) {
// try {
// MonitorFolderSyncStatusView monitor = cancelScheduler(folder);
// if(monitor!=null) {
// GWT.log("Removed monitor for folder: "+folder.getFolderId());
// mapMonitor.remove(folder.getFolderId());
// }
// }catch (Exception e) {
// GWT.log("Error on removing map monitor for id: "+folder.getFolderId());
// }
// }
//
//
// /**
// * Gets the monitor.
// *
// * @param folder the folder
// * @return the monitor
// */
// public MonitorFolderSyncStatusView getMonitor(WsFolder folder){
//
// if(folder==null)
// return null;
//
// return mapMonitor.get(folder.getFolderId());
// }
//
//
// /**
// * Save monitor.
// *
// * @param folder the folder
// * @param monitor the monitor
// */
// private void saveMonitor(WsFolder folder, MonitorFolderSyncStatusView monitor) {
// GWT.log("Saving monitor for folder: "+folder.getFolderId());
// mapMonitor.put(folder.getFolderId(), monitor);
// }
//
//
// /**
// * Cancel scheduler.
// *
// * @param folder the folder
// * @return
// */
// private MonitorFolderSyncStatusView cancelScheduler(final WsFolder folder) {
//
// MonitorFolderSyncStatusView monitor = getMonitor(folder);
// if(monitor.getSchedulerTime()!=null) {
// GWT.log("Cancelling scheduler time on folder: "+folder.getFolderId());
// monitor.getSchedulerTime().cancel();
// }
//
// return monitor;
//
// }
//
// /**
// * Show monitor sync to folder.
// *
// * @param folder the folder
// * @param syncEventsListeners
// */
// public void showMonitorSyncToFolder(final WsFolder folder, final List<SyncCompletedNotificationListner> syncEventsListeners) {
// GWT.log("showMonitorSyncToFolder for folder: "+folder.getFolderId());
//
// final Modal box = new Modal(true);
// box.addStyleName("ws-thredds-modal-body");
// box.setTitle("Monitor transferring of: "+FormatUtil.getFolderTitle(folder.getFoderName(), 20));
// box.setWidth(800);
// box.hide(false);
//
// MonitorFolderSyncStatusView monitorView = getMonitor(folder);
// GWT.log("monitorView is: "+monitorView);
//
// final AbstractViewDialogBox panelView = new AbstractViewDialogBox() {
//
// @Override
// public void closeHandler() {
// //cancelScheduler(folder);
// box.hide();
//
// }
//
// @Override
// public void confirmHanlder(CONFIRM_VALUE confirm, Command command) {
//
// // TODO Auto-generated method stub
//
// }
// };
//
// if(monitorView==null) {
//
// monitorView = new MonitorFolderSyncStatusView() {
//
// @Override
// public void closetHandler() {
// //TODO CLIENT SIDE?
// //cancelMonitor(folder);
// panelView.closeHandler();
// }
//
// @Override
// public void setError(boolean visible, String error) {
// panelView.setError(visible, error);
// }
// };
//
// }
//
// if(monitorView.getSchedulerTime()==null) {
//
// //Removing old monitor
// //cancelMonitor(folder);
// //Creating new one
// final MonitorFolderSyncStatusView currentMonitor = monitorView;
//
// Timer schedulingTimer = new Timer() {
//
// @Override
// public void run() {
//
// WsThreddsWidget.wsThreddsSyncService.monitorSyncStatus(folder.getFolderId(), new AsyncCallback<ThSyncStatus>() {
//
// @Override
// public void onFailure(Throwable caught) {
// cancelMonitor(folder);
// Window.alert(caught.getMessage());
//
// //CALLING METHOD ON SYNC ERROR TO THE LISTENERS
// for (SyncCompletedNotificationListner listener : syncEventsListeners) {
// listener.onSyncError(folder);
// }
// }
//
// @Override
// public void onSuccess(ThSyncStatus status) {
// GWT.log("monitorSyncStatus: "+status);
// if(status==null) {
// GWT.log("The status is null server-side, cancelling polling");
// cancelMonitor(folder);
// }
//
// currentMonitor.updateStatusView(folder, status);
//
// if(status!=null && status.getProcessStatus()!=null) {
//
// if(status.getProcessStatus().getStatus().equals(Status.COMPLETED)) {
// GWT.log("Sync completed cancel the polling: "+status);
// cancelMonitor(folder);
//
// //CALLING METHOD ON SYNC COMPLETED TO THE LISTENERS
// for (SyncCompletedNotificationListner listener : syncEventsListeners) {
// listener.onSyncCompleted(folder);
// }
// }
//
// }
// }
// });
// }
// };
//
// schedulingTimer.scheduleRepeating(2000);
// currentMonitor.setScheduler(schedulingTimer);
// saveMonitor(folder, currentMonitor);
//
// }
//
// panelView.addViewAsWidget(monitorView);
// box.add(panelView);
// box.show();
//
// }
//
//
// /**
// * Show create configuration folder.
// *
// * @param folder the folder
// * @param conf the conf
// */
// public void showCreateConfigurationFolder(final WsFolder folder, WsThreddsSynchFolderDescriptor conf){
//
// final Modal box = new Modal(true);
// box.setTitle("Create Thredds Sync Configuration for: "+FormatUtil.getFolderTitle(folder.getFoderName(), 20));
// //box.getElement().getStyle().setZIndex(10000);
//
// final AbstractViewDialogBox panelView = new AbstractViewDialogBox() {
//
// @Override
// public void closeHandler() {
// box.hide();
//
// }
//
// @Override
// public void confirmHanlder(CONFIRM_VALUE confirm, Command command) {
//
// if(confirm.equals(CONFIRM_VALUE.YES)){
// box.hide();
// }
//
// if(command!=null)
// command.execute();
//
// }
// };
//
// CreateThreddsConfigurationView createThreddsConfiguration = new CreateThreddsConfigurationView(folder.getFolderId()) {
//
// @Override
// public void submitHandler() {
// panelView.closeHandler();
// WsThreddsSynchFolderConfiguration conf = new WsThreddsSynchFolderConfiguration();
// conf.setFilter(null);
//
// ThCatalogueBean catalogueSelected = getSelectedCatalogue();
// String remotePath = catalogueSelected.getPath()!=null?catalogueSelected.getPath():"";
// remotePath = remotePath.isEmpty()?getFolderName():remotePath+"/"+getFolderName();
// conf.setRemotePath(remotePath);
// conf.setCatalogName(catalogueSelected.getName());
// conf.setSelectedScope(getSelectedScope());
// conf.setRootFolderId(folder.getFolderId());
// WsThreddsWidget.eventBus.fireEvent(new PerformDoSyncEvent(folder, conf));
// }
//
// @Override
// public void setError(boolean visible, String error) {
// panelView.setError(visible, error);
//
// }
//
// @Override
// public void setConfirm(boolean visible, String msg) {
//
// Command yes = new Command() {
//
// @Override
// public void execute() {
//
// submitHandler();
// }
// };
//
// Command no = new Command() {
//
// @Override
// public void execute() {
//
// panelView.setConfirm(false, "", null, null);
// }
// };
//
// panelView.setConfirm(visible, msg, yes, no);
//
// }
// };
//
// panelView.addViewAsWidget(createThreddsConfiguration);
// box.add(panelView);
// box.show();
//
// }
//
//
// /**
// * Show thredds folder info.
// *
// * @param folder the folder
// * @param folderDescriptor the folder descriptor
// */
// public void showThreddsFolderInfo(final WsFolder folder, final WsThreddsSynchFolderDescriptor folderDescriptor){
// GWT.log("ShowThreddsFolderInfo folder: "+folder);
// //GWT.log("WsThreddsSynchFolderDescriptor is: "+folderDescriptor);
//
// final Modal box = new Modal(true);
// box.hide(false);
// //box.setWidth(WIDHT_DIALOG+"px");
// box.setTitle("Thredds Sync Information for: "+FormatUtil.getFolderTitle(folder.getFoderName(), 20));
// //box.getElement().getStyle().setZIndex(10000);
//
// final AbstractViewDialogBox panelView = new AbstractViewDialogBox() {
//
// @Override
// public void closeHandler() {
// box.hide();
// }
//
// @Override
// public void confirmHanlder(CONFIRM_VALUE confirm, Command command) {
//
// // TODO Auto-generated method stub
//
// }
// };
//
// boolean isCreateConfiguration = folderDescriptor==null?true:false;
//
//
// ShowThreddsFolderInfoView folderInfo = new ShowThreddsFolderInfoView(folder.getFolderId(), isCreateConfiguration) {
//
// @Override
// public void submitHandler(SUBMIT_ACTION action) {
// panelView.closeHandler();
//
// if(action==null)
// return;
//
// switch (action) {
//
// case CREATE_UPDATE_CONFIGURATION:
//
// if(folderDescriptor==null) {
// GWT.log("Performing a create configuration");
// //PERFORM A CREATE CONFIGURATION (AT FIRST TIME), THE CONFIGURATION DOES NOT EXITS
// showCreateConfigurationFolder(folder, null);
//
// }
//// else {
//// GWT.log("Performing an updated configuration");
//// //PERFORM AN UPDATE CONFIGURATION. THE CONFIGURATION EXIST
//// //BeanConverter.toWsThreddsFolderConfig(t, vre);
//// showCreateConfigurationFolder(folder, result);
//// }
////
//
// break;
//
// case DO_SYNC:
// GWT.log("Performing a do sync using server folder configuration");
// //PERFORM A DO SYNC BUT NOT AT FIRST TIME
// WsThreddsWidget.eventBus.fireEvent(new PerformDoSyncEvent(folder, null));
//
// break;
//
// default:
// break;
// }
//
// }
// @Override
// public void setError(boolean visible, String error) {
// //panelView.setError(visible, error);
// panelView.setInfo(visible, error);
// }
// };
//
// folderInfo.updateViewToResult(folder, folderDescriptor);
//
// if(isCreateConfiguration) {
// folderInfo.getMainPanel().setVisible(false);
// folderInfo.setError(true, "This Folder is not configured. Do you want create a configuration?");
// folderInfo.getPager().getLeft().setText("Create Configuration");
// }else {
// //USER CAN PERFORM DO SYNC
// //MOREOVER, HE/SHE COULD UPDATE THE CONFIGURATION BUT IT IS NOT SUPPORTED SERVER-SIDE
// folderInfo.getPager().getLeft().setVisible(false);
//
// if(folderDescriptor.getServerFolderDescriptor().isLocked()) {
// VerticalPanel v = new VerticalPanel();
// Alert alert = new Alert("Current Folder synchronization is locked by another proccess. Do you want see synchronization status?");
// alert.setClose(true);
// alert.setType(AlertType.INFO);
//
// Button butt = new Button("Show Status");
// butt.addClickHandler(new ClickHandler() {
//
// @Override
// public void onClick(ClickEvent event) {
// WsThreddsWidget.eventBus.fireEvent(new ShowMonitorSyncStatusEvent(folder));
// }
// });
//
// v.add(alert);
// v.add(butt);
// box.add(v);
// }
//
// }
//
// panelView.addViewAsWidget(folderInfo);
// box.add(panelView);
// box.show();
//
// }
}

View File

@ -16,10 +16,11 @@ import com.google.gwt.user.client.rpc.IsSerializable;
public class GcubeScope implements Serializable, IsSerializable, Comparable<GcubeScope>{
/**
*
*/
private static final long serialVersionUID = -6427520549519606384L;
private static final long serialVersionUID = 1L;
private GcubeScopeType scopeType;

View File

@ -0,0 +1,64 @@
package org.gcube.portlets.widgets.wstaskexecutor.shared;
import java.io.Serializable;
import com.google.gwt.user.client.rpc.IsSerializable;
public class WsFolder implements Serializable, IsSerializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String folderId;
private String foderName;
public WsFolder() {
}
public WsFolder(String folderId, String foderName) {
this.folderId = folderId;
this.foderName = foderName;
}
public String getFolderId() {
return folderId;
}
public void setFolderId(String folderId) {
this.folderId = folderId;
}
public String getFoderName() {
return foderName;
}
public void setFoderName(String foderName) {
this.foderName = foderName;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append("WsFolder [folderId=");
builder.append(folderId);
builder.append(", foderName=");
builder.append(foderName);
builder.append("]");
return builder.toString();
}
}