diff --git a/pom.xml b/pom.xml
index f612bed..66c741a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -82,6 +96,20 @@
com.github.tdesjardins
gwt-ol3
8.0.0-gwt2_9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
com.github.gwtbootstrap
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 e377350..d7d84c4 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
@@ -42,11 +42,6 @@ public class GeoportalDataViewer implements EntryPoint {
*/
public void onModuleLoad() {
-// HTMLPanel htmlPanel = new HTMLPanel("");
-// htmlPanel.setWidth("500px");
-// htmlPanel.setHeight("500px");
-// htmlPanel.getElement().setId("map");
-//
mainPanel = new GeonaDataViewMainPanel();
RootPanel.get(APP_DIV).add(mainPanel);
@@ -56,7 +51,7 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void execute() {
osmExample = new OsmExample(mainPanel.getMapPanel().getElement().getId());
- //new OsmExample(htmlPanel.getElement().getId());
+ mainPanel.setMap(osmExample);
}
});
@@ -73,7 +68,6 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void onSuccess(String result) {
- Window.alert(result);
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OsmExample.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OsmExample.java
index c59ca27..5929e71 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OsmExample.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OsmExample.java
@@ -2,13 +2,24 @@ package org.gcube.portlets.user.geoportaldataviewer.client.gis;
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
+import ol.Collection;
import ol.Coordinate;
import ol.Map;
+import ol.MapBrowserEvent;
import ol.MapOptions;
import ol.OLFactory;
+import ol.OLUtil;
+import ol.Overlay;
+import ol.OverlayOptions;
import ol.View;
import ol.ViewOptions;
import ol.control.Attribution;
+import ol.event.EventListener;
+import ol.interaction.Draw;
+import ol.interaction.DrawOptions;
+import ol.interaction.Extent;
+import ol.interaction.ExtentOptions;
+import ol.interaction.Interaction;
import ol.interaction.KeyboardPan;
import ol.interaction.KeyboardZoom;
import ol.layer.Image;
@@ -20,6 +31,7 @@ import ol.source.ImageWms;
import ol.source.ImageWmsOptions;
import ol.source.ImageWmsParams;
import ol.source.Osm;
+import ol.source.Vector;
import ol.source.XyzOptions;
/**
@@ -34,6 +46,8 @@ public class OsmExample {
private View view;
private ViewOptions viewOptions = OLFactory.createOptions();
private ProjectionOptions projectionOptions = OLFactory.createOptions();
+
+ private Draw pointDraw;
/* (non-Javadoc)
* @see de.desjardins.ol3.demo.client.example.Example#show()
@@ -99,6 +113,17 @@ public class OsmExample {
Attribution attribution = new Attribution();
attribution.setCollapsed(true);
+
+ map.addClickListener(new EventListener() {
+
+ @Override
+ public void onEvent(MapBrowserEvent event) {
+ // TODO Auto-generated method stub
+ event.getCoordinate();
+ addOverlay();
+
+ }
+ });
map.addControl(attribution);
@@ -131,6 +156,67 @@ public class OsmExample {
//https://data.d4science.org/gis-viewer-app/?wmsrequest=https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https://data.d4science.org/gis-viewer-app/?wmsrequest=https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98https%3A%2F%2Fgeona-proto.d4science.org%2Fgeoserver%2Fconcessioni_conf%2Fwms%3Fservice%3DWMS%26version%3D1.1.0%26request%3DGetMap%26layers%3Dconcessioni_conf%3Acentroids_concessioni%26styles%3D%26bbox%3D8.476%2C39.179%2C17.391%2C45.772%26width%3D768%26height%3D567%26srs%3DEPSG%3A4326%26format%3Dapplication%2Fopenlayers&zoom=6¢ermap=12.45%2C42.98
}
+
+
+ public Draw addPointVectorSource() {
+ if(pointDraw==null)
+ initPointInteraction();
+
+ map.addInteraction(pointDraw);
+ return pointDraw;
+ }
+
+ private void initPointInteraction() {
+ Vector vectorSource = new Vector();
+ DrawOptions drawOptions = new DrawOptions();
+ drawOptions.setSource(vectorSource);
+ drawOptions.setType("Point");
+ drawOptions.setMaxPoints(1);
+ drawOptions.setMinPoints(1);
+ drawOptions.setWrapX(false);
+ pointDraw = new Draw(drawOptions);
+ }
+
+ public void removeInteraction(Interaction interaction) {
+ map.removeInteraction(interaction);
+ }
+
+ public void removeInteractions() {
+ Collection interactions = map.getInteractions();
+ if(interactions!=null) {
+ Interaction[] inters = map.getInteractions().getArray();
+ for (int i = 0; i < inters.length; i++) {
+ Interaction inter = inters[i];
+ map.removeInteraction(inter);
+ }
+ }
+ }
+
+ public Extent addExtentInteraction() {
+ ExtentOptions extentOptions = new ExtentOptions();
+ extentOptions.setWrapX(false);
+ //StyleOptions styleOptions = new StyleOptions();
+ //styleOptions.setStroke(stroke);
+ //styleOptions.set
+ //extentOptions.setBoxStyle(new ol.style.Style(styleOptions));
+ Extent extent = new Extent(extentOptions);
+ map.addInteraction(extent);
+ return extent;
+ }
+
+
+ private void addOverlay() {
+ /**
+ * Create an overlay to anchor the popup to the map.
+ */
+ OverlayOptions overlayOptions = new OverlayOptions();
+ overlayOptions.setAutoPan(true);
+ Overlay overlay = new Overlay(overlayOptions);
+ map.addOverlay(overlay);
+ }
+
+
+
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.java
index 15f455b..04eb21d 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.java
@@ -1,23 +1,23 @@
-package org.gcube.portlets.user.geoportaldataviewer.client.ui;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.uibinder.client.UiBinder;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.Widget;
-
-public class BasePanel extends Composite {
-
- private static BasePanelUiBinder uiBinder = GWT.create(BasePanelUiBinder.class);
-
- interface BasePanelUiBinder extends UiBinder {
- }
-
- public BasePanel() {
- initWidget(uiBinder.createAndBindUi(this));
- }
-
- public BasePanel(String firstName) {
- initWidget(uiBinder.createAndBindUi(this));
- }
-
-}
+//package org.gcube.portlets.user.geoportaldataviewer.client.ui;
+//
+//import com.google.gwt.core.client.GWT;
+//import com.google.gwt.uibinder.client.UiBinder;
+//import com.google.gwt.user.client.ui.Composite;
+//import com.google.gwt.user.client.ui.Widget;
+//
+//public class BasePanel extends Composite {
+//
+// private static BasePanelUiBinder uiBinder = GWT.create(BasePanelUiBinder.class);
+//
+// interface BasePanelUiBinder extends UiBinder {
+// }
+//
+// public BasePanel() {
+// initWidget(uiBinder.createAndBindUi(this));
+// }
+//
+// public BasePanel(String firstName) {
+// initWidget(uiBinder.createAndBindUi(this));
+// }
+//
+//}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.ui.xml
index 3eac0ec..0b8562b 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/BasePanel.ui.xml
@@ -1,4 +1,4 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
index 22264ec..831439f 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java
@@ -1,7 +1,12 @@
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
+import org.gcube.portlets.user.geoportaldataviewer.client.gis.OsmExample;
+
+import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Tab;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.ui.Composite;
@@ -18,7 +23,16 @@ public class GeonaDataViewMainPanel extends Composite {
@UiField
Tab mapPanel;
+ @UiField
+ Button dataPointSelection;
+
+ @UiField
+ Button dataBoxSelection;
+
+
private HTMLPanel htmlPanel;
+
+ private OsmExample map;
public GeonaDataViewMainPanel() {
initWidget(uiBinder.createAndBindUi(this));
@@ -26,6 +40,11 @@ public class GeonaDataViewMainPanel extends Composite {
htmlPanel.getElement().setId("map");
htmlPanel.setHeight("600px");
mapPanel.add(htmlPanel);
+
+ dataPointSelection.setToggle(true);
+ dataBoxSelection.setToggle(true);
+
+ bindHandlers();
}
public void setHeight(int height) {
@@ -35,5 +54,31 @@ public class GeonaDataViewMainPanel extends Composite {
public HTMLPanel getMapPanel() {
return htmlPanel;
}
+
+ public void setMap(OsmExample map) {
+ this.map = map;
+ }
+
+ public void bindHandlers(){
+ dataPointSelection.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ map.removeInteractions();
+ map.addPointVectorSource();
+ }
+ });
+
+ dataBoxSelection.addClickHandler(new ClickHandler() {
+
+ @Override
+ public void onClick(ClickEvent event) {
+ map.removeInteractions();
+ map.addExtentInteraction();
+
+ }
+ });
+
+ }
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
index d81e8b0..aa80f09 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.ui.xml
@@ -7,7 +7,13 @@
-
+
+
+
+ Data Point Selection
+ Data Box Selection
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/GeoPortalDataViewerAppPortlet_view.jsp b/src/main/webapp/WEB-INF/jsp/GeoPortalDataViewerAppPortlet_view.jsp
index 3e6036d..c2eb463 100644
--- a/src/main/webapp/WEB-INF/jsp/GeoPortalDataViewerAppPortlet_view.jsp
+++ b/src/main/webapp/WEB-INF/jsp/GeoPortalDataViewerAppPortlet_view.jsp
@@ -1,4 +1,4 @@
-ac<%@page contentType="text/html"%>
+<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%-- Uncomment below lines to add portlet taglibs to jsp
@@ -8,15 +8,25 @@ ac<%@page contentType="text/html"%>
--%>
+
+
+
+
+
+
+
+
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/portlet.xml b/src/main/webapp/WEB-INF/portlet.xml
index 91b75f5..f30c015 100644
--- a/src/main/webapp/WEB-INF/portlet.xml
+++ b/src/main/webapp/WEB-INF/portlet.xml
@@ -12,8 +12,8 @@
VIEW
- GeoPortal DataViewerApp Portlet
- GeoPortal DataViewerApp Portlet
+ GeoPortal-DataViewerApp-Portlet
+ GeoPortal-DataViewerApp-Portlet