diff --git a/.classpath b/.classpath
index 61bb68c..1e9c243 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -35,5 +35,5 @@
-
+
diff --git a/.settings/com.gwtplugins.gdt.eclipse.core.prefs b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
index 3f0dc49..2377aa7 100644
--- a/.settings/com.gwtplugins.gdt.eclipse.core.prefs
+++ b/.settings/com.gwtplugins.gdt.eclipse.core.prefs
@@ -1,4 +1,4 @@
eclipse.preferences.version=1
-lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.4.0-SNAPSHOT
+lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-3.5.0-SNAPSHOT
warSrcDir=src/main/webapp
warSrcDirIsOutput=false
diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component
index 7653269..5714c34 100644
--- a/.settings/org.eclipse.wst.common.component
+++ b/.settings/org.eclipse.wst.common.component
@@ -1,5 +1,5 @@
-
+
@@ -78,8 +78,18 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -159,7 +169,12 @@
-
+
+
+
+
+
+
@@ -239,7 +254,12 @@
-
+
+
+
+
+
+
@@ -319,7 +339,12 @@
-
+
+
+
+
+
+
@@ -399,7 +424,12 @@
-
+
+
+
+
+
+
@@ -479,7 +509,15 @@
-
+
+ uses
+
+
+
+
+
+
+
@@ -559,7 +597,12 @@
-
+
+
+
+
+
+
@@ -639,7 +682,12 @@
-
+
+
+
+
+
+
@@ -719,7 +767,12 @@
-
+
+
+
+
+
+
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f482f2..11ba5b4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [v3.5.0-SNAPSHOT]
+
+- Supported the cross-filtering [#25074]
+- Supported the grouped custom layers [#25110]
+
## [v3.4.0] - 2023-05-11
- Integrated the geoportal-data-mapper component [#24978]
diff --git a/pom.xml b/pom.xml
index e918346..1f79fa4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,13 +14,13 @@
org.gcube.portlets.user
geoportal-data-viewer-app
war
- 3.4.0
+ 3.5.0-SNAPSHOT
GeoPortal Data Viewer App
The GeoPortal Data Viewer App is an application to access, discovery and navigate the Geoportal projects/documents by a Web-Map Interface
- 2.9.0
+ 2.10.0
PRETTY
2.6.2
${project.build.directory}/${project.build.finalName}
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 795b99b..d72cfac 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
@@ -5,13 +5,18 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.gcube.application.geoportalcommon.shared.GNADataViewerConfigProfile;
import org.gcube.application.geoportalcommon.shared.GeoportalItemReferences;
+import org.gcube.application.geoportalcommon.shared.geoportal.config.GroupedLayersDV;
+import org.gcube.application.geoportalcommon.shared.geoportal.config.layers.LayerIDV;
+import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDILayer;
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
import org.gcube.application.geoportalcommon.shared.geoportal.project.RelationshipDV;
+import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_DATA_HANDLER;
import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MapEventType;
@@ -20,6 +25,8 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.AddLayerToMapEv
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEvent;
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEvent.LAYER_TYPE;
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEventHandler;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.ApplyCQLToLayerOnMapEvent;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.ApplyCQLToLayerOnMapEventHandler;
import org.gcube.portlets.user.geoportaldataviewer.client.events.ChangeMapLayerEvent;
import org.gcube.portlets.user.geoportaldataviewer.client.events.ChangeMapLayerEventHandler;
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent;
@@ -28,8 +35,12 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetai
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.DO_LAYER_ACTION;
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.SwapLayer;
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEventHandler;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.FitMapToExtentEvent;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.FitMapToExtentEventHandler;
import org.gcube.portlets.user.geoportaldataviewer.client.events.MapExtentToEvent;
import org.gcube.portlets.user.geoportaldataviewer.client.events.MapExtentToEventHandler;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.OverlayCustomLayerToMapEvent;
+import org.gcube.portlets.user.geoportaldataviewer.client.events.OverlayCustomLayerToMapEventHandler;
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;
@@ -50,9 +61,11 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.collections.Ope
import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerMap;
+import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerMap.CQL_FACILITY_ORIGIN;
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAImages;
import org.gcube.portlets.user.geoportaldataviewer.client.ui.GeonaDataViewMainPanel;
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.relation.TimelineManagerStatus;
+import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.OLGeoJSONUtil;
import org.gcube.portlets.user.geoportaldataviewer.client.util.ControlledCallBack;
import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon;
import org.gcube.portlets.user.geoportaldataviewer.client.util.URLUtil;
@@ -85,12 +98,6 @@ import com.google.gwt.user.client.ui.Widget;
import ol.Coordinate;
import ol.Feature;
-import ol.OLFactory;
-import ol.format.GeoJson;
-import ol.format.GeoJsonFeatureOptions;
-import ol.format.GeoJsonOptions;
-import ol.proj.Projection;
-import ol.proj.ProjectionOptions;
/**
* Entry point classes define onModuleLoad()
.
@@ -154,6 +161,8 @@ public class GeoportalDataViewer implements EntryPoint {
// A cache (Layer_ID, GeoJSON) of layer features loaded via GetFeature Request
private HashMap layerFeaturesCache = new HashMap();
+ private ViewerConfiguration viewerConfiguration;
+
/**
* This is the entry point method.
*/
@@ -228,6 +237,7 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void onSuccess(ViewerConfiguration result) {
super.onSuccess(result);
+ viewerConfiguration = result;
GWT.log("Received init config : " + result);
GWT.log("Loading base layers, count : " + result.getBaseLayers().size());
@@ -282,6 +292,8 @@ public class GeoportalDataViewer implements EntryPoint {
mainPanel.openCollectionMenu();
+ loadConfigureduGroupedLayersForUCD();
+
GWT.log("DONE INIT LOAD");
}
@@ -302,6 +314,77 @@ public class GeoportalDataViewer implements EntryPoint {
RootPanel.get(APP_DIV).add(attributionDiv);
}
+ /**
+ * Load Overlay Layers and Cross-Filtering layers for UCD
+ *
+ * Load configuredu grouped layers for UCD.
+ */
+ public void loadConfigureduGroupedLayersForUCD() {
+
+ GeoportalDataViewerServiceAsync.Util.getInstance().getAvaiableCustomGroupedLayersForUCD(
+ GEOPORTAL_DATA_HANDLER.geoportal_grouped_overlay_layers,
+ new AsyncCallback