2016-06-13 09:48:29 +02:00
|
|
|
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client;
|
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEventHandler;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEventHandler;
|
2016-06-22 17:09:57 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEventHandler;
|
2016-06-22 16:23:51 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEventHandler;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEventHandler;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEventHandler;
|
2016-06-22 18:40:38 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
2016-06-13 12:54:15 +02:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
|
|
|
|
|
|
|
|
import com.github.gwtbootstrap.client.ui.Modal;
|
2016-06-13 09:48:29 +02:00
|
|
|
import com.google.gwt.event.shared.HandlerManager;
|
2016-06-13 12:54:15 +02:00
|
|
|
import com.google.gwt.user.client.Window;
|
|
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
2016-06-13 09:48:29 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
2016-06-22 16:23:51 +02:00
|
|
|
* @author Costantino Perciante costantino.perciante@isti.cnr.it
|
2016-06-13 09:48:29 +02:00
|
|
|
* Jun 10, 2016
|
|
|
|
*/
|
|
|
|
public class CkanEventHandlerManager {
|
|
|
|
|
|
|
|
private HandlerManager eventBus = new HandlerManager(null);
|
2016-06-22 18:40:38 +02:00
|
|
|
private GCubeCkanDataCatalogPanel panel;
|
2016-06-13 09:48:29 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public CkanEventHandlerManager() {
|
2016-06-13 12:54:15 +02:00
|
|
|
bind();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2016-06-22 18:40:38 +02:00
|
|
|
/**
|
|
|
|
* @param panel the panel to set
|
|
|
|
*/
|
|
|
|
public void setPanel(GCubeCkanDataCatalogPanel panel) {
|
|
|
|
this.panel = panel;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
private void bind() {
|
2016-06-22 17:09:57 +02:00
|
|
|
|
|
|
|
// bind on show home event
|
|
|
|
eventBus.addHandler(ShowHomeEvent.TYPE, new ShowHomeEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
|
|
|
|
|
|
|
// redirect
|
2016-06-22 18:40:38 +02:00
|
|
|
String baseUrlCkanConnector = panel.getBaseURLCKANConnector();
|
|
|
|
panel.instanceCkanFrame(baseUrlCkanConnector);
|
2016-06-22 17:09:57 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
// bind on insert metadata
|
|
|
|
eventBus.addHandler(InsertMetadataEvent.TYPE, new InsertMetadataEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
@Override
|
|
|
|
public void onInsertMetadata(InsertMetadataEvent loadSelecteReleaseEvent) {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-14 13:02:40 +02:00
|
|
|
final Modal modal = new Modal(true, true);
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
// request who's doing the insert
|
|
|
|
GCubeCkanDataCatalog.service.getUser(new AsyncCallback<String>() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
@Override
|
|
|
|
public void onSuccess(String username) {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
if(username != null){
|
2016-06-22 16:23:51 +02:00
|
|
|
modal.setTitle("Publish Product");
|
2016-06-13 12:54:15 +02:00
|
|
|
modal.addStyleName("insert-metadata-modal-style");
|
|
|
|
modal.add(new CreateDatasetForm(username));
|
|
|
|
modal.setCloseVisible(true);
|
|
|
|
modal.show();
|
|
|
|
}
|
|
|
|
else
|
|
|
|
Window.alert("Please, logout and login again then retry.");
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
}
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
@Override
|
|
|
|
public void onFailure(Throwable caught) {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
Window.alert("Please, logout and login again then retry.");
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
// bind on edit (TODO)
|
|
|
|
eventBus.addHandler(EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
|
|
|
|
// TODO Auto-generated method stub
|
2016-06-22 16:23:51 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// show datasets event
|
|
|
|
eventBus.addHandler(ShowUserDatasetsEvent.TYPE, new ShowUserDatasetsEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onShowDatasets(ShowUserDatasetsEvent showUserDatasetsEvent) {
|
|
|
|
|
2016-06-22 18:40:38 +02:00
|
|
|
// // get the current path
|
|
|
|
// String currentPath = Window.Location.getHref();
|
|
|
|
//
|
|
|
|
// // check if the "path" parameter is already present
|
|
|
|
// String currentParameter = Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
//
|
|
|
|
// // the final path must be
|
|
|
|
// String queryPar = "?" + GCubeCkanDataCatalog.GET_PATH_PARAMETER + "=" + "/dashboard/datasets";
|
|
|
|
//
|
|
|
|
// String finalPath;
|
|
|
|
//
|
|
|
|
// if(currentParameter == null){
|
|
|
|
// finalPath = currentPath + queryPar;
|
|
|
|
//
|
|
|
|
// }else{
|
|
|
|
//
|
|
|
|
// // remove from the first "path" on
|
|
|
|
// int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
// String firstPartOfThePath = currentPath.substring(0, index);
|
|
|
|
// finalPath = firstPartOfThePath + queryPar;
|
|
|
|
//
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// // redirect
|
|
|
|
// Window.Location.assign(finalPath);
|
|
|
|
|
2016-06-22 16:23:51 +02:00
|
|
|
// redirect
|
2016-06-22 18:40:38 +02:00
|
|
|
String baseUrlCkanConnector = panel.getBaseURLCKANConnector();
|
|
|
|
baseUrlCkanConnector += "/dashboard/datasets";
|
|
|
|
panel.instanceCkanFrame(baseUrlCkanConnector);
|
2016-06-22 16:23:51 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
eventBus.addHandler(ShowUserOrganizationsEvent.TYPE, new ShowUserOrganizationsEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onShowOrganizations(
|
|
|
|
ShowUserOrganizationsEvent showUserDatasetsEvent) {
|
|
|
|
|
|
|
|
// get the current path
|
|
|
|
String currentPath = Window.Location.getHref();
|
|
|
|
|
|
|
|
// check if the "path" parameter is already present
|
|
|
|
String currentParameter = Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
|
|
|
|
// the final path must be
|
|
|
|
String queryPar = "?" + GCubeCkanDataCatalog.GET_PATH_PARAMETER + "=" + "/dashboard/organizations";
|
|
|
|
|
|
|
|
String finalPath;
|
|
|
|
|
|
|
|
if(currentParameter == null){
|
|
|
|
finalPath = currentPath + queryPar;
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
// remove from the first "path" on
|
|
|
|
int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
String firstPartOfThePath = currentPath.substring(0, index);
|
|
|
|
finalPath = firstPartOfThePath + queryPar;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// redirect
|
|
|
|
Window.Location.assign(finalPath);
|
|
|
|
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// show statistics event
|
|
|
|
eventBus.addHandler(ShowStatisticsEvent.TYPE, new ShowStatisticsEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onShowStatistics(ShowStatisticsEvent showStatisticsEvent) {
|
|
|
|
|
|
|
|
// get the current path
|
|
|
|
String currentPath = Window.Location.getHref();
|
|
|
|
|
|
|
|
// check if the "path" parameter is already present
|
|
|
|
String currentParameter = Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
|
|
|
|
// the final path must be
|
|
|
|
String queryPar = "?" + GCubeCkanDataCatalog.GET_PATH_PARAMETER + "=" + "/stats";
|
|
|
|
|
|
|
|
String finalPath;
|
|
|
|
|
|
|
|
if(currentParameter == null){
|
|
|
|
finalPath = currentPath + queryPar;
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
// remove from the first "path" on
|
|
|
|
int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
|
|
String firstPartOfThePath = currentPath.substring(0, index);
|
|
|
|
finalPath = firstPartOfThePath + queryPar;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// redirect
|
|
|
|
Window.Location.assign(finalPath);
|
2016-06-13 12:54:15 +02:00
|
|
|
|
|
|
|
}
|
|
|
|
});
|
2016-06-13 09:48:29 +02:00
|
|
|
|
2016-06-22 16:23:51 +02:00
|
|
|
}
|
2016-06-13 09:48:29 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public HandlerManager getEventBus() {
|
|
|
|
return eventBus;
|
|
|
|
}
|
|
|
|
}
|