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 dd414c2..08bcffa 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
@@ -505,9 +505,6 @@ public class GeoportalDataViewer implements EntryPoint {
}
mainPanel.hideOverlayLayers();
- // layerManager.getOverlayLayerManager().hide();
- // hidePopupLayers();
-
}
});
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 92f72e3..c43f58d 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
@@ -171,16 +171,6 @@ public class LayerManager {
GWT.log("From querying removing layername: " + layerName + ", it is not visible");
listLO.remove(layerObject);
}
-// else {
-// ExtentWrapped layerExtent = olMap.getSourceExtentForLayer(layerName);
-// if(layerExtent!=null) {
-// ExtentWrapped centerQueryPoint = new ExtentWrapped(minX, minY, maxX,maxY);
-//
-// boolean contains = layerExtent.containsExtent(centerQueryPoint);
-// GWT.log("layer: "+layerName + " contains the queried BBOX: "+contains);
-// }
-// }
-//
}
}
@@ -714,6 +704,13 @@ public class LayerManager {
});
}
});
+
+// //Ordering for temporal dimension
+// try {
+// Collections.sort(listGeoNaDataObject, new TemporalComparatorUtil());
+// }catch (Exception e) {
+// // TODO: handle exception
+// }
String prevProjectId = "";
for (GeoNaSpatialQueryResult geoNaSpatialQueryResult : listGeoNaDataObject) {
@@ -753,7 +750,7 @@ public class LayerManager {
headingPanel.add(headingProfileName);
flowPanel.add(headingPanel);
flowPanel.add(new HTML(projectIntro));
-
+
TemporalReferenceDV tempRef = projectDV.getTemporalReference();
if (tempRef != null) {
flowPanel.add(new HTML(ProjectUtil.toHTMLCode(tempRef)));
@@ -901,8 +898,8 @@ public class LayerManager {
Object theValue = map.get(key);
String toStringValue = theValue + "";
// intFlex.setHTML(i, 0, key);
- intFlex.setHTML(intFlex.getRowCount() + 1, 0,
- "" + StringUtil.ellipsize(toStringValue, 100) + "");
+ intFlex.setHTML(intFlex.getRowCount() + 1, 0, ""
+ + StringUtil.ellipsize(toStringValue, 100) + "");
// i++;
} catch (Exception e) {
// TODO: handle exception
@@ -914,7 +911,7 @@ public class LayerManager {
TemporalReferenceDV tempRef = projectDV.getTemporalReference();
if (tempRef != null) {
-
+
flex.setHTML(flex.getRowCount() + 1, 0, ProjectUtil.toHTMLCode(tempRef));
}
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectUtil.java
index b588cd0..6de4d13 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectUtil.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectUtil.java
@@ -82,5 +82,4 @@ public class ProjectUtil {
return htmlCode;
}
-
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
index 04d599c..9ee7b7c 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.java
@@ -67,7 +67,7 @@ public class ProjectViewer extends Composite {
@UiField
HTMLPanel pageViewDetails;
-
+
@UiField
HTMLPanel projectViewerMainPanel;
@@ -88,6 +88,15 @@ public class ProjectViewer extends Composite {
@UiField
Button addLayersToMap;
+
+ @UiField
+ HTMLPanel toc_container;
+
+ @UiField
+ HTMLPanel toc_list_container;
+
+ @UiField
+ Button reduceToc;
@UiField
UListElement toc_list_anchors;
@@ -100,8 +109,6 @@ public class ProjectViewer extends Composite {
private HandlerManager applicationBus;
- private HandlerManager projectViewerBus;
-
private String projectViewerMainPanelID;
/**
@@ -110,7 +117,7 @@ public class ProjectViewer extends Composite {
private ProjectViewer() {
initWidget(uiBinder.createAndBindUi(this));
pageViewDetails.getElement().addClassName("page-view-details");
- projectViewerMainPanelID = "projectViewer-"+Random.nextInt();
+ projectViewerMainPanelID = "projectViewer-" + Random.nextInt();
projectViewerMainPanel.getElement().setId(projectViewerMainPanelID);
}
@@ -128,7 +135,6 @@ public class ProjectViewer extends Composite {
this.theProjectView = projectView;
this.geoportalItemReferences = geoportalItemRefs;
this.applicationBus = applicationBus;
- this.projectViewerBus = new HandlerManager(null);
final String theTitle = projectView.getTheProjectDV().getProfileName() != null
? projectView.getTheProjectDV().getProfileName()
@@ -223,7 +229,26 @@ public class ProjectViewer extends Composite {
public void onFailure(Throwable caught) {
}
});
-
+
+ reduceToc.setType(ButtonType.LINK);
+ reduceToc.setIcon(IconType.PLUS_SIGN_ALT);
+ toc_list_container.setVisible(false);
+ reduceToc.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ boolean visible = toc_list_container.isVisible();
+ if(visible) {
+ toc_list_container.setVisible(false);
+ reduceToc.setIcon(IconType.PLUS_SIGN_ALT);
+ }
+ else {
+ toc_list_container.setVisible(true);
+ reduceToc.setIcon(IconType.MINUS_SIGN_ALT);
+ }
+ }
+ });
+
for (SectionView sectionView : projectView.getListSections()) {
if (!sectionView.isEmpty()) {
@@ -248,8 +273,6 @@ public class ProjectViewer extends Composite {
}
private void addAnchorToSection(String id, String text) {
-// Anchor anchor = new Anchor(text);
-// anchor.setHref("#"+id);
String htmlAnchor = "" + text + "";
toc_list_anchors.appendChild(new HTML("
" + htmlAnchor + "").getElement());
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.ui.xml
index 31cb3c5..bad5cda 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/cms/project/ProjectViewer.ui.xml
@@ -28,6 +28,10 @@
.width-100 {
width: 100%;
}
+
+ .display-item-list {
+ display: inline-table;
+ }
@@ -45,12 +49,16 @@
-
+ visible="false" addStyleNames="{style.display-item-list}">
+
+
+ Contents
+
+
+
+
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 25aad17..c216ab9 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
@@ -5,6 +5,7 @@ import static org.gcube.application.geoportal.client.plugins.GeoportalAbstractPl
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -59,6 +60,7 @@ import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.GeoportalServiceIdentityProxy;
import org.gcube.portlets.user.geoportaldataviewer.server.util.ContextRequest;
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
+import org.gcube.portlets.user.geoportaldataviewer.server.util.TemporalComparatorUtil;
import org.gcube.portlets.user.geoportaldataviewer.shared.GCubeCollection;
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
import org.gcube.portlets.user.geoportaldataviewer.shared.ItemFieldsResponse;
@@ -92,14 +94,8 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@SuppressWarnings("serial")
public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet implements GeoportalDataViewerService {
- // private static final String TIMELINE_CONFIG_TJT_DOCUMENT =
- // UseCaseDescriptorCaller.TIMELINE_CONFIG_TJT_DOCUMENT;
-
private static final Logger LOG = LoggerFactory.getLogger(GeoportalDataViewerServiceImpl.class);
- // private static final String CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE =
- // "MAP_IMAGE_PREVIEW_FOR_CONCESSIONE";
-
/**
* The Enum COMMON_IMAGES_FORMAT.
*
@@ -1075,6 +1071,13 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
+ " feature/s");
listDAO.add(geoDAO);
+ // Ordering for temporal dimension
+ try {
+ Collections.sort(listDAO, new TemporalComparatorUtil());
+ } catch (Exception e) {
+ // silent
+ }
+
}
default:
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/TemporalComparatorUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/TemporalComparatorUtil.java
new file mode 100644
index 0000000..d4ccad0
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/TemporalComparatorUtil.java
@@ -0,0 +1,45 @@
+package org.gcube.portlets.user.geoportaldataviewer.server.util;
+
+import java.util.Comparator;
+
+import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
+import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
+
+/**
+ * The Class TemporalComparatorUtil.
+ *
+ * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
+ *
+ * Nov 18, 2022
+ */
+public class TemporalComparatorUtil implements Comparator {
+
+ /**
+ * Compare.
+ *
+ * @param a the a
+ * @param b the b
+ * @return the int
+ */
+ @Override
+ public int compare(GeoNaSpatialQueryResult a, GeoNaSpatialQueryResult b) {
+ if (a == null || a.getSourceLayerObject() == null || a.getSourceLayerObject().getProjectDV() == null) {
+ return -1;
+ }
+ if (b == null || b.getSourceLayerObject() == null || b.getSourceLayerObject().getProjectDV() == null) {
+ return 1;
+ }
+
+ ProjectDV project1 = a.getSourceLayerObject().getProjectDV();
+ ProjectDV project2 = b.getSourceLayerObject().getProjectDV();
+
+ if (project1.getTemporalReference() == null || project1.getTemporalReference().getStart() == null)
+ return -1;
+
+ if (project2.getTemporalReference() == null || project2.getTemporalReference().getStart() == null)
+ return 1;
+
+ return project1.getTemporalReference().getStart().compareTo(project2.getTemporalReference().getStart());
+
+ }
+}
\ No newline at end of file
diff --git a/src/main/webapp/GeoportalDataViewer.css b/src/main/webapp/GeoportalDataViewer.css
index 997c8d2..1addef1 100644
--- a/src/main/webapp/GeoportalDataViewer.css
+++ b/src/main/webapp/GeoportalDataViewer.css
@@ -25,14 +25,15 @@ body {
position: absolute;
background-color: white;
box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
- padding: 15px;
- border-radius: 10px;
+ padding: 10px;
+ border-radius: 2px;
border: 1px solid #cccccc;
bottom: 12px;
left: -50px;
min-width: 280px;
max-width: 500px;
visibility: hidden;
+ padding-top: 20px;
}
.ol-popup img {
@@ -70,11 +71,11 @@ body {
position: absolute;
top: 2px;
right: 8px;
+ font-size: 12px;
}
.ol-popup-closer:after {
content: "✖";
- font-size: 14px;
}
.go-top-right {
@@ -84,7 +85,7 @@ body {
position: relative;
font-size: 18px;
}
-.go-top-right a:visited {
+.go-top-right:visited {
color: #08c !important;
}
@@ -126,11 +127,13 @@ body {
margin-bottom: 10px;
position: sticky;
top: 0;
- background-color: white !important;
+ background-color: #f9f9f9 !important;
opacity: 0.9;
border-radius: 5px;
z-index: 2000;
+ border: 1px #eee solid;
}
+
.ol-mouse-position {
top: 8px !important;
right: 60px !important;
@@ -646,28 +649,40 @@ body {
/******************************
Table Of Contents (TOC)
*******************************/
-#toc_container {
+.toc_container {
background: #f9f9f9 none repeat scroll 0 0;
border: 1px solid #eee;
display: table;
- font-size: 95%;
- padding: 20px;
- width: auto;
+ font-size: 13px;
+ padding: 5px 15px;
+ min-width: 120px;
}
.toc_title {
font-weight: 700;
- text-align: center;
}
-#toc_container li, #toc_container ul, #toc_container ul li {
+.toc_list_container {
+ display: inline-block;
+}
+
+.toc_list_container ul {
+ margin-left: 35px;
+}
+
+.toc_list_container ul li {
list-style: outside none none !important;
}
-#toc_container ul li a:visited {
+.toc_list_container ul li a:visited {
color: #08c !important;
}
+.toc_container_reduce_button {
+ float: left;
+ padding: 0px 10px !important;
+}
+
.anchor-target {
top: -35px;
position: relative;