277 lines
8.9 KiB
Java
277 lines
8.9 KiB
Java
|
|
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client;
|
|
|
|
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.IFrameInstanciedEvent;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.IFrameInstanciedEventHandler;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEventHandler;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEvent;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEventHandler;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEvent;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEventHandler;
|
|
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;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
|
|
|
|
import com.github.gwtbootstrap.client.ui.Modal;
|
|
import com.google.gwt.event.shared.HandlerManager;
|
|
import com.google.gwt.user.client.Window;
|
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
|
|
|
/**
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
|
* @author Costantino Perciante costantino.perciante@isti.cnr.it Jun 10, 2016
|
|
*/
|
|
public class CkanEventHandlerManager {
|
|
|
|
private HandlerManager eventBus = new HandlerManager(null);
|
|
private GCubeCkanDataCatalogPanel panel;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public CkanEventHandlerManager() {
|
|
bind();
|
|
}
|
|
|
|
/**
|
|
* @param panel
|
|
* the panel to set
|
|
*/
|
|
public void setPanel(GCubeCkanDataCatalogPanel panel) {
|
|
|
|
this.panel = panel;
|
|
}
|
|
|
|
private void bind() {
|
|
|
|
// bind on show home event
|
|
eventBus.addHandler(ShowHomeEvent.TYPE, new ShowHomeEventHandler() {
|
|
|
|
@Override
|
|
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
|
|
|
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint( panel.getBaseURLCKANConnector());
|
|
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
|
panel.instanceCkanFrame(ckan.buildURI());
|
|
}
|
|
});
|
|
// bind on insert metadata
|
|
eventBus.addHandler(InsertMetadataEvent.TYPE, new InsertMetadataEventHandler() {
|
|
|
|
@Override
|
|
public void onInsertMetadata(
|
|
InsertMetadataEvent loadSelecteReleaseEvent) {
|
|
|
|
final Modal modal = new Modal(true, true);
|
|
// request who's doing the insert
|
|
GCubeCkanDataCatalog.service.getUser(new AsyncCallback<String>() {
|
|
|
|
@Override
|
|
public void onSuccess(String username) {
|
|
|
|
if (username != null) {
|
|
modal.setTitle("Publish Product");
|
|
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.");
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
|
|
Window.alert("Please, logout and login again then retry.");
|
|
}
|
|
});
|
|
}
|
|
});
|
|
// bind on edit (TODO)
|
|
eventBus.addHandler(
|
|
EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
|
|
|
|
@Override
|
|
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
|
|
|
|
// TODO Auto-generated method stub
|
|
}
|
|
});
|
|
// show datasets event
|
|
eventBus.addHandler(
|
|
ShowUserDatasetsEvent.TYPE, new ShowUserDatasetsEventHandler() {
|
|
|
|
@Override
|
|
public void onShowDatasets(
|
|
ShowUserDatasetsEvent 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/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);
|
|
// redirect
|
|
// String baseUrlCkanConnector = panel.getBaseURLCKANConnector();
|
|
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint( panel.getBaseURLCKANConnector());
|
|
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
|
ckan.addPathInfo("/dashboard/datasets");
|
|
panel.instanceCkanFrame(ckan.buildURI());
|
|
}
|
|
});
|
|
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;
|
|
}
|
|
Window.Location.assign(finalPath);
|
|
*/
|
|
// redirect
|
|
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint( panel.getBaseURLCKANConnector());
|
|
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
|
ckan.addPathInfo("/dashboard/organizations");
|
|
panel.instanceCkanFrame(ckan.buildURI());
|
|
}
|
|
});
|
|
// 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);*/
|
|
|
|
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint( panel.getBaseURLCKANConnector());
|
|
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
|
ckan.addPathInfo("/stats");
|
|
panel.instanceCkanFrame(ckan.buildURI());
|
|
}
|
|
});
|
|
|
|
eventBus.addHandler(NotifyLogoutEvent.TYPE, new NotifyLogoutEventHandler() {
|
|
|
|
@Override
|
|
public void onLogout(NotifyLogoutEvent editMetadataEvent) {
|
|
|
|
GCubeCkanDataCatalog.service.logoutFromCkan(new AsyncCallback<Void>() {
|
|
|
|
@Override
|
|
public void onFailure(Throwable caught) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onSuccess(Void result) {
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
eventBus.addHandler(IFrameInstanciedEvent.TYPE, new IFrameInstanciedEventHandler() {
|
|
|
|
@Override
|
|
public void onNewInstance(IFrameInstanciedEvent iFrameInstanciedEent) {
|
|
|
|
panel.updateSize();
|
|
}
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @return
|
|
*/
|
|
public HandlerManager getEventBus() {
|
|
|
|
return eventBus;
|
|
}
|
|
}
|