Start managing the refresh of the iframe content only, without reload the whole page on redirect
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/gcube-ckan-datacatalog@129323 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
a5237b1c70
commit
835def2d71
|
@ -12,6 +12,7 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDa
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEventHandler;
|
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.ShowUserOrganizationsEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEventHandler;
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEventHandler;
|
||||||
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
||||||
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
|
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.CreateDatasetForm;
|
||||||
|
|
||||||
import com.github.gwtbootstrap.client.ui.Modal;
|
import com.github.gwtbootstrap.client.ui.Modal;
|
||||||
|
@ -29,6 +30,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||||
public class CkanEventHandlerManager {
|
public class CkanEventHandlerManager {
|
||||||
|
|
||||||
private HandlerManager eventBus = new HandlerManager(null);
|
private HandlerManager eventBus = new HandlerManager(null);
|
||||||
|
private GCubeCkanDataCatalogPanel panel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -38,6 +40,15 @@ public class CkanEventHandlerManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param panel the panel to set
|
||||||
|
*/
|
||||||
|
public void setPanel(GCubeCkanDataCatalogPanel panel) {
|
||||||
|
this.panel = panel;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void bind() {
|
private void bind() {
|
||||||
|
|
||||||
// bind on show home event
|
// bind on show home event
|
||||||
|
@ -46,28 +57,9 @@ public class CkanEventHandlerManager {
|
||||||
@Override
|
@Override
|
||||||
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
public void onShowHome(ShowHomeEvent showHomeEvent) {
|
||||||
|
|
||||||
// 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);
|
|
||||||
|
|
||||||
String finalPath;
|
|
||||||
|
|
||||||
if(currentParameter == null){
|
|
||||||
finalPath = currentPath;
|
|
||||||
|
|
||||||
}else{
|
|
||||||
|
|
||||||
// remove from the first "path" on
|
|
||||||
int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
|
||||||
String firstPartOfThePath = currentPath.substring(0, index);
|
|
||||||
finalPath = firstPartOfThePath;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// redirect
|
// redirect
|
||||||
Window.Location.assign(finalPath);
|
String baseUrlCkanConnector = panel.getBaseURLCKANConnector();
|
||||||
|
panel.instanceCkanFrame(baseUrlCkanConnector);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -124,31 +116,36 @@ public class CkanEventHandlerManager {
|
||||||
@Override
|
@Override
|
||||||
public void onShowDatasets(ShowUserDatasetsEvent showUserDatasetsEvent) {
|
public void onShowDatasets(ShowUserDatasetsEvent showUserDatasetsEvent) {
|
||||||
|
|
||||||
// get the current path
|
// // get the current path
|
||||||
String currentPath = Window.Location.getHref();
|
// String currentPath = Window.Location.getHref();
|
||||||
|
//
|
||||||
// check if the "path" parameter is already present
|
// // check if the "path" parameter is already present
|
||||||
String currentParameter = Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
// String currentParameter = Window.Location.getParameter(GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
||||||
|
//
|
||||||
// the final path must be
|
// // the final path must be
|
||||||
String queryPar = "?" + GCubeCkanDataCatalog.GET_PATH_PARAMETER + "=" + "/dashboard/datasets";
|
// String queryPar = "?" + GCubeCkanDataCatalog.GET_PATH_PARAMETER + "=" + "/dashboard/datasets";
|
||||||
|
//
|
||||||
String finalPath;
|
// String finalPath;
|
||||||
|
//
|
||||||
if(currentParameter == null){
|
// if(currentParameter == null){
|
||||||
finalPath = currentPath + queryPar;
|
// finalPath = currentPath + queryPar;
|
||||||
|
//
|
||||||
}else{
|
// }else{
|
||||||
|
//
|
||||||
// remove from the first "path" on
|
// // remove from the first "path" on
|
||||||
int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
// int index = currentPath.lastIndexOf("?"+GCubeCkanDataCatalog.GET_PATH_PARAMETER);
|
||||||
String firstPartOfThePath = currentPath.substring(0, index);
|
// String firstPartOfThePath = currentPath.substring(0, index);
|
||||||
finalPath = firstPartOfThePath + queryPar;
|
// finalPath = firstPartOfThePath + queryPar;
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
// // redirect
|
||||||
|
// Window.Location.assign(finalPath);
|
||||||
|
|
||||||
// redirect
|
// redirect
|
||||||
Window.Location.assign(finalPath);
|
String baseUrlCkanConnector = panel.getBaseURLCKANConnector();
|
||||||
|
baseUrlCkanConnector += "/dashboard/datasets";
|
||||||
|
panel.instanceCkanFrame(baseUrlCkanConnector);
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -27,6 +27,7 @@ public class GCubeCkanDataCatalog implements EntryPoint {
|
||||||
* This is the entry point method.
|
* This is the entry point method.
|
||||||
*/
|
*/
|
||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
new GCubeCkanDataCatalogPanel(RootPanel.get(DIV_PORTLET_ID), eventManager.getEventBus());
|
GCubeCkanDataCatalogPanel panel = new GCubeCkanDataCatalogPanel(RootPanel.get(DIV_PORTLET_ID), eventManager.getEventBus());
|
||||||
|
eventManager.setPanel(panel);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
*/
|
*/
|
||||||
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
|
package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
|
||||||
|
|
||||||
|
import com.google.gwt.core.shared.GWT;
|
||||||
import com.google.gwt.dom.client.Style.Unit;
|
import com.google.gwt.dom.client.Style.Unit;
|
||||||
import com.google.gwt.event.dom.client.LoadEvent;
|
import com.google.gwt.event.dom.client.LoadEvent;
|
||||||
import com.google.gwt.event.dom.client.LoadHandler;
|
import com.google.gwt.event.dom.client.LoadHandler;
|
||||||
|
@ -27,6 +28,10 @@ public class CkanFramePanel extends FlowPanel{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static native void print(String msg)/*-{
|
||||||
|
console.log(msg);
|
||||||
|
}-*/;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instance frame.
|
* Instance frame.
|
||||||
*
|
*
|
||||||
|
@ -35,9 +40,16 @@ public class CkanFramePanel extends FlowPanel{
|
||||||
*/
|
*/
|
||||||
public Frame instanceFrame(String ckanUrlConnector) {
|
public Frame instanceFrame(String ckanUrlConnector) {
|
||||||
|
|
||||||
|
try{
|
||||||
|
if(frame != null)
|
||||||
|
remove(frame);
|
||||||
|
}catch(Exception e){
|
||||||
|
print("Error " + e);
|
||||||
|
}
|
||||||
|
|
||||||
frame = new Frame(ckanUrlConnector);
|
frame = new Frame(ckanUrlConnector);
|
||||||
frame.getElement().getStyle().setBorderWidth(0, Unit.PX);
|
frame.getElement().getStyle().setBorderWidth(0, Unit.PX);
|
||||||
// frame.getElement().setPropertyString("frameBorder", "0");
|
// frame.getElement().setPropertyString("frameBorder", "0");
|
||||||
frame.addLoadHandler(new LoadHandler() {
|
frame.addLoadHandler(new LoadHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -34,6 +34,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
||||||
private Image loading = new Image(CkanPortletResources.ICONS.loading());
|
private Image loading = new Image(CkanPortletResources.ICONS.loading());
|
||||||
private RootPanel rootPanel;
|
private RootPanel rootPanel;
|
||||||
private HandlerManager eventBus;
|
private HandlerManager eventBus;
|
||||||
|
private String baseURLCKANConnector;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Instantiates a new g cube ckan data catalog panel.
|
* Instantiates a new g cube ckan data catalog panel.
|
||||||
|
@ -54,7 +55,8 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String ckanUrlConnector) {
|
public void onSuccess(String ckanUrlConnector) {
|
||||||
GWT.log("Instancing CKAN iframe with url: "+ckanUrlConnector);
|
GWT.log("Instancing CKAN iframe with url: "+ckanUrlConnector);
|
||||||
instanceCkanFrame(ckanUrlConnector);
|
baseURLCKANConnector = ckanUrlConnector;
|
||||||
|
instanceCkanFrame(baseURLCKANConnector);
|
||||||
GCubeCkanDataCatalogPanel.this.rootPanel.remove(loading);
|
GCubeCkanDataCatalogPanel.this.rootPanel.remove(loading);
|
||||||
updateSize();
|
updateSize();
|
||||||
}
|
}
|
||||||
|
@ -151,7 +153,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
||||||
* @param ckanUrlConnector the ckan url connector
|
* @param ckanUrlConnector the ckan url connector
|
||||||
* @return the frame
|
* @return the frame
|
||||||
*/
|
*/
|
||||||
private Frame instanceCkanFrame(String ckanUrlConnector){
|
public Frame instanceCkanFrame(String ckanUrlConnector){
|
||||||
|
|
||||||
return ckanFramePanel.instanceFrame(ckanUrlConnector);
|
return ckanFramePanel.instanceFrame(ckanUrlConnector);
|
||||||
|
|
||||||
|
@ -185,4 +187,12 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate{
|
||||||
if(ckanFramePanel.getFrame()!=null)
|
if(ckanFramePanel.getFrame()!=null)
|
||||||
ckanFramePanel.getFrame().setSize(rootWidth+"px", height+"px");
|
ckanFramePanel.getFrame().setSize(rootWidth+"px", height+"px");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the baseURLCKANConnector
|
||||||
|
*/
|
||||||
|
public String getBaseURLCKANConnector() {
|
||||||
|
return baseURLCKANConnector;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue