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 d1995ec..6ab4894 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 @@ -31,6 +31,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.QueryDataEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.SearchPerformedEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.SearchPerformedEventHandler; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent; +import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent.EVENT_SOURCE; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEventHandler; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowPopupOnCentroiEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowPopupOnCentroiEventHandler; @@ -246,7 +247,7 @@ public class GeoportalDataViewer implements EntryPoint { } GeoportalItemReferences gir = new GeoportalItemReferences(paramGeonaItemID, paramGeonaItemType); - applicationBus.fireEvent(new ShowDetailsEvent(gir, null, true)); + applicationBus.fireEvent(new ShowDetailsEvent(gir, null, true, true, EVENT_SOURCE.LOCATE_ON_INIT)); } mainPanel.openCollectionMenu(); @@ -388,8 +389,15 @@ public class GeoportalDataViewer implements EntryPoint { boolean found = false; GWT.log("Product with id: " + projectID + " found? " + found); - if (!showDetailsEvent.isEventFromTimeline()) + final EVENT_SOURCE sourceEvent = showDetailsEvent.getSourceEvent(); + + if(!sourceEvent.equals(EVENT_SOURCE.LOCATE_FROM_TIMELINE)) { timelineMS.hideTimelineProjectRelations(); + } + + if(sourceEvent.equals(EVENT_SOURCE.LOCATE_SEARCHED)) { + layerManager.removeAllDetailLayers(); + } GeoportalDataViewerServiceAsync.Util.getInstance().getProjectViewForId(profileID, projectID, new AsyncCallback() { @@ -412,6 +420,10 @@ public class GeoportalDataViewer implements EntryPoint { GWT.log("LoadTimelineRelationships is true and the project has Relationships"); timelineMS.showTimelineProjectRelations(result.getTheProjectDV(), false); } + + if(sourceEvent.equals(EVENT_SOURCE.LOCATE_ON_INIT)) { + layerManager.fireGoToLayers(); + } } }); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java index 6367cd6..64a9c06 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java @@ -73,10 +73,6 @@ public class GeoportalDataViewerConstants { } - public enum RECORD_TYPE { - CONCESSIONE - } - public static final double ITALY_CENTER_LONG = 12.45; public static final double ITALY_CENTER_LAT = 42.98; diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java index 24a1c20..768de26 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java @@ -25,6 +25,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMap import org.gcube.portlets.user.geoportaldataviewer.client.events.QueryDataEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.QueryDataEventHandler; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent; +import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent.EVENT_SOURCE; import org.gcube.portlets.user.geoportaldataviewer.client.events.ZoomOutOverMinimumEvent; import org.gcube.portlets.user.geoportaldataviewer.client.events.ZoomOutOverMinimumEventHandler; import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped; @@ -62,6 +63,7 @@ import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.EventListener; import com.google.gwt.user.client.Random; +import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlexTable; @@ -190,14 +192,24 @@ public class LayerManager { @Override public void onSuccess(List listGeonaDataObjects) { - GWT.log("GeoNaDataObject's is/are " + listGeonaDataObjects.size()); - - if (listGeonaDataObjects == null || listGeonaDataObjects.isEmpty()) + if (listGeonaDataObjects == null) return; - List theFeatures = null; + GWT.log("GeoNaDataObject's is/are " + listGeonaDataObjects.size()); MapEventType sourceEvent = queryEvent.getSourceMapEventType(); + GWT.log("sourceEvent is: " + sourceEvent); + if (sourceEvent.equals(MapEventType.ADDED_CENTROID_LAYER_TO_MAP) + && (listGeonaDataObjects.size() == 0)) { + // here the centroid is not available +// GeoportalDataViewer.showPopover(RootPanel.get(GeoportalDataViewer.APP_NOTIFIER), +// "No centroid available for the selected project", +// "Project without a centroid"); + olMap.setCenter(queryEvent.getQueryClickExtent().getCenter()); + return; + } + + List theFeatures = null; // TODO SWTCH FOR EARCH ITEM TYPE for (final GeoNaSpatialQueryResult geoNaDataObject : listGeonaDataObjects) { @@ -407,7 +419,7 @@ public class LayerManager { String productId = productIds.get(0); LayerObjectType layerObjectType = layerObject.getType(); return new ShowDetailsEvent(layerObjectType != null ? layerObjectType.name() : null, - layerObject.getProfileID(), productId, fRow, true); + layerObject.getProfileID(), productId, fRow, true, EVENT_SOURCE.OPEN_DETAILS); } return null; @@ -497,10 +509,10 @@ public class LayerManager { lo.setProjectID(projectID); lo.setProfileID(profileID); lo.setProjectDV(projectDV); - - GWT.log("LayerObject ID is: "+lo.getProjectID()); - if(lo.getProjectDV()!=null) - GWT.log("LayerObject into ProjectDV is: "+lo.getProjectDV().getId()); + + GWT.log("LayerObject ID is: " + lo.getProjectID()); + if (lo.getProjectDV() != null) + GWT.log("LayerObject into ProjectDV is: " + lo.getProjectDV().getId()); String layerNameKey = layerItem.getName(); @@ -543,14 +555,14 @@ public class LayerManager { } }); } - + public void setCQLForLayerToIndexLayer(String layerName, String cqlFilter) { LayerObject theLo = mapIndexLayerObjects.get(layerName); - if(theLo!=null) { - boolean isCQLFilter = cqlFilter!=null; + if (theLo != null) { + boolean isCQLFilter = cqlFilter != null; theLo.getLayerItem().setCqlFilter(cqlFilter); theLo.getLayerItem().setCqlFilterAvailable(isCQLFilter); - + } } @@ -721,7 +733,7 @@ public class LayerManager { }); } }); - + // //Ordering for temporal dimension // try { // Collections.sort(listGeoNaDataObject, new TemporalComparatorUtil()); @@ -795,7 +807,7 @@ public class LayerManager { public void onBrowserEvent(Event event) { if (Event.ONCLICK == event.getTypeInt()) { applicationBus.fireEvent(new ShowDetailsEvent(lo.getType().name(), - lo.getProfileID(), newProjectID, null, true)); + lo.getProfileID(), newProjectID, null, true, EVENT_SOURCE.OPEN_PROJECTS)); } } @@ -956,25 +968,43 @@ public class LayerManager { GWT.log("The selected Feature is: " + feature); // GeoportalDataViewerConstants.print("The selected Feature is: "+feature); FeatureRow theFeature = feature; - Button button = new Button("Open Details"); - button.getElement().setId("open-details"); - button.setType(ButtonType.LINK); + Button buttonOpenDtl = new Button("Open Details"); + buttonOpenDtl.getElement().setId("open-details"); + buttonOpenDtl.setType(ButtonType.LINK); - if (button != null) { - vpPanel.add(button); - button.setType(ButtonType.LINK); - button.addClickHandler(new ClickHandler() { + buttonOpenDtl.addClickHandler(new ClickHandler() { - @Override - public void onClick(ClickEvent event) { - ShowDetailsEvent toEvent = parseGeonaReferences(geoNaDataObject.getSourceLayerObject(), theFeature); - applicationBus.fireEvent(toEvent); + @Override + public void onClick(ClickEvent event) { + GWT.log("Open Details clicked"); +// ShowDetailsEvent toEvent = parseGeonaReferences(geoNaDataObject.getSourceLayerObject(), theFeature); +// applicationBus.fireEvent(toEvent); + fireOpenDetails(geoNaDataObject.getSourceLayerObject(), theFeature); - } - }); - } + } + }); - Coordinate centerTo = null; + Button buttonViewLayers = new Button("Go to Layers"); + buttonViewLayers.getElement().setId("go-to-layers"); + buttonViewLayers.getElement().setTitle("Zoom to Layers"); + buttonViewLayers.setType(ButtonType.LINK); + + buttonViewLayers.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + GWT.log("View Layers clicked"); + fireGoToLayers(); + + } + }); + + FlowPanel flow = new FlowPanel(); + flow.add(buttonOpenDtl); + flow.add(buttonViewLayers); + vpPanel.add(flow); + + Coordinate positionTo = null; GWT.log("geometry is: " + feature.getGeometry()); if (feature.getGeometry() != null) { GWT.log("trasforming geometry: " + feature.getGeometry().getToJSONObject()); @@ -998,7 +1028,7 @@ public class LayerManager { center = MapUtils.transformCoordiante(center, MAP_PROJECTION.EPSG_4326.getName(), MAP_PROJECTION.EPSG_3857.getName()); } - centerTo = center; + positionTo = center; } else { Extent geomExtent = geom.getExtent(); @@ -1018,39 +1048,81 @@ public class LayerManager { ExtentWrapped ew = new ExtentWrapped(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(), upperCoord.getY()); - centerTo = new Coordinate(ew.getCenter().getX(), ew.getCenter().getY()); + positionTo = new Coordinate(ew.getCenter().getX(), ew.getCenter().getY()); } - GWT.log("center is: " + centerTo); + GWT.log("positionTo is: " + positionTo); } // fallback - if (centerTo == null) - centerTo = onFailureCenterTo; + if (positionTo == null) + positionTo = onFailureCenterTo; - olMap.showPopup(vpPanel.toString(), centerTo); - - Scheduler.get().scheduleDeferred(new ScheduledCommand() { + final Coordinate centerTo = positionTo; + new Timer() { @Override - public void execute() { - Element buttonElement = DOM.getElementById("open-details"); - Event.sinkEvents(buttonElement, Event.ONCLICK); - Event.setEventListener(buttonElement, new EventListener() { + public void run() { + olMap.showPopup(vpPanel.toString(), centerTo); + + Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override - public void onBrowserEvent(Event event) { - if (Event.ONCLICK == event.getTypeInt()) { - ShowDetailsEvent toEvent = parseGeonaReferences(geoNaDataObject.getSourceLayerObject(), - theFeature); - applicationBus.fireEvent(toEvent); - } + public void execute() { + Element buttonElement = DOM.getElementById("open-details"); + Event.sinkEvents(buttonElement, Event.ONCLICK); + Event.setEventListener(buttonElement, new EventListener() { + + @Override + public void onBrowserEvent(Event event) { + if (Event.ONCLICK == event.getTypeInt()) { +// ShowDetailsEvent toEvent = parseGeonaReferences( +// geoNaDataObject.getSourceLayerObject(), theFeature); +// applicationBus.fireEvent(toEvent); + + fireOpenDetails(geoNaDataObject.getSourceLayerObject(), theFeature); + } + } + }); } + }); + + Scheduler.get().scheduleDeferred(new ScheduledCommand() { + + @Override + public void execute() { + Element buttonElement = DOM.getElementById("go-to-layers"); + Event.sinkEvents(buttonElement, Event.ONCLICK); + Event.setEventListener(buttonElement, new EventListener() { + + @Override + public void onBrowserEvent(Event event) { + if (Event.ONCLICK == event.getTypeInt()) { + fireGoToLayers(); + } + } + }); + } + + }); + } - }); + }.schedule(OpenLayerMap.SET_CENTER_ANIMATION_DURATION + 100); + olMap.setCenter(centerTo); + + } + + protected void fireGoToLayers() { + int zoomValue = (int) (OLMapManager.LAYER_DETAIL_MAX_RESOLUTION + 1); + olMap.setZoom(zoomValue); + } + + protected void fireOpenDetails(LayerObject layerObject, FeatureRow theFeature) { + ShowDetailsEvent toEvent = parseGeonaReferences(layerObject, theFeature); + applicationBus.fireEvent(toEvent); } /** diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEvent.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEvent.java index a4f2cc7..37d2864 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEvent.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEvent.java @@ -1,83 +1,83 @@ -package org.gcube.portlets.user.geoportaldataviewer.client.events; - -import org.gcube.application.geoportalcommon.shared.SearchingFilter; -import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.RECORD_TYPE; - -import com.google.gwt.event.shared.GwtEvent; - -/** - * The Class GetListOfRecordsEvent. - * - * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it - * - * Dec 7, 2021 - */ -public class GetListOfRecordsEvent extends GwtEvent { - - /** The type. */ - public static Type TYPE = new Type(); - private RECORD_TYPE recordType; - private SearchingFilter sortFilter; - - /** - * Instantiates a new cancel upload event. - * - * @param recordType the record type - * @param sortFilter the sort filter - */ - public GetListOfRecordsEvent(RECORD_TYPE recordType, SearchingFilter sortFilter) { - this.recordType = recordType; - this.sortFilter = sortFilter; - } - - /** - * Gets the associated type. - * - * @return the associated type - */ - /* - * (non-Javadoc) - * - * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() - */ - @Override - public Type getAssociatedType() { - return TYPE; - } - - /** - * Dispatch. - * - * @param handler the handler - */ - /* - * (non-Javadoc) - * - * @see - * com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared. - * EventHandler) - */ - @Override - protected void dispatch(GetListOfRecordsEventHandler handler) { - handler.onGetList(this); - } - - /** - * Gets the record type. - * - * @return the record type - */ - public RECORD_TYPE getRecordType() { - return recordType; - } - - /** - * Gets the sort filter. - * - * @return the sort filter - */ - public SearchingFilter getSortFilter() { - return sortFilter; - } - -} +//package org.gcube.portlets.user.geoportaldataviewer.client.events; +// +//import org.gcube.application.geoportalcommon.shared.SearchingFilter; +//import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.RECORD_TYPE; +// +//import com.google.gwt.event.shared.GwtEvent; +// +///** +// * The Class GetListOfRecordsEvent. +// * +// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it +// * +// * Dec 7, 2021 +// */ +//public class GetListOfRecordsEvent extends GwtEvent { +// +// /** The type. */ +// public static Type TYPE = new Type(); +// private RECORD_TYPE recordType; +// private SearchingFilter sortFilter; +// +// /** +// * Instantiates a new cancel upload event. +// * +// * @param recordType the record type +// * @param sortFilter the sort filter +// */ +// public GetListOfRecordsEvent(RECORD_TYPE recordType, SearchingFilter sortFilter) { +// this.recordType = recordType; +// this.sortFilter = sortFilter; +// } +// +// /** +// * Gets the associated type. +// * +// * @return the associated type +// */ +// /* +// * (non-Javadoc) +// * +// * @see com.google.gwt.event.shared.GwtEvent#getAssociatedType() +// */ +// @Override +// public Type getAssociatedType() { +// return TYPE; +// } +// +// /** +// * Dispatch. +// * +// * @param handler the handler +// */ +// /* +// * (non-Javadoc) +// * +// * @see +// * com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared. +// * EventHandler) +// */ +// @Override +// protected void dispatch(GetListOfRecordsEventHandler handler) { +// handler.onGetList(this); +// } +// +// /** +// * Gets the record type. +// * +// * @return the record type +// */ +// public RECORD_TYPE getRecordType() { +// return recordType; +// } +// +// /** +// * Gets the sort filter. +// * +// * @return the sort filter +// */ +// public SearchingFilter getSortFilter() { +// return sortFilter; +// } +// +//} diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEventHandler.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEventHandler.java index 4d00089..76b480a 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEventHandler.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/GetListOfRecordsEventHandler.java @@ -1,22 +1,22 @@ -package org.gcube.portlets.user.geoportaldataviewer.client.events; - -import com.google.gwt.event.shared.EventHandler; - - -/** - * The Interface GetListOfRecordsEventHandler. - * - * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it - * - * Aug 4, 2021 - */ -public interface GetListOfRecordsEventHandler extends EventHandler { - - - /** - * On get list. - * - * @param getListOfRecordsEvent the get list of records event - */ - void onGetList(GetListOfRecordsEvent getListOfRecordsEvent); -} \ No newline at end of file +//package org.gcube.portlets.user.geoportaldataviewer.client.events; +// +//import com.google.gwt.event.shared.EventHandler; +// +// +///** +// * The Interface GetListOfRecordsEventHandler. +// * +// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it +// * +// * Aug 4, 2021 +// */ +//public interface GetListOfRecordsEventHandler extends EventHandler { +// +// +// /** +// * On get list. +// * +// * @param getListOfRecordsEvent the get list of records event +// */ +// void onGetList(GetListOfRecordsEvent getListOfRecordsEvent); +//} \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowDetailsEvent.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowDetailsEvent.java index b55feec..f869241 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowDetailsEvent.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/ShowDetailsEvent.java @@ -21,6 +21,18 @@ public class ShowDetailsEvent extends GwtEvent { private String projectID; private boolean loadTimelineRelationships; private boolean isEventFromTimeline; + private EVENT_SOURCE sourceEvent; + + /** + * The Enum EVENT_SOURCE. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Dec 22, 2022 + */ + public static enum EVENT_SOURCE { + LOCATE_ON_INIT, OPEN_DETAILS, OPEN_PROJECTS, LOCATE_SEARCHED, LOCATE_FROM_TIMELINE, GO_TO_LAYERS + } /** * Instantiates a new show details event. @@ -30,14 +42,16 @@ public class ShowDetailsEvent extends GwtEvent { * @param projectID the project ID * @param featureRow the feature row * @param loadTimelineRelationships the load timeline relationships + * @param sourceEvent the source event */ public ShowDetailsEvent(String layerObjectType, String profileID, String projectID, FeatureRow featureRow, - boolean loadTimelineRelationships) { + boolean loadTimelineRelationships, EVENT_SOURCE sourceEvent) { this.layerObjectType = layerObjectType; this.profileID = profileID; this.projectID = projectID; this.featureRow = featureRow; this.loadTimelineRelationships = loadTimelineRelationships; + this.sourceEvent = sourceEvent; } /** @@ -46,13 +60,16 @@ public class ShowDetailsEvent extends GwtEvent { * @param gir the gir * @param featureRow the feature row * @param loadTimelineRelationships the load timeline relationships + * @param sourceEvent the source event */ - public ShowDetailsEvent(GeoportalItemReferences gir, FeatureRow featureRow, boolean loadTimelineRelationships) { + public ShowDetailsEvent(GeoportalItemReferences gir, FeatureRow featureRow, boolean loadTimelineRelationships, + boolean goToLayers, EVENT_SOURCE sourceEvent) { this.layerObjectType = gir.getLayerObjectType(); this.profileID = gir.getProfileID(); this.projectID = gir.getProjectID(); this.featureRow = featureRow; this.loadTimelineRelationships = loadTimelineRelationships; + this.sourceEvent = sourceEvent; } /** @@ -73,6 +90,15 @@ public class ShowDetailsEvent extends GwtEvent { return isEventFromTimeline; } + /** + * Gets the source event. + * + * @return the source event + */ + public EVENT_SOURCE getSourceEvent() { + return sourceEvent; + } + /** * Gets the type. * diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java index 226328c..71f96c4 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java @@ -36,6 +36,7 @@ import ol.OverlayOptions; import ol.Size; import ol.View; import ol.ViewOptions; +import ol.animation.AnimationOptions; import ol.event.EventListener; import ol.geom.Geometry; import ol.interaction.Draw; @@ -71,6 +72,10 @@ import ol.source.XyzOptions; */ public abstract class OpenLayerMap { + public static final int SET_CENTER_ANIMATION_DURATION = 500; + + public static final int ZOOM_ANIMATE_DURATION = 3000; + public static final int MAX_ZOOM = 21; /** @@ -297,7 +302,13 @@ public abstract class OpenLayerMap { * @param centerCoordinate the new center */ public void setCenter(Coordinate centerCoordinate) { - view.setCenter(centerCoordinate); + + AnimationOptions animations = new AnimationOptions(); + animations.setCenter(centerCoordinate); + animations.setDuration(SET_CENTER_ANIMATION_DURATION); + view.animate(animations); + + //view.setCenter(centerCoordinate); } /** @@ -306,7 +317,11 @@ public abstract class OpenLayerMap { * @param zoom the new zoom */ public void setZoom(int zoom) { - view.setZoom(zoom); + AnimationOptions animations = new AnimationOptions(); + animations.setDuration(ZOOM_ANIMATE_DURATION); + animations.setZoom(zoom); + view.animate(animations); + //view.setZoom(zoom); } /** @@ -952,4 +967,6 @@ public abstract class OpenLayerMap { return map.get((map.keySet().toArray())[index]); } + + } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/relation/TimelineRelationPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/relation/TimelineRelationPanel.java index 4d606ab..4c17cec 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/relation/TimelineRelationPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/relation/TimelineRelationPanel.java @@ -7,6 +7,7 @@ import org.gcube.application.geoportalcommon.shared.geoportal.geojson.GeoJSON; import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV; import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent; +import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent.EVENT_SOURCE; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowPopupOnCentroiEvent; import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAImages; import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.ProjectUtil; @@ -143,7 +144,7 @@ public class TimelineRelationPanel extends Composite { final String thePofileID = references[0]; final String theProjectID = references[1]; GeoportalItemReferences gir = new GeoportalItemReferences(theProjectID, thePofileID); - ShowDetailsEvent showDetailsEvent = new ShowDetailsEvent(gir, null, false); + ShowDetailsEvent showDetailsEvent = new ShowDetailsEvent(gir, null, false, false, EVENT_SOURCE.LOCATE_FROM_TIMELINE); showDetailsEvent.setEventFromTimeline(true); GWT.log("fireEvent: " + showDetailsEvent); 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 9735fa9..6a29c8f 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 @@ -19,6 +19,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerSer import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent; 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.ShowDetailsEvent.EVENT_SOURCE; import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowPopupOnCentroiEvent; import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon; import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil; @@ -356,7 +357,7 @@ public class SearchFacilityUI extends Composite { profileID); // here appManagerBus.fireEvent(new ClosedViewDetailsEvent()); - appManagerBus.fireEvent(new ShowDetailsEvent(gir, null, true)); + appManagerBus.fireEvent(new ShowDetailsEvent(gir, null, true, true, EVENT_SOURCE.LOCATE_SEARCHED)); appManagerBus.fireEvent(new ShowPopupOnCentroiEvent(profileID, resultDoc.getProjectID(), resultDoc.getSpatialReference()));