diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java index 08bcffa..6b067a2 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java @@ -88,7 +88,7 @@ import ol.layer.Image; public class GeoportalDataViewer implements EntryPoint { public static final String DIV_TIMELINE_DATA = "timeline-data"; - + public static final String APP_NOTIFIER = "app-notifier"; /** The Constant APP_DIV. */ @@ -229,7 +229,8 @@ public class GeoportalDataViewer implements EntryPoint { GWT.log("Loading collections, count " + result.getAvailableCollections().size()); - mainPanel.setAvailableCollections(result.getAvailableCollections().values(), paramGeonaItemType); + mainPanel.setAvailableCollections(result.getAvailableCollections().values(), + paramGeonaItemType); if (paramGeonaItemID != null) { if (paramGeonaItemType == null) { @@ -243,9 +244,9 @@ public class GeoportalDataViewer implements EntryPoint { paramGeonaItemType); applicationBus.fireEvent(new ShowDetailsEvent(gir, null, true)); } - + mainPanel.openCollectionMenu(); - + GWT.log("DONE INIT LOAD"); } @@ -357,7 +358,8 @@ public class GeoportalDataViewer implements EntryPoint { if (addLayerToMapEvent.getTheProjectDV() != null) { layerManager.addLayerToMapForProject(addLayerToMapEvent.getTheProjectDV().getProfileID(), - addLayerToMapEvent.getTheProjectDV().getId(), addLayerToMapEvent.getTheProjectDV(), addLayerToMapEvent.isNotifyClashing()); + addLayerToMapEvent.getTheProjectDV().getId(), addLayerToMapEvent.getTheProjectDV(), + addLayerToMapEvent.isNotifyClashing()); } } @@ -612,9 +614,14 @@ public class GeoportalDataViewer implements EntryPoint { @Override public void onShowPopup(ShowPopupOnCentroiEvent showPopupOnCentroiEvent) { - if (showPopupOnCentroiEvent.getDocument() != null) - performWFSQueryOnCentroid(showPopupOnCentroiEvent.getDocument().getProjectID(), - showPopupOnCentroiEvent.getCentroidLong(), showPopupOnCentroiEvent.getCentroidLat()); + if (showPopupOnCentroiEvent.getProfileID() != null && showPopupOnCentroiEvent.getProjectID() != null) { + GWT.log("ShowPopupOnCentroiEvent: "+showPopupOnCentroiEvent); + Coordinate transfCoord = MapUtils + .geoJSONTToBBoxCenter(showPopupOnCentroiEvent.getSpatialReference(), null, null); + + performWFSQueryOnCentroid(showPopupOnCentroiEvent.getProjectID(), transfCoord.getX(), + transfCoord.getY()); + } } }); @@ -693,7 +700,7 @@ public class GeoportalDataViewer implements EntryPoint { } } - + public static void showPopover(final Widget w, String message, String heading) { final Popover popover = new Popover(); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerService.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerService.java index 3e30683..15e0752 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerService.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerService.java @@ -7,6 +7,7 @@ import org.gcube.application.geoportalcommon.shared.GNADataViewerConfigProfile; import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences; import org.gcube.application.geoportalcommon.shared.ResultSetPaginatedData; import org.gcube.application.geoportalcommon.shared.SearchingFilter; +import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView; import org.gcube.application.geoportalcommon.shared.gis.BoundsMap; @@ -169,4 +170,13 @@ public interface GeoportalDataViewerService extends RemoteService { */ List getRelationshipsForTimeline(String profileID, String projectID) throws Exception; + /** + * Gets the spatial reference. + * + * @param profileID the profile ID + * @param projectID the project ID + * @return the spatial reference + */ + GeoJSON getSpatialReference(String profileID, String projectID); + } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerServiceAsync.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerServiceAsync.java index 63bd285..080e2ef 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerServiceAsync.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerServiceAsync.java @@ -7,6 +7,7 @@ import org.gcube.application.geoportalcommon.shared.GNADataViewerConfigProfile; import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences; import org.gcube.application.geoportalcommon.shared.ResultSetPaginatedData; import org.gcube.application.geoportalcommon.shared.SearchingFilter; +import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV; import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView; import org.gcube.application.geoportalcommon.shared.gis.BoundsMap; @@ -72,4 +73,6 @@ public interface GeoportalDataViewerServiceAsync { void getRelationshipsForTimeline(String profileID, String projectID, AsyncCallback> callback); + void getSpatialReference(String profileID, String projectID, AsyncCallback callback); + } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowPopupOnCentroiEvent.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowPopupOnCentroiEvent.java index cfc8895..c07ad23 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowPopupOnCentroiEvent.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowPopupOnCentroiEvent.java @@ -1,6 +1,6 @@ package org.gcube.portlets.user.geoportaldataviewer.client.events; -import org.gcube.application.geoportalcommon.shared.geoportal.DocumentDV; +import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; import com.google.gwt.event.shared.GwtEvent; @@ -13,9 +13,9 @@ import com.google.gwt.event.shared.GwtEvent; */ public class ShowPopupOnCentroiEvent extends GwtEvent { public static Type TYPE = new Type(); - private DocumentDV document; - private Double centroidLong; - private Double centroidLat; + private String profileID; + private String projectID; + private GeoJSON spatialReference; /** * Instantiates a new show details event. @@ -25,10 +25,10 @@ public class ShowPopupOnCentroiEvent extends GwtEvent() { + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + + @Override + public void onSuccess(GeoJSON spatialReference) { + if (spatialReference != null) { + applicationBus.fireEvent( + new ShowPopupOnCentroiEvent(thePofileID, theProjectID, spatialReference)); + } + + } + }); + } public String getSelectedProjectID() { - return selectedProjectID; + return selectedTimelineProjectID; } public static native String instanceTimeline(String idDivContainer, JSONArray jsonItems, diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/search/SearchFacilityUI.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/search/SearchFacilityUI.java index 15279ad..dca2ec5 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/search/SearchFacilityUI.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/search/SearchFacilityUI.java @@ -15,12 +15,10 @@ import org.gcube.application.geoportalcommon.shared.WhereClause; import org.gcube.application.geoportalcommon.shared.geoportal.DocumentDV; import org.gcube.application.geoportalcommon.shared.geoportal.ResultDocumentDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV; -import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync; import org.gcube.portlets.user.geoportaldataviewer.client.events.SearchPerformedEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowPopupOnCentroiEvent; -import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils; import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon; import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil; @@ -52,8 +50,6 @@ import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Widget; -import ol.Coordinate; - /** * The Class SearchFacilityUI. * @@ -332,21 +328,8 @@ public class SearchFacilityUI extends Composite { GeoportalItemReferences gir = new GeoportalItemReferences(resultDoc.getProjectID(), profileID); appManagerBus.fireEvent(new ShowDetailsEvent(gir, null, true)); - - GeoJSON spatialReference = resultDoc.getSpatialReference(); - Coordinate transfCoord = MapUtils.geoJSONTToBBoxCenter(spatialReference, null, - null); - - Double centerLong = null; - Double centerLat = null; - - if (transfCoord != null) { - centerLong = transfCoord.getX(); - centerLat = transfCoord.getY(); - } - appManagerBus - .fireEvent(new ShowPopupOnCentroiEvent(resultDoc, centerLong, centerLat)); + .fireEvent(new ShowPopupOnCentroiEvent(profileID, resultDoc.getProjectID(), resultDoc.getSpatialReference())); } }); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java index c216ab9..ea86346 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java @@ -1035,7 +1035,8 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme } if (layerObject.getProjectDV().getSpatialReference() == null) { - GeoJSON geoJson = spatialReference(layerObject.getProfileID(), layerObject.getProjectID()); + GeoJSON geoJson = getSpatialReference(layerObject.getProfileID(), + layerObject.getProjectID()); layerObject.getProjectDV().setSpatialReference(geoJson); } @@ -1149,13 +1150,14 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme } /** - * Spatial reference. + * Gets the spatial reference. * * @param profileID the profile ID * @param projectID the project ID - * @return the geo JSON + * @return the spatial reference */ - private GeoJSON spatialReference(String profileID, String projectID) { + @Override + public GeoJSON getSpatialReference(String profileID, String projectID) { LOG.trace("spatialReference for profileID: " + profileID + ", projectID: " + projectID + "called"); try { new GeoportalServiceIdentityProxy(this.getThreadLocalRequest());