3751: Create Ckan Data Catalogue Portlet
Task-Url: https://support.d4science.org/issues/3751 Added My Groups Link git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/gcube-ckan-datacatalog@129390 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
7fe5e298b8
commit
5405ca56c1
|
@ -15,6 +15,8 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatis
|
|||
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.ShowUserGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEventHandler;
|
||||
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;
|
||||
|
@ -59,8 +61,10 @@ public class CkanEventHandlerManager {
|
|||
@Override
|
||||
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint( panel.getBaseURLCKANConnector());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector());
|
||||
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
||||
String newPath = panel.getPathInfo();
|
||||
ckan.addPathInfo(newPath);
|
||||
panel.instanceCkanFrame(ckan.buildURI());
|
||||
}
|
||||
});
|
||||
|
@ -114,42 +118,10 @@ public class CkanEventHandlerManager {
|
|||
@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());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector());
|
||||
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
||||
ckan.addPathInfo("/dashboard/datasets");
|
||||
String newPath = panel.getPathInfo() + "/dashboard/datasets";
|
||||
ckan.addPathInfo(newPath);
|
||||
panel.instanceCkanFrame(ckan.buildURI());
|
||||
}
|
||||
});
|
||||
|
@ -160,38 +132,27 @@ public class CkanEventHandlerManager {
|
|||
@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());
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector());
|
||||
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
||||
ckan.addPathInfo("/dashboard/organizations");
|
||||
String newPath = panel.getPathInfo() + "/dashboard/organizations";
|
||||
ckan.addPathInfo(newPath);
|
||||
panel.instanceCkanFrame(ckan.buildURI());
|
||||
}
|
||||
});
|
||||
eventBus.addHandler(
|
||||
ShowUserGroupsEvent.TYPE, new ShowUserGroupsEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent) {
|
||||
|
||||
CkanConnectorAccessPoint ckan = new CkanConnectorAccessPoint(panel.getBaseURLCKANConnector());
|
||||
ckan.addGubeToken(panel.getGcubeTokenValueToCKANConnector());
|
||||
String newPath = panel.getPathInfo() + "/dashboard/groups";
|
||||
ckan.addPathInfo(newPath);
|
||||
panel.instanceCkanFrame(ckan.buildURI());
|
||||
}
|
||||
});
|
||||
|
||||
// show statistics event
|
||||
eventBus.addHandler(
|
||||
ShowStatisticsEvent.TYPE, new ShowStatisticsEventHandler() {
|
||||
|
@ -199,35 +160,10 @@ public class CkanEventHandlerManager {
|
|||
@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");
|
||||
String newPath = panel.getPathInfo() + "/stats";
|
||||
ckan.addPathInfo(newPath);
|
||||
panel.instanceCkanFrame(ckan.buildURI());
|
||||
}
|
||||
});
|
||||
|
|
|
@ -30,20 +30,6 @@ public class GCubeCkanDataCatalog implements EntryPoint {
|
|||
* This is the entry point method.
|
||||
*/
|
||||
public void onModuleLoad() {
|
||||
// if (BrowserCloseDetector.get().wasClosed()) {
|
||||
// GWT.log("Browser was closed.");
|
||||
// }
|
||||
// else {
|
||||
// GWT.log("Refreshing or returning from another page.");
|
||||
// }
|
||||
|
||||
// Window.addCloseHandler(new CloseHandler<Window>() {
|
||||
//
|
||||
// public void onClose(CloseEvent<Window> windowCloseEvent) {
|
||||
//
|
||||
// Window.alert("I'm closing");
|
||||
// }
|
||||
// });
|
||||
|
||||
Window.addWindowClosingHandler(new Window.ClosingHandler() {
|
||||
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
|
||||
/**
|
||||
* The Class ShowUserGroupsEvent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jun 23, 2016
|
||||
*/
|
||||
public class ShowUserGroupsEvent extends GwtEvent<ShowUserGroupsEventHandler>{
|
||||
|
||||
public static Type<ShowUserGroupsEventHandler> TYPE = new Type<ShowUserGroupsEventHandler>();
|
||||
|
||||
/**
|
||||
* Instantiates a new show user organizations event.
|
||||
*/
|
||||
public ShowUserGroupsEvent() {
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||
*/
|
||||
@Override
|
||||
public Type<ShowUserGroupsEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(ShowUserGroupsEventHandler handler) {
|
||||
handler.onShowGroups(this);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
|
||||
/**
|
||||
* The Interface ShowUserGroupsEventHandler.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jun 23, 2016
|
||||
*/
|
||||
public interface ShowUserGroupsEventHandler extends EventHandler {
|
||||
|
||||
|
||||
/**
|
||||
* On show groups.
|
||||
*
|
||||
* @param showUserDatasetsEvent the show user datasets event
|
||||
*/
|
||||
void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent);
|
||||
|
||||
}
|
|
@ -1,40 +0,0 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.utility;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jun 23, 2016
|
||||
*/
|
||||
import com.google.gwt.user.client.Cookies;
|
||||
import com.google.gwt.user.client.Window;
|
||||
|
||||
public class BrowserCloseDetector {
|
||||
|
||||
private static final String COOKIE = "ckan-browser-detector-closed";
|
||||
private static BrowserCloseDetector instance;
|
||||
|
||||
private BrowserCloseDetector() {
|
||||
|
||||
Window.addWindowClosingHandler(new Window.ClosingHandler() {
|
||||
|
||||
public void onWindowClosing(Window.ClosingEvent closingEvent) {
|
||||
Cookies.setCookie(COOKIE, "");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public static BrowserCloseDetector get() {
|
||||
|
||||
return instance == null
|
||||
? instance = new BrowserCloseDetector() : instance;
|
||||
}
|
||||
|
||||
public boolean wasClosed() {
|
||||
|
||||
return Cookies.getCookie(COOKIE) == null;
|
||||
}
|
||||
}
|
|
@ -8,6 +8,7 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMeta
|
|||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEvent;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.AlertBlock;
|
||||
|
@ -37,6 +38,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
private Button editMeta = new Button("Edit Product");
|
||||
private Button myDatasets = new Button("My Products");
|
||||
private Button myOrganizations = new Button("My Organizations");
|
||||
private Button myGroups = new Button("My Groups");
|
||||
private Button statistics = new Button("Statistics");
|
||||
private HandlerManager eventBus;
|
||||
|
||||
|
@ -53,6 +55,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
home.setType(ButtonType.LINK);
|
||||
myDatasets.setType(ButtonType.LINK);
|
||||
myOrganizations.setType(ButtonType.LINK);
|
||||
myGroups.setType(ButtonType.LINK);
|
||||
insertMeta.setType(ButtonType.LINK);
|
||||
editMeta.setType(ButtonType.LINK);
|
||||
statistics.setType(ButtonType.LINK);
|
||||
|
@ -61,6 +64,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
home.setIcon(IconType.HOME);
|
||||
myDatasets.setIcon(IconType.SITEMAP);
|
||||
myOrganizations.setIcon(IconType.BUILDING);
|
||||
myGroups.setIcon(IconType.GROUP);
|
||||
insertMeta.setIcon(IconType.FILE);
|
||||
editMeta.setIcon(IconType.EDIT_SIGN);
|
||||
statistics.setIcon(IconType.BAR_CHART);
|
||||
|
@ -73,6 +77,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
nav.add(home);
|
||||
nav.add(myDatasets);
|
||||
nav.add(myOrganizations);
|
||||
nav.add(myGroups);
|
||||
nav.add(statistics);
|
||||
nav.add(insertMeta);
|
||||
nav.add(editMeta);
|
||||
|
@ -137,6 +142,17 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
myGroups.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowUserGroupsEvent());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
statistics.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -35,8 +35,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
|||
private Image loading = new Image(CkanPortletResources.ICONS.loading());
|
||||
private RootPanel rootPanel;
|
||||
private HandlerManager eventBus;
|
||||
private String baseURLCKANConnector;
|
||||
private String gCubeTokeValue;
|
||||
private CkanConnectorAccessPoint ckanAccessPoint;
|
||||
|
||||
/**
|
||||
* Instantiates a new g cube ckan data catalog panel.
|
||||
|
@ -57,9 +56,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
|||
|
||||
@Override
|
||||
public void onSuccess(CkanConnectorAccessPoint ckan) {
|
||||
// GWT.log("Instancing CKAN iframe with url: "+uriToCkan);
|
||||
baseURLCKANConnector = ckan.getBaseUrl();
|
||||
gCubeTokeValue = ckan.getGcubeTokenValue();
|
||||
ckanAccessPoint = ckan;
|
||||
instanceCkanFrame(ckan.buildURI());
|
||||
GCubeCkanDataCatalogPanel.this.rootPanel.remove(loading);
|
||||
}
|
||||
|
@ -189,17 +186,24 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
|||
GWT.log("New iFrame size w: "+rootWidth + " h: "+rootHeight);
|
||||
this.setSize(rootWidth+"px",rootHeight+"px");
|
||||
int height = rootHeight - getTopPanelHeight();
|
||||
if(ckanFramePanel.getFrame()!=null)
|
||||
// if(height<2000)
|
||||
// height = 2000;
|
||||
if(ckanFramePanel.getFrame()!=null){
|
||||
ckanFramePanel.getFrame().setSize(rootWidth+"px", height+"px");
|
||||
int newH = managementPanel!=null && managementPanel.getCurrentHeight()>0?managementPanel.getOffsetHeight()+height:height;
|
||||
// managementPanel.setHeight(height+50+"px");
|
||||
this.setHeight(newH+"px");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the base urlckan connector.
|
||||
*
|
||||
* @return the baseURLCKANConnector
|
||||
* @return the base urlckan connector
|
||||
*/
|
||||
public String getBaseURLCKANConnector() {
|
||||
return baseURLCKANConnector;
|
||||
return ckanAccessPoint.getBaseUrl();
|
||||
}
|
||||
|
||||
|
||||
|
@ -209,7 +213,16 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
|||
* @return the gcube token value to ckan connector
|
||||
*/
|
||||
public String getGcubeTokenValueToCKANConnector() {
|
||||
return gCubeTokeValue;
|
||||
return ckanAccessPoint.getGcubeTokenValue();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the path info.
|
||||
*
|
||||
* @return the path info
|
||||
*/
|
||||
public String getPathInfo() {
|
||||
return ckanAccessPoint.getPathInfoParameter();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue