2016-06-23 12:49:45 +02:00
|
|
|
|
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;
|
2016-06-23 12:49:45 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.IFrameInstanciedEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.IFrameInstanciedEventHandler;
|
2016-06-13 12:54:15 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEventHandler;
|
2016-06-23 12:49:45 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEventHandler;
|
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;
|
2016-06-23 18:30:01 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEvent;
|
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEventHandler;
|
2016-06-22 16:23:51 +02:00
|
|
|
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-23 12:49:45 +02:00
|
|
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
2016-07-14 12:17:53 +02:00
|
|
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.events.CloseCreationFormEvent;
|
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-07-14 12:17:53 +02:00
|
|
|
import com.github.gwtbootstrap.client.ui.event.HideEvent;
|
|
|
|
import com.github.gwtbootstrap.client.ui.event.HideHandler;
|
2016-06-13 09:48:29 +02:00
|
|
|
import com.google.gwt.event.shared.HandlerManager;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
2016-06-23 12:49:45 +02:00
|
|
|
* @author Costantino Perciante costantino.perciante@isti.cnr.it Jun 10, 2016
|
2016-06-13 09:48:29 +02:00
|
|
|
*/
|
|
|
|
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
|
|
|
/**
|
2016-06-23 12:49:45 +02:00
|
|
|
* @param panel
|
|
|
|
* the panel to set
|
2016-06-22 18:40:38 +02:00
|
|
|
*/
|
|
|
|
public void setPanel(GCubeCkanDataCatalogPanel panel) {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-06-22 18:40:38 +02:00
|
|
|
this.panel = panel;
|
|
|
|
}
|
|
|
|
|
2016-06-13 12:54:15 +02:00
|
|
|
private void bind() {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-06-22 17:09:57 +02:00
|
|
|
// bind on show home event
|
|
|
|
eventBus.addHandler(ShowHomeEvent.TYPE, new ShowHomeEventHandler() {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-06-22 17:09:57 +02:00
|
|
|
@Override
|
|
|
|
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
2016-06-29 11:25:46 +02:00
|
|
|
String request = getCkanRequest(null, null);
|
|
|
|
panel.instanceCkanFrame(request);
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-06-22 17:09:57 +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-09-05 18:18:57 +02:00
|
|
|
@Override
|
2016-09-23 12:41:40 +02:00
|
|
|
public void onInsertMetadata(InsertMetadataEvent loadSelecteReleaseEvent) {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
final Modal modal = new Modal(true, true);
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-09-23 12:41:40 +02:00
|
|
|
modal.setTitle("Publish Product");
|
|
|
|
modal.addStyleName("insert-metadata-modal-style");
|
|
|
|
modal.add(new CreateDatasetForm(eventBus));
|
|
|
|
modal.setCloseVisible(true);
|
|
|
|
modal.show();
|
2016-09-05 18:18:57 +02:00
|
|
|
|
2016-09-23 12:41:40 +02:00
|
|
|
// hide any popup panel opened
|
|
|
|
modal.addHideHandler(new HideHandler() {
|
2016-09-05 18:18:57 +02:00
|
|
|
|
2016-09-23 12:41:40 +02:00
|
|
|
@Override
|
|
|
|
public void onHide(HideEvent hideEvent) {
|
|
|
|
eventBus.fireEvent(new CloseCreationFormEvent());
|
2016-09-05 18:18:57 +02:00
|
|
|
}
|
|
|
|
});
|
2016-09-23 12:41:40 +02:00
|
|
|
}
|
2016-09-05 18:18:57 +02:00
|
|
|
});
|
2016-06-13 12:54:15 +02:00
|
|
|
// bind on edit (TODO)
|
2016-06-23 12:49:45 +02:00
|
|
|
eventBus.addHandler(
|
2016-09-05 18:18:57 +02:00
|
|
|
EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
@Override
|
|
|
|
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
// TODO Auto-generated method stub
|
|
|
|
}
|
|
|
|
});
|
2016-06-22 16:23:51 +02:00
|
|
|
// show datasets event
|
2016-06-23 12:49:45 +02:00
|
|
|
eventBus.addHandler(
|
2016-09-05 18:18:57 +02:00
|
|
|
ShowUserDatasetsEvent.TYPE, new ShowUserDatasetsEventHandler() {
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onShowDatasets(
|
|
|
|
ShowUserDatasetsEvent showUserDatasetsEvent) {
|
|
|
|
String request = getCkanRequest("/dashboard/datasets", null);
|
|
|
|
panel.instanceCkanFrame(request);
|
|
|
|
}
|
|
|
|
});
|
2016-06-23 12:49:45 +02:00
|
|
|
eventBus.addHandler(
|
2016-09-05 18:18:57 +02:00
|
|
|
ShowUserOrganizationsEvent.TYPE,
|
|
|
|
new ShowUserOrganizationsEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
@Override
|
|
|
|
public void onShowOrganizations(
|
|
|
|
ShowUserOrganizationsEvent showUserDatasetsEvent) {
|
2016-07-01 16:51:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
panel.showOrganizations();
|
2016-07-01 16:51:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
}
|
|
|
|
});
|
2016-06-23 18:30:01 +02:00
|
|
|
eventBus.addHandler(
|
2016-09-05 18:18:57 +02:00
|
|
|
ShowUserGroupsEvent.TYPE, new ShowUserGroupsEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
@Override
|
|
|
|
public void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent) {
|
|
|
|
String request = getCkanRequest("/dashboard/groups", null);
|
|
|
|
panel.instanceCkanFrame(request);
|
|
|
|
}
|
|
|
|
});
|
2016-06-23 18:30:01 +02:00
|
|
|
|
2016-06-23 12:49:45 +02:00
|
|
|
// show statistics event
|
|
|
|
eventBus.addHandler(
|
2016-09-05 18:18:57 +02:00
|
|
|
ShowStatisticsEvent.TYPE, new ShowStatisticsEventHandler() {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
@Override
|
|
|
|
public void onShowStatistics(
|
|
|
|
ShowStatisticsEvent showStatisticsEvent) {
|
|
|
|
String request = getCkanRequest("/stats", null);
|
|
|
|
panel.instanceCkanFrame(request);
|
|
|
|
}
|
|
|
|
});
|
2016-06-23 12:49:45 +02:00
|
|
|
|
|
|
|
eventBus.addHandler(NotifyLogoutEvent.TYPE, new NotifyLogoutEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-23 12:49:45 +02:00
|
|
|
@Override
|
|
|
|
public void onLogout(NotifyLogoutEvent editMetadataEvent) {
|
2016-07-01 16:51:51 +02:00
|
|
|
|
2016-09-05 18:18:57 +02:00
|
|
|
// CKanLeaveFrame frame = new CKanLeaveFrame(GCubeCkanDataCatalog.CKAN_LOGUT_SERVICE);
|
|
|
|
// DOM.appendChild(RootPanel.getBodyElement(), frame.getElement());
|
2016-06-22 16:23:51 +02:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2016-06-23 12:49:45 +02:00
|
|
|
eventBus.addHandler(IFrameInstanciedEvent.TYPE, new IFrameInstanciedEventHandler() {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-23 12:49:45 +02:00
|
|
|
@Override
|
|
|
|
public void onNewInstance(IFrameInstanciedEvent iFrameInstanciedEent) {
|
2016-06-22 16:23:51 +02:00
|
|
|
|
2016-06-23 12:49:45 +02:00
|
|
|
panel.updateSize();
|
2016-06-13 12:54:15 +02:00
|
|
|
}
|
|
|
|
});
|
2016-06-22 16:23:51 +02:00
|
|
|
}
|
2016-06-13 09:48:29 +02:00
|
|
|
|
2016-06-29 11:25:46 +02:00
|
|
|
private String getCkanRequest(String pathInfo, String query){
|
2016-07-01 16:51:51 +02:00
|
|
|
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector(),"");
|
2016-06-29 11:25:46 +02:00
|
|
|
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
|
|
|
pathInfo = CkanConnectorAccessPoint.checkNullString(pathInfo);
|
|
|
|
query = CkanConnectorAccessPoint.checkNullString(query);
|
|
|
|
ckan.addPathInfo(pathInfo);
|
|
|
|
ckan.addQueryString(query);
|
|
|
|
return ckan.buildURI();
|
|
|
|
}
|
|
|
|
|
2016-06-28 12:45:24 +02:00
|
|
|
private static native void logutWindow(String uri, boolean timeout)/*-{
|
|
|
|
var newWindow = window.open(uri, '_blank', 'width=50,height=50');
|
|
|
|
newWindow.onload = function() {
|
|
|
|
setTimeout();
|
|
|
|
};
|
|
|
|
setTimeout(function() {
|
|
|
|
newWindow.close();
|
|
|
|
}, 500);
|
|
|
|
return false;
|
|
|
|
}-*/;
|
|
|
|
|
|
|
|
|
2016-06-13 09:48:29 +02:00
|
|
|
/**
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public HandlerManager getEventBus() {
|
2016-06-23 12:49:45 +02:00
|
|
|
|
2016-06-13 09:48:29 +02:00
|
|
|
return eventBus;
|
|
|
|
}
|
|
|
|
}
|