task_21890: enhancements #2
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/geoportal-data-viewer-app-1.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<classpathentry kind="src" output="target/geoportal-data-viewer-app-2.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/geoportal-data-viewer-app-1.2.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||
<classpathentry excluding="**" kind="src" output="target/geoportal-data-viewer-app-2.0.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
@ -35,6 +35,5 @@
|
|||
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="/home/francescomangiacrapa/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar"/>
|
||||
<classpathentry kind="output" path="target/geoportal-data-viewer-app-1.2.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
<classpathentry kind="output" path="target/geoportal-data-viewer-app-2.0.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
eclipse.preferences.version=1
|
||||
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-1.2.0-SNAPSHOT
|
||||
lastWarOutDir=/home/francescomangiacrapa/git/geoportal-data-viewer-app/target/geoportal-data-viewer-app-2.0.0-SNAPSHOT
|
||||
warSrcDir=src/main/webapp
|
||||
warSrcDirIsOutput=false
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
eclipse.preferences.version=1
|
||||
gwtSyncCodeServer=true
|
|
@ -6,7 +6,31 @@
|
|||
|
||||
|
||||
|
||||
<wb-module deploy-name="geoportal-data-viewer-app-1.2.0-SNAPSHOT">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-module deploy-name="geoportal-data-viewer-app-2.0.0-SNAPSHOT">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -22,6 +46,18 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
@ -30,16 +66,70 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
<dependent-module archiveName="geoportal-data-common-1.2.0-SNAPSHOT.jar" deploy-path="/WEB-INF/lib" handle="module:/resource/geoportal-data-common/geoportal-data-common">
|
||||
|
||||
<dependency-type>uses</dependency-type>
|
||||
|
||||
</dependent-module>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -52,6 +142,18 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="context-root" value="geoportal-data-viewer-app"/>
|
||||
|
||||
|
||||
|
@ -60,6 +162,18 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
@ -68,4 +182,16 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</project-modules>
|
||||
|
|
20
CHANGELOG.md
20
CHANGELOG.md
|
@ -4,20 +4,32 @@
|
|||
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).
|
||||
|
||||
## [v2.0.0-SNAPSHOT] - 2021-07-30
|
||||
|
||||
#### Enhancements
|
||||
|
||||
- [#21890] Porting to ConcessioniManagerI and pass to mongoID
|
||||
- [#20595] Porting and using the model view provided by geoportal-common
|
||||
- [#21946] Show layers of a concessione automatically on map according to zoom level
|
||||
- [#21976] Access policies checked on server-side
|
||||
- [#22042] Implemented the public access
|
||||
- [#22040] Revisited the "Abstract and Relazione di Scavo"
|
||||
- [#22041] Files have been ported to FileSet model
|
||||
|
||||
## [v1.2.0-SNAPSHOT] - 2021-07-19
|
||||
|
||||
#### Enhancements
|
||||
|
||||
[#21847] Integrated with an Image and LighBox gallery for images
|
||||
Moved to maven-portal-bom 3.6.3
|
||||
- [#21847] Integrated with an Image and LighBox gallery for images
|
||||
- Moved to maven-portal-bom 3.6.3
|
||||
|
||||
|
||||
## [v1.1.0] - 2020-12-21
|
||||
|
||||
#### Enhancements
|
||||
|
||||
[#20357] Improvements feedback-driven
|
||||
- [#20357] Improvements feedback-driven
|
||||
|
||||
## [v1.0.0] - 2020-12-09
|
||||
|
||||
[#20004] First release
|
||||
- [#20004] First release
|
||||
|
|
|
@ -7,6 +7,13 @@ The GeoPortal Data Viewer App is an application to access, discovery and navigat
|
|||
* [OpenJDK](https://openjdk.java.net/) - The JDK used
|
||||
* [Maven](https://maven.apache.org/) - Dependency Management
|
||||
|
||||
**Uses**
|
||||
|
||||
* GWT v.2.9.0. [GWT](http://www.gwtproject.org) is licensed under [Apache License 2.0](http://www.gwtproject.org/terms.html)
|
||||
* GWT-Bootstrap v.2.3.2.0. [GWT-Bootstrap](https://github.com/gwtbootstrap) is licensed under [[Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
||||
* GWT-OpenLayers 3+ v.8.0.0-gwt2_9. [GWT-OL3](https://github.com/TDesjardins/gwt-ol)
|
||||
* OpenLayers v.6.X. [OpenLayers](https://openlayers.org/) is licensed under [BSD 2-Clause "Simplified"](https://github.com/openlayers/openlayers/blob/main/LICENSE.md)
|
||||
|
||||
## Documentation
|
||||
|
||||
N/A
|
||||
|
|
7
pom.xml
7
pom.xml
|
@ -14,7 +14,7 @@
|
|||
<groupId>org.gcube.portlets.user</groupId>
|
||||
<artifactId>geoportal-data-viewer-app</artifactId>
|
||||
<packaging>war</packaging>
|
||||
<version>1.2.0-SNAPSHOT</version>
|
||||
<version>2.0.0-SNAPSHOT</version>
|
||||
<name>GeoPortal Data Viewer App</name>
|
||||
<description>The GeoPortal Data Viewer App is an application to access, discovery and navigate the GeoNa products by a Web-Map Interface</description>
|
||||
|
||||
|
@ -179,6 +179,11 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.gcube.common</groupId>
|
||||
<artifactId>keycloak-client</artifactId>
|
||||
<version>[1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT)</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.liferay.portal</groupId>
|
||||
<artifactId>portal-service</artifactId>
|
||||
|
|
|
@ -5,20 +5,26 @@ import java.util.Iterator;
|
|||
import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.LayerItem;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MapEventType;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEventHandler;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEventHandler;
|
||||
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.QueryDataEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ShowDetailsEventHandler;
|
||||
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;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.GeonaDataViewMainPanel;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.URLUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
|
||||
import com.google.gwt.core.client.EntryPoint;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
|
@ -48,7 +54,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
public final static String APP_DIV = "geoportal-data-viewer";
|
||||
|
||||
/** The ol map. */
|
||||
//private OpenLayerOSM olMap = null;
|
||||
// private OpenLayerOSM olMap = null;
|
||||
|
||||
/** The main panel. */
|
||||
private GeonaDataViewMainPanel mainPanel;
|
||||
|
@ -57,7 +63,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
private String paramWmsRequest;
|
||||
|
||||
/** The param UUID. */
|
||||
//private String paramUUID;
|
||||
// private String paramUUID;
|
||||
|
||||
private String paramGeonaItemType;
|
||||
|
||||
|
@ -77,9 +83,6 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
|
||||
int attempt = 0;
|
||||
|
||||
|
||||
//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.98
|
||||
|
||||
/**
|
||||
* This is the entry point method.
|
||||
*/
|
||||
|
@ -124,14 +127,14 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
GWT.log(GeoportalDataViewerConstants.GET_LAYER_TITLE + " = " + paramLayerTitle);
|
||||
|
||||
// VALIDATING THE LONG FORMAT FOR GID
|
||||
try {
|
||||
if (paramGeonaItemID != null)
|
||||
Long.parseLong(paramGeonaItemID);
|
||||
} catch (Exception e) {
|
||||
Window.alert("Bad format for parameter " + GeoportalDataViewerConstants.GET_GEONA_ITEM_ID
|
||||
+ ". It must be a Long");
|
||||
paramGeonaItemID = null;
|
||||
}
|
||||
// try {
|
||||
// if (paramGeonaItemID != null)
|
||||
// Long.parseLong(paramGeonaItemID);
|
||||
// } catch (Exception e) {
|
||||
// Window.alert("Bad format for parameter " + GeoportalDataViewerConstants.GET_GEONA_ITEM_ID
|
||||
// + ". It must be a Long");
|
||||
// paramGeonaItemID = null;
|
||||
// }
|
||||
|
||||
Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
|
||||
|
@ -165,9 +168,12 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
return;
|
||||
}
|
||||
|
||||
GWT.log("The layerItem is: " + layerItem);
|
||||
GWT.log("ON module load The layerItem is: " + layerItem);
|
||||
String layerName = URLUtil.getValueOfParameter("layers", layerItem.getWmsLink());
|
||||
layerItem.setName(layerName);
|
||||
layerManager.setBaseLayerFromIsProfile(layerItem);
|
||||
layerManager.addLayer(theItemType, null, null, layerItem.getWmsLink(), false, false,
|
||||
null, true);
|
||||
null, false, null, null,null);
|
||||
|
||||
if (paramGeonaItemID != null) {
|
||||
if (paramGeonaItemType == null) {
|
||||
|
@ -177,7 +183,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
+ paramGeonaItemID);
|
||||
return;
|
||||
}
|
||||
GeoNaItemRef gir = new GeoNaItemRef(new Long(paramGeonaItemID), paramGeonaItemType);
|
||||
GeoNaItemRef gir = new GeoNaItemRef(paramGeonaItemID, paramGeonaItemType);
|
||||
applicationBus.fireEvent(new ShowDetailsEvent(gir, null, null));
|
||||
}
|
||||
|
||||
|
@ -190,8 +196,6 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Update window size.
|
||||
*/
|
||||
|
@ -200,7 +204,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
int rootHeight = getClientHeight();
|
||||
int height = rootHeight;
|
||||
mainPanel.setPanelsHeight(height);
|
||||
GWT.log("Set height: "+height);
|
||||
GWT.log("Set height: " + height);
|
||||
|
||||
}
|
||||
|
||||
|
@ -220,24 +224,25 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
|
||||
@Override
|
||||
public void onShowDetails(ShowDetailsEvent showDetailsEvent) {
|
||||
GWT.log("Fired event: "+showDetailsEvent);
|
||||
GWT.log("Fired event: " + showDetailsEvent);
|
||||
|
||||
Long id = showDetailsEvent.getGeonaID();
|
||||
String geonaMongoId = showDetailsEvent.getGeonaMongoID();
|
||||
|
||||
if(id==null) {
|
||||
if (geonaMongoId == null) {
|
||||
Window.alert("Item Id not found");
|
||||
return;
|
||||
}
|
||||
|
||||
//TODO
|
||||
// TODO
|
||||
boolean found = false;
|
||||
GWT.log("Product with id: "+id+" found? "+found);
|
||||
GWT.log("Product with id: " + geonaMongoId + " found? " + found);
|
||||
|
||||
if(!found) {
|
||||
if (!found) {
|
||||
|
||||
if(showDetailsEvent.getGeonaItemType().equalsIgnoreCase("Concessione")) {
|
||||
if (showDetailsEvent.getGeonaItemType().equalsIgnoreCase("Concessione")) {
|
||||
|
||||
GeoportalDataViewerServiceAsync.Util.getInstance().getConcessioneForId(id, new AsyncCallback<ConcessioneDV>() {
|
||||
GeoportalDataViewerServiceAsync.Util.getInstance().getConcessioneForId(geonaMongoId,
|
||||
new AsyncCallback<ConcessioneDV>() {
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
|
@ -248,7 +253,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
|
||||
@Override
|
||||
public void onSuccess(ConcessioneDV concessioneDV) {
|
||||
GWT.log("Showing: "+concessioneDV);
|
||||
GWT.log("Showing: " + concessioneDV);
|
||||
mainPanel.showAsDetails(concessioneDV, showDetailsEvent.getGeonaItemRef());
|
||||
}
|
||||
});
|
||||
|
@ -262,29 +267,30 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
|
||||
@Override
|
||||
public void onLayerRendered(AddedLayerToMapEvent addedLayerToMapEvent) {
|
||||
GWT.log("Fired AddedLayerToMapEvent "+addedLayerToMapEvent.getLayerItem());
|
||||
//GeoportalDataViewerConstants.print("Fired AddedLayerToMapEvent "+addedLayerToMapEvent.getLayerItem());
|
||||
GWT.log("Fired AddedLayerToMapEvent " + addedLayerToMapEvent.getLayerItem());
|
||||
// GeoportalDataViewerConstants.print("Fired AddedLayerToMapEvent
|
||||
// "+addedLayerToMapEvent.getLayerItem());
|
||||
|
||||
try {
|
||||
|
||||
attempt = 0;
|
||||
|
||||
if(paramGeonaItemID!=null) {
|
||||
//waiting for record retrieved by service before calling the WFS
|
||||
final int MAX_RETRY = 7;
|
||||
if (paramGeonaItemID != null) {
|
||||
// waiting for record retrieved by service before calling the WFS
|
||||
final int MAX_RETRY = 15;
|
||||
Timer timer = new com.google.gwt.user.client.Timer() {
|
||||
@Override
|
||||
public void run() {
|
||||
attempt++;
|
||||
GWT.log("waiting got record tenative: "+attempt);
|
||||
GWT.log("waiting get record: " + attempt);
|
||||
RecordDV record = mainPanel.getDisplyedRecord();
|
||||
if(record!=null) {
|
||||
if (record != null) {
|
||||
this.cancel();
|
||||
GWT.log("cancelled timer");
|
||||
performWFSQueryOnCentroid(record);
|
||||
}
|
||||
|
||||
if(attempt>MAX_RETRY) {
|
||||
if (attempt > MAX_RETRY) {
|
||||
GWT.log("MAX_RETRY reached, cancelled timer");
|
||||
this.cancel();
|
||||
}
|
||||
|
@ -294,7 +300,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
timer.scheduleRepeating(1000);
|
||||
|
||||
}
|
||||
}catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
// TODO: handle exception
|
||||
}
|
||||
|
||||
|
@ -306,8 +312,9 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
@Override
|
||||
public void onZoomOut(ZoomOutOverMinimumEvent zoomOutEvent) {
|
||||
|
||||
if(mainPanel.getDisplyedRecord()==null && !olMapMng.isQueryPointActive()) {
|
||||
if (mainPanel.getDisplyedRecord() == null && !olMapMng.isQueryPointActive()) {
|
||||
olMapMng.hidePopInfo();
|
||||
layerManager.removeAllDetailLayers();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -321,25 +328,40 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
}
|
||||
});
|
||||
|
||||
applicationBus.addHandler(MapExtentToEvent.TYPE, new MapExtentToEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onExtentEvent(MapExtentToEvent mapExtentToEvent) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void performWFSQueryOnCentroid(RecordDV record) {
|
||||
if(record!=null) {
|
||||
GWT.log("record instanceof ConcessioneDV: " +(record instanceof ConcessioneDV));
|
||||
//GeoportalDataViewerConstants.print("record instanceof ConcessioneDV: " +(record instanceof ConcessioneDV));
|
||||
if(record instanceof ConcessioneDV) {
|
||||
if (record != null) {
|
||||
GWT.log("record instanceof ConcessioneDV: " + (record instanceof ConcessioneDV) + " with mongo item id: "
|
||||
+ record.getItemId());
|
||||
// GeoportalDataViewerConstants.print("record instanceof ConcessioneDV: "
|
||||
// +(record instanceof ConcessioneDV));
|
||||
if (record instanceof ConcessioneDV) {
|
||||
ConcessioneDV concessioneDV = (ConcessioneDV) record;
|
||||
Double x = concessioneDV.getCentroidLong();
|
||||
Double y = concessioneDV.getCentroidLat();
|
||||
GWT.log("X: "+x +", Y:"+y);
|
||||
if(x!=null && y!=null) {
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(new Coordinate(x, y), GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
GeoQuery select = olMapMng.toDataPointQuery(transfCoord);
|
||||
GWT.log("GeoQuery: "+select);
|
||||
//GeoportalDataViewerConstants.print("fireEvent QueryDataEvent");
|
||||
layerManager.getLayerManagerBus().fireEvent(new QueryDataEvent(select, transfCoord, record.getId(), true));
|
||||
}else {
|
||||
GeoportalDataViewerConstants.printJs("I cannot select the point one or both coordiantes are null. X: "+x +", Y:"+y);
|
||||
GWT.log("X: " + x + ", Y:" + y);
|
||||
if (x != null && y != null) {
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(new Coordinate(x, y),
|
||||
MAP_PROJECTION.EPSG_4326.getName(), MAP_PROJECTION.EPSG_3857.getName());
|
||||
GeoQuery select = olMapMng.toDataPointQuery(transfCoord, false);
|
||||
GWT.log("GeoQuery: " + select);
|
||||
// GeoportalDataViewerConstants.print("fireEvent QueryDataEvent");
|
||||
ExtentWrapped toExt = new ExtentWrapped(transfCoord.getX(), transfCoord.getY(), transfCoord.getX(), transfCoord.getY());
|
||||
layerManager.getLayerManagerBus().fireEvent(new QueryDataEvent(select, toExt,
|
||||
record.getItemId(), true, MapEventType.ADDED_CENTROID_LAYER_TO_MAP));
|
||||
} else {
|
||||
GeoportalDataViewerConstants.printJs(
|
||||
"I cannot select the point one or both coordiantes are null. X: " + x + ", Y:" + y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client;
|
||||
|
||||
import org.gcube.application.geoportalcommon.ConvertToDataViewModel;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayersMapParameters;
|
||||
|
||||
import com.google.gwt.i18n.client.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* The Class GeoportalDataViewerConstants.
|
||||
*
|
||||
|
@ -11,9 +14,6 @@ import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayersMapParam
|
|||
*/
|
||||
public class GeoportalDataViewerConstants {
|
||||
|
||||
public static final String EPSG_4326 = "EPSG:4326";
|
||||
public static final String EPSG_3857 = "EPSG:3857";
|
||||
|
||||
public static final String MAP_DIV = "map";
|
||||
|
||||
public static final String GET_WMS_PARAMETER = "wmsrequest";
|
||||
|
@ -25,6 +25,10 @@ public class GeoportalDataViewerConstants {
|
|||
public static final String GET_ZOOM = OpenLayersMapParameters.OL_MAP_PARAM.zoom.name();
|
||||
public static final String GET_CENTER_MAP_TO_LONG_LAT = OpenLayersMapParameters.OL_MAP_PARAM.centermap.name();
|
||||
|
||||
public static enum MapEventType {
|
||||
MOUSE_CLICK, MAP_ZOOM_END, MOVE_END, ADDED_CENTROID_LAYER_TO_MAP
|
||||
}
|
||||
|
||||
/**
|
||||
* The Enum LayerType.
|
||||
*
|
||||
|
@ -32,20 +36,45 @@ public class GeoportalDataViewerConstants {
|
|||
*
|
||||
* Nov 24, 2020
|
||||
*/
|
||||
public enum LayerType {RASTER_BASELAYER, FEATURE_TYPE};
|
||||
public enum LayerType {
|
||||
RASTER_BASELAYER, FEATURE_TYPE
|
||||
};
|
||||
|
||||
public static final int MAX_WFS_FEATURES = 3; // zero for no limit
|
||||
public static DateTimeFormat DT_FORMAT = DateTimeFormat.getFormat(ConvertToDataViewModel.DATE_FORMAT);
|
||||
|
||||
public static final int MAX_WFS_FEATURES = 10; // zero for no limit
|
||||
|
||||
public static final String NEW_LINE_BR = "<br/>";
|
||||
|
||||
public static enum MAP_PROJECTION {
|
||||
|
||||
EPSG_4326("4326", "EPSG:4326"), EPSG_3857("3857", "EPSG:3857");
|
||||
|
||||
String id;
|
||||
String name;
|
||||
|
||||
MAP_PROJECTION(String id, String name) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static final double ITALY_CENTER_LONG = 12.45;
|
||||
|
||||
public static final double ITALY_CENTER_LAT = 42.98;
|
||||
|
||||
public static final int LIGHT_MAP_ITALY_FIT_ZOOM_ON = 5;
|
||||
|
||||
public static final int MAP_ITALY_FIT_ZOOM_ON = 6;
|
||||
|
||||
public static final int MAP_ITALY_FIT_ZOOM_ON = 5;
|
||||
|
||||
/**
|
||||
* Prints the.
|
||||
|
@ -53,8 +82,25 @@ public class GeoportalDataViewerConstants {
|
|||
* @param msg the msg
|
||||
*/
|
||||
public static native void printJs(String msg)/*-{
|
||||
console.log("js console: "+msg);
|
||||
console.log("js console: " + msg);
|
||||
}-*/;
|
||||
|
||||
/**
|
||||
* Prints the.
|
||||
*
|
||||
* @param msg the msg
|
||||
*/
|
||||
public static native void printJsObj(Object object)/*-{
|
||||
console.log("js obj: " + JSON.stringify(object, null, 4));
|
||||
}-*/;
|
||||
|
||||
/**
|
||||
* Prints the.
|
||||
*
|
||||
* @param msg the msg
|
||||
*/
|
||||
public static native String toJsonObj(Object object)/*-{
|
||||
return JSON.stringify(object);
|
||||
}-*/;
|
||||
|
||||
}
|
||||
|
|
|
@ -4,12 +4,13 @@ import java.util.List;
|
|||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.GeoInformationForWMSRequest;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.google.gwt.user.client.rpc.RemoteService;
|
||||
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
|
||||
|
@ -50,11 +51,11 @@ public interface GeoportalDataViewerService extends RemoteService {
|
|||
/**
|
||||
* Gets the concessione for id.
|
||||
*
|
||||
* @param id the id
|
||||
* @param mongoId the mongo id
|
||||
* @return the concessione for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
ConcessioneDV getConcessioneForId(Long id) throws Exception;
|
||||
ConcessioneDV getConcessioneForId(String mongoId) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the my login.
|
||||
|
@ -84,12 +85,12 @@ public interface GeoportalDataViewerService extends RemoteService {
|
|||
* Gets the uploaded images for id.
|
||||
*
|
||||
* @param itemType the item type
|
||||
* @param id the id
|
||||
* @param itemId the item id
|
||||
* @param maxImages the max images
|
||||
* @return the uploaded images for id
|
||||
* @throws Exception the exception
|
||||
* @throws Exception
|
||||
*/
|
||||
List<UploadedImageDV> getUploadedImagesForId(String itemType, Long id, int maxImages) throws Exception;
|
||||
List<UploadedImageDV> getUploadedImagesForId(String itemType, String itemId, Integer maxImages) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the public links for.
|
||||
|
@ -100,4 +101,28 @@ public interface GeoportalDataViewerService extends RemoteService {
|
|||
*/
|
||||
GeoNaItemRef getPublicLinksFor(GeoNaItemRef item) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the layers for id.
|
||||
*
|
||||
* @param itemType the item type
|
||||
* @param itemId the item id
|
||||
* @return the layers for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
List<LayerConcessioneDV> getLayersForId(String itemType, String itemId) throws Exception;
|
||||
|
||||
/**
|
||||
* Gets the WFS features.
|
||||
*
|
||||
* @param layerObjects the layer objects
|
||||
* @param mapSrsName the map srs name
|
||||
* @param selectBBOX the select BBOX
|
||||
* @param maxWFSFeature the max WFS feature
|
||||
* @param zoomLevel the zoom level
|
||||
* @return the WFS features
|
||||
*/
|
||||
List<GeoNaSpatialQueryResult> getWFSFeatures(List<LayerObject> layerObjects, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,12 +4,13 @@ import java.util.List;
|
|||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.GeoInformationForWMSRequest;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
|
@ -38,7 +39,7 @@ public interface GeoportalDataViewerServiceAsync {
|
|||
void getDataResult(List<LayerObject> layerObjects, String mapSrsName, BoundsMap mapBBOX, int maxWFSFeature, double zoomLevel,
|
||||
AsyncCallback<List<GeoNaSpatialQueryResult>> callback);
|
||||
|
||||
void getConcessioneForId(Long id, AsyncCallback<ConcessioneDV> callback);
|
||||
void getConcessioneForId(String mongoId, AsyncCallback<ConcessioneDV> callback);
|
||||
|
||||
void getMyLogin(AsyncCallback<String> callback);
|
||||
|
||||
|
@ -46,8 +47,15 @@ public interface GeoportalDataViewerServiceAsync {
|
|||
|
||||
void getGeoNaDataViewProfile(AsyncCallback<GeoNaDataViewerProfile> callback);
|
||||
|
||||
void getUploadedImagesForId(String itemType, Long id, int maxImages, AsyncCallback<List<UploadedImageDV>> callback);
|
||||
void getUploadedImagesForId(String itemType, String itemId, Integer maxImages,
|
||||
AsyncCallback<List<UploadedImageDV>> callback);
|
||||
|
||||
void getPublicLinksFor(GeoNaItemRef item, AsyncCallback<GeoNaItemRef> asyncCallback);
|
||||
|
||||
void getLayersForId(String itemType, String itemId,
|
||||
AsyncCallback<List<LayerConcessioneDV>> asyncCallback);
|
||||
|
||||
void getWFSFeatures(List<LayerObject> layerObjects, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature,
|
||||
double zoomLevel, AsyncCallback<List<GeoNaSpatialQueryResult>> callback);
|
||||
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,10 +1,15 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MapEventType;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.QueryDataEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ZoomOutOverMinimumEvent;
|
||||
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.OpenLayerOSM;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.PLACE;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery.TYPE;
|
||||
|
||||
|
@ -14,7 +19,6 @@ import com.google.gwt.event.shared.HandlerManager;
|
|||
import ol.Coordinate;
|
||||
import ol.MapBrowserEvent;
|
||||
import ol.MapEvent;
|
||||
import ol.OLFactory;
|
||||
|
||||
/**
|
||||
* The Class OLMapManager.
|
||||
|
@ -32,7 +36,10 @@ public class OLMapManager {
|
|||
private Double zoomStart = null;
|
||||
private Double zoomEnd = null;
|
||||
private ol.Extent dragEndExtent = null;
|
||||
private static final int QUERY_MIN_ZOOM_LEVEL = 13;
|
||||
public static final int QUERY_MIN_ZOOM_LEVEL = 13;
|
||||
public static final Double LAYER_DETAIL_MIN_RESOLUTION = 0.01;
|
||||
public static final Double LAYER_DETAIL_MAX_RESOLUTION = 13.0;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new OL map manager.
|
||||
|
@ -56,7 +63,7 @@ public class OLMapManager {
|
|||
@Override
|
||||
public void clickListener(MapBrowserEvent event) {
|
||||
Coordinate coordinate = event.getCoordinate();
|
||||
if(!olMap.mapInstancied())
|
||||
if (!olMap.mapInstancied())
|
||||
return;
|
||||
|
||||
// if (olMap.isQueryPointActive()) {
|
||||
|
@ -65,26 +72,27 @@ public class OLMapManager {
|
|||
//
|
||||
// }
|
||||
|
||||
GeoQuery select = toDataPointQuery(coordinate);
|
||||
layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate, null, true));
|
||||
ExtentWrapped toExt = new ExtentWrapped(coordinate.getX(), coordinate.getY(), coordinate.getX(), coordinate.getY());
|
||||
GeoQuery select = toDataPointQuery(coordinate, true);
|
||||
layerManagerBus.fireEvent(new QueryDataEvent(select, toExt, null, true, MapEventType.MOUSE_CLICK));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveEndListener(MapEvent event) {
|
||||
//onInit
|
||||
if(!olMap.mapInstancied())
|
||||
// onInit
|
||||
if (!olMap.mapInstancied())
|
||||
return;
|
||||
|
||||
checkSelectQuery();
|
||||
checkSelectQuery(MapEventType.MOVE_END);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveStartListener(MapEvent event) {
|
||||
|
||||
//onInit
|
||||
if(!olMap.mapInstancied())
|
||||
// onInit
|
||||
if (!olMap.mapInstancied())
|
||||
return;
|
||||
|
||||
setDragStart();
|
||||
|
@ -94,39 +102,35 @@ public class OLMapManager {
|
|||
@Override
|
||||
public void mapZoomListener(MapEvent event) {
|
||||
|
||||
//onInit
|
||||
if(!olMap.mapInstancied())
|
||||
// onInit
|
||||
if (!olMap.mapInstancied())
|
||||
return;
|
||||
|
||||
setDragStart();
|
||||
zoomStart = olMap.getCurrentZoomLevel();
|
||||
GWT.log("zoomStart: "+zoomStart);
|
||||
GWT.log("zoomStart: " + zoomStart);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mapZoomEndListener(MapEvent event) {
|
||||
//onInit
|
||||
if(!olMap.mapInstancied())
|
||||
// onInit
|
||||
if (!olMap.mapInstancied())
|
||||
return;
|
||||
|
||||
setDragStart();
|
||||
zoomEnd = olMap.getCurrentZoomLevel();
|
||||
GWT.log("zoomEnd: "+zoomEnd);
|
||||
checkSelectQuery();
|
||||
GWT.log("zoomEnd: " + zoomEnd);
|
||||
checkSelectQuery(MapEventType.MAP_ZOOM_END);
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// EPSG_4326_TO_ITALY
|
||||
Coordinate centerCoordinate = OLFactory.createCoordinate(GeoportalDataViewerConstants.ITALY_CENTER_LONG,
|
||||
GeoportalDataViewerConstants.ITALY_CENTER_LAT);
|
||||
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(centerCoordinate,
|
||||
GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
|
||||
Location italyLocation = ExtentMapUtil.getLocation(PLACE.ITALY);
|
||||
Coordinate transformedCenterCoordinate = italyLocation.getCoordinate(MAP_PROJECTION.EPSG_3857);
|
||||
olMap.setCenter(transformedCenterCoordinate);
|
||||
olMap.setZoom(GeoportalDataViewerConstants.MAP_ITALY_FIT_ZOOM_ON);
|
||||
olMap.setZoom(italyLocation.getZoomLevel());
|
||||
|
||||
}
|
||||
|
||||
|
@ -136,11 +140,11 @@ public class OLMapManager {
|
|||
* @param coordinate the coordinate
|
||||
* @return the geo query
|
||||
*/
|
||||
public GeoQuery toDataPointQuery(Coordinate coordinate) {
|
||||
public GeoQuery toDataPointQuery(Coordinate coordinate, boolean manualClick) {
|
||||
|
||||
double lon = coordinate.getX();
|
||||
double lat = coordinate.getY();
|
||||
GWT.log("To quey DP: "+coordinate);
|
||||
GWT.log("To quey DP: " + coordinate);
|
||||
|
||||
int w = (int) olMap.getSize().getWidth();
|
||||
int h = (int) olMap.getSize().getHeight();
|
||||
|
@ -149,7 +153,18 @@ public class OLMapManager {
|
|||
// ratio - mapPixelWeight : bboxWeight = 20px : geoRectangleWidth
|
||||
// where 10px is the pixel diameter dimension of the clicked point
|
||||
double bboxWidth = Math.abs(olMap.getExtent().getLowerLeftX() - olMap.getExtent().getUpperRightX());
|
||||
double geoWidth = (bboxWidth / w) * (20 / 2);
|
||||
|
||||
double geoWidth = 0;
|
||||
// adding a tolerance in case of manual click
|
||||
if (manualClick) {
|
||||
// adding a tolerance for clicking
|
||||
//geoWidth = (bboxWidth / w) * (14 / 2);
|
||||
geoWidth = (bboxWidth / w) * (16 / 2);
|
||||
} else {
|
||||
// data point selection for coordinate loaded from concessione
|
||||
geoWidth = (bboxWidth / w) * (2);
|
||||
}
|
||||
|
||||
double x1 = Math.min(lon + geoWidth, lon - geoWidth);
|
||||
double x2 = Math.max(lon + geoWidth, lon - geoWidth);
|
||||
double y1 = Math.min(lat + geoWidth, lat - geoWidth);
|
||||
|
@ -172,9 +187,10 @@ public class OLMapManager {
|
|||
/**
|
||||
* Check select query.
|
||||
*/
|
||||
private void checkSelectQuery() {
|
||||
private void checkSelectQuery(MapEventType mapEventType) {
|
||||
|
||||
GWT.log("Zoom is:" + olMap.getCurrentZoomLevel());
|
||||
GWT.log("Resolution is:" + olMap.getCurrentResolution());
|
||||
|
||||
if (dragStartExtent != null && olMap.getCurrentZoomLevel() > QUERY_MIN_ZOOM_LEVEL) {
|
||||
dragEndExtent = olMap.getExtent();
|
||||
|
@ -189,12 +205,12 @@ public class OLMapManager {
|
|||
GWT.log("the distance is: " + dist);
|
||||
if (dist > 5000 || startExt.containsExtent(endExt)) {
|
||||
GeoQuery select = toDataBoxQuery(dragEndExtent);
|
||||
layerManagerBus.fireEvent(new QueryDataEvent(select, endExt.getCenter(), null, false));
|
||||
//TODO THE AUTOMATICALLY SHOWING POP-UP ACCORDING TO ZOOM IS BUGGY
|
||||
layerManagerBus.fireEvent(new QueryDataEvent(select, endExt, null, false, mapEventType));
|
||||
}
|
||||
}
|
||||
else if(zoomStart!=null && zoomEnd!=null) {
|
||||
} else if (zoomStart != null && zoomEnd != null) {
|
||||
|
||||
if(zoomEnd<QUERY_MIN_ZOOM_LEVEL) {
|
||||
if (zoomEnd < QUERY_MIN_ZOOM_LEVEL) {
|
||||
layerManagerBus.fireEvent(new ZoomOutOverMinimumEvent(zoomStart, zoomEnd, QUERY_MIN_ZOOM_LEVEL));
|
||||
}
|
||||
}
|
||||
|
@ -219,10 +235,10 @@ public class OLMapManager {
|
|||
*/
|
||||
private GeoQuery toDataBoxQuery(ol.Extent extent) {
|
||||
|
||||
return new GeoQuery(extent.getLowerLeftX(), extent.getLowerLeftY(), extent.getUpperRightX(), extent.getUpperRightY(), TYPE.BOX);
|
||||
return new GeoQuery(extent.getLowerLeftX(), extent.getLowerLeftY(), extent.getUpperRightX(),
|
||||
extent.getUpperRightY(), TYPE.BOX);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if is query point active.
|
||||
*
|
||||
|
@ -239,5 +255,11 @@ public class OLMapManager {
|
|||
olMap.hidePopup();
|
||||
}
|
||||
|
||||
// /**
|
||||
// * Removes the detail layers.
|
||||
// */
|
||||
// public void removeDetailLayers() {
|
||||
// olMap.removeAllDetailLayers();
|
||||
// }
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.events;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
/**
|
||||
* The Class MapExtentToEvent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 1, 2021
|
||||
*/
|
||||
public class MapExtentToEvent extends GwtEvent<MapExtentToEventHandler> {
|
||||
public static Type<MapExtentToEventHandler> TYPE = new Type<MapExtentToEventHandler>();
|
||||
private Location location;
|
||||
|
||||
/**
|
||||
* Instantiates a new map extent to event.
|
||||
*
|
||||
* @param layerItem the layer item
|
||||
*/
|
||||
public MapExtentToEvent(Location location) {
|
||||
this.location = location;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the associated type.
|
||||
*
|
||||
* @return the associated type
|
||||
*/
|
||||
@Override
|
||||
public Type<MapExtentToEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch.
|
||||
*
|
||||
* @param handler the handler
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(MapExtentToEventHandler handler) {
|
||||
handler.onExtentEvent(this);
|
||||
|
||||
}
|
||||
|
||||
public Location getLocation() {
|
||||
return location;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.events;
|
||||
|
||||
import com.google.gwt.event.shared.EventHandler;
|
||||
|
||||
/**
|
||||
* The Interface MapExtentToEventHandler.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 1, 2021
|
||||
*/
|
||||
public interface MapExtentToEventHandler extends EventHandler {
|
||||
|
||||
/**
|
||||
* On extent event.
|
||||
*
|
||||
* @param mapExtentToEvent the map extent to event
|
||||
*/
|
||||
void onExtentEvent(MapExtentToEvent mapExtentToEvent);
|
||||
}
|
|
@ -1,39 +1,42 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.events;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MapEventType;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery;
|
||||
|
||||
import com.google.gwt.event.shared.GwtEvent;
|
||||
|
||||
import ol.Coordinate;
|
||||
|
||||
/**
|
||||
* The Class QueryDataEvent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Oct 29, 2020
|
||||
* Aug 31, 2021
|
||||
*/
|
||||
public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
||||
public static Type<QueryDataEventHandler> TYPE = new Type<QueryDataEventHandler>();
|
||||
private GeoQuery select;
|
||||
private Coordinate onFailureCenterTo;
|
||||
private Long recordId;
|
||||
private ExtentWrapped queryClickExtent;
|
||||
private String mongoItemId;
|
||||
private boolean onInit;
|
||||
|
||||
private MapEventType sourceMapEventType;
|
||||
|
||||
/**
|
||||
* Instantiates a new query data event.
|
||||
*
|
||||
* @param select the select
|
||||
* @param onFailureCenterTo the on failure center to
|
||||
* @param recordId the record id
|
||||
* @param mongoItemId the mongo item id
|
||||
* @param onInit the on init
|
||||
* @param mapEventType the map event type
|
||||
*/
|
||||
public QueryDataEvent(GeoQuery select, Coordinate onFailureCenterTo, Long recordId, boolean onInit) {
|
||||
public QueryDataEvent(GeoQuery select, ExtentWrapped queryClickExtent, String mongoItemId, boolean onInit,
|
||||
MapEventType mapEventType) {
|
||||
this.select = select;
|
||||
this.onFailureCenterTo = onFailureCenterTo;
|
||||
this.recordId = recordId;
|
||||
this.queryClickExtent = queryClickExtent;
|
||||
this.mongoItemId = mongoItemId;
|
||||
this.onInit = onInit;
|
||||
this.sourceMapEventType = mapEventType;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,14 +49,13 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
return TYPE;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the record id.
|
||||
* Gets the mongo item id.
|
||||
*
|
||||
* @return the record id
|
||||
* @return the mongo item id
|
||||
*/
|
||||
public Long getRecordId() {
|
||||
return recordId;
|
||||
public String getMongoItemId() {
|
||||
return mongoItemId;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -64,6 +66,7 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
public boolean isOnInit() {
|
||||
return onInit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch.
|
||||
*
|
||||
|
@ -84,9 +87,17 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
return select;
|
||||
}
|
||||
|
||||
public ExtentWrapped getQueryClickExtent() {
|
||||
return queryClickExtent;
|
||||
}
|
||||
|
||||
public Coordinate getOnFailureCenterTo() {
|
||||
return onFailureCenterTo;
|
||||
/**
|
||||
* Gets the source map event type.
|
||||
*
|
||||
* @return the source map event type
|
||||
*/
|
||||
public MapEventType getSourceMapEventType() {
|
||||
return sourceMapEventType;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -94,19 +105,16 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("QueryDataEvent [select=");
|
||||
builder.append(select);
|
||||
builder.append(", onFailureCenterTo=");
|
||||
builder.append(onFailureCenterTo);
|
||||
builder.append(", recordId=");
|
||||
builder.append(recordId);
|
||||
builder.append(", queryClickExtent=");
|
||||
builder.append(queryClickExtent);
|
||||
builder.append(", mongoItemId=");
|
||||
builder.append(mongoItemId);
|
||||
builder.append(", onInit=");
|
||||
builder.append(onInit);
|
||||
builder.append(", sourceMapEventType=");
|
||||
builder.append(sourceMapEventType);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -9,15 +9,15 @@ import com.google.gwt.event.shared.GwtEvent;
|
|||
/**
|
||||
* The Class ShowDetailsEvent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 13, 2020
|
||||
* Jul 30, 2021
|
||||
*/
|
||||
public class ShowDetailsEvent extends GwtEvent<ShowDetailsEventHandler> {
|
||||
public static Type<ShowDetailsEventHandler> TYPE = new Type<ShowDetailsEventHandler>();
|
||||
private String geonaItemType;
|
||||
private FeatureRow featureRow;
|
||||
private Long geonaID;
|
||||
private String geonaMongoID;
|
||||
private String itemName;
|
||||
|
||||
|
||||
|
@ -25,13 +25,13 @@ public class ShowDetailsEvent extends GwtEvent<ShowDetailsEventHandler> {
|
|||
* Instantiates a new show details event.
|
||||
*
|
||||
* @param geonaItemType the geona item type
|
||||
* @param geonaID the geona ID
|
||||
* @param geonaMongoID the geona mongo ID
|
||||
* @param itemName the item name
|
||||
* @param featureRow the feature row
|
||||
*/
|
||||
public ShowDetailsEvent(String geonaItemType, Long geonaID, String itemName, FeatureRow featureRow) {
|
||||
public ShowDetailsEvent(String geonaItemType, String geonaMongoID, String itemName, FeatureRow featureRow) {
|
||||
this.geonaItemType = geonaItemType;
|
||||
this.geonaID = geonaID;
|
||||
this.geonaMongoID = geonaMongoID;
|
||||
this.itemName = itemName;
|
||||
this.featureRow = featureRow;
|
||||
|
||||
|
@ -47,7 +47,7 @@ public class ShowDetailsEvent extends GwtEvent<ShowDetailsEventHandler> {
|
|||
*/
|
||||
public ShowDetailsEvent(GeoNaItemRef gir, String itemName, FeatureRow featureRow) {
|
||||
this.geonaItemType = gir.getItemType();
|
||||
this.geonaID = gir.getItemId();
|
||||
this.geonaMongoID = gir.getItemId();
|
||||
this.itemName = itemName;
|
||||
this.featureRow = featureRow;
|
||||
}
|
||||
|
@ -92,12 +92,12 @@ public class ShowDetailsEvent extends GwtEvent<ShowDetailsEventHandler> {
|
|||
}
|
||||
|
||||
/**
|
||||
* Gets the geona ID.
|
||||
* Gets the geona mongo ID.
|
||||
*
|
||||
* @return the geona ID
|
||||
* @return the geona mongo ID
|
||||
*/
|
||||
public Long getGeonaID() {
|
||||
return geonaID;
|
||||
public String getGeonaMongoID() {
|
||||
return geonaMongoID;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -125,7 +125,7 @@ public class ShowDetailsEvent extends GwtEvent<ShowDetailsEventHandler> {
|
|||
* @return the geona item ref
|
||||
*/
|
||||
public GeoNaItemRef getGeonaItemRef() {
|
||||
return new GeoNaItemRef(geonaID, geonaItemType);
|
||||
return new GeoNaItemRef(geonaMongoID, geonaItemType);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,14 +1,24 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.gis;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.resources.Images;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.GeoQuery.TYPE;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.i18n.client.NumberFormat;
|
||||
import com.google.gwt.json.client.JSONObject;
|
||||
import com.google.gwt.json.client.JSONParser;
|
||||
import com.google.gwt.json.client.JSONString;
|
||||
import com.google.gwt.json.client.JSONValue;
|
||||
|
||||
import ol.Collection;
|
||||
import ol.Coordinate;
|
||||
import ol.Feature;
|
||||
import ol.Map;
|
||||
|
@ -22,6 +32,7 @@ import ol.event.EventListener;
|
|||
import ol.geom.Point;
|
||||
import ol.interaction.KeyboardPan;
|
||||
import ol.interaction.KeyboardZoom;
|
||||
import ol.layer.Base;
|
||||
import ol.layer.Image;
|
||||
import ol.layer.LayerOptions;
|
||||
import ol.layer.Tile;
|
||||
|
@ -32,6 +43,7 @@ import ol.source.ImageWms;
|
|||
import ol.source.ImageWmsOptions;
|
||||
import ol.source.ImageWmsParams;
|
||||
import ol.source.Osm;
|
||||
import ol.source.Source;
|
||||
import ol.source.XyzOptions;
|
||||
import ol.style.Icon;
|
||||
import ol.style.IconOptions;
|
||||
|
@ -39,14 +51,16 @@ import ol.style.Style;
|
|||
import ol.style.Text;
|
||||
import ol.style.TextOptions;
|
||||
|
||||
/**
|
||||
/**
|
||||
* The Class LightOpenLayerOSM.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 11, 2020
|
||||
*/
|
||||
public class LightOpenLayerOSM {
|
||||
public class LightOpenLayerOSM {
|
||||
|
||||
public static final int MAX_ZOOM = 20;
|
||||
|
||||
/** The map. */
|
||||
private Map map;
|
||||
|
@ -66,7 +80,6 @@ import ol.style.TextOptions;
|
|||
|
||||
private String markerURL = Images.ICONS.mapMarkerIcon().getURL();
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new light open layer OSM.
|
||||
*
|
||||
|
@ -76,14 +89,15 @@ import ol.style.TextOptions;
|
|||
|
||||
// create a OSM-layer
|
||||
XyzOptions osmSourceOptions = OLFactory.createOptions();
|
||||
osmSourceOptions.setCrossOrigin("Anonymous");
|
||||
// osmSourceOptions.setTileLoadFunction(null);
|
||||
|
||||
Osm osmSource = new Osm(osmSourceOptions);
|
||||
LayerOptions osmLayerOptions = OLFactory.createOptions();
|
||||
osmLayerOptions.setSource(osmSource);
|
||||
|
||||
Tile osmLayer = new Tile(osmLayerOptions);
|
||||
// create a projection
|
||||
projectionOptions.setCode(GeoportalDataViewerConstants.EPSG_3857);
|
||||
projectionOptions.setCode(MAP_PROJECTION.EPSG_3857.getName());
|
||||
projectionOptions.setUnits("m");
|
||||
|
||||
Projection projection = new Projection(projectionOptions);
|
||||
|
@ -101,7 +115,7 @@ import ol.style.TextOptions;
|
|||
map = new Map(mapOptions);
|
||||
|
||||
map.addLayer(osmLayer);
|
||||
//map.addLayer(tileDebugLayer);
|
||||
// map.addLayer(tileDebugLayer);
|
||||
|
||||
Attribution attribution = new Attribution();
|
||||
attribution.setCollapsed(true);
|
||||
|
@ -112,7 +126,7 @@ import ol.style.TextOptions;
|
|||
public void onEvent(MapBrowserEvent event) {
|
||||
// TODO Auto-generated method stub
|
||||
Coordinate coordinate = event.getCoordinate();
|
||||
if(isQueryPointActive) {
|
||||
if (isQueryPointActive) {
|
||||
|
||||
double lon = coordinate.getX();
|
||||
double lat = coordinate.getY();
|
||||
|
@ -125,17 +139,17 @@ import ol.style.TextOptions;
|
|||
// where 10px is the pixel diameter dimension of the clicked point
|
||||
double bboxWidth = Math.abs(getExtent().getLowerLeftX() - getExtent().getUpperRightX());
|
||||
double geoWidth = (bboxWidth / w) * (20 / 2);
|
||||
double x1 = Math.min(lon+geoWidth, lon-geoWidth);
|
||||
double x2 = Math.max(lon+geoWidth, lon-geoWidth);
|
||||
double y1 = Math.min(lat+geoWidth, lat-geoWidth);
|
||||
double y2 = Math.max(lat+geoWidth, lat-geoWidth);
|
||||
//GWT.log("("+x1+","+y1+")("+x2+","+y2+")");
|
||||
double x1 = Math.min(lon + geoWidth, lon - geoWidth);
|
||||
double x2 = Math.max(lon + geoWidth, lon - geoWidth);
|
||||
double y1 = Math.min(lat + geoWidth, lat - geoWidth);
|
||||
double y2 = Math.max(lat + geoWidth, lat - geoWidth);
|
||||
// GWT.log("("+x1+","+y1+")("+x2+","+y2+")");
|
||||
|
||||
// Point pt = new Point(coordinate);
|
||||
// ol.Extent extent = pt.getExtent();
|
||||
// //new ClickDataInfo(x1, y1, x2, y2)
|
||||
// SelectDataInfo selectDataInfo
|
||||
//selectBox(new GeoQuery(x1, y1, x2, y2, GeoQuery.TYPE.POINT));
|
||||
// selectBox(new GeoQuery(x1, y1, x2, y2, GeoQuery.TYPE.POINT));
|
||||
GeoQuery select = new GeoQuery(x1, y1, x2, y2, TYPE.POINT);
|
||||
|
||||
}
|
||||
|
@ -150,7 +164,6 @@ import ol.style.TextOptions;
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the center.
|
||||
*
|
||||
|
@ -174,23 +187,24 @@ import ol.style.TextOptions;
|
|||
*
|
||||
* @param mapServerHost the map server host
|
||||
* @param layerName the layer name
|
||||
* @param bbox
|
||||
* @param bbox the bbox
|
||||
* @return the image
|
||||
*/
|
||||
public Image addWMSLayer(String mapServerHost, String layerName, BoundsMap bbox) {
|
||||
GWT.log("Adding wmsLayer with mapServerHost: "+mapServerHost+", layerName: "+layerName);
|
||||
GWT.log("Adding wmsLayer with mapServerHost: " + mapServerHost + ", layerName: " + layerName);
|
||||
|
||||
ImageWmsParams imageWMSParams = OLFactory.createOptions();
|
||||
imageWMSParams.setLayers(layerName);
|
||||
//imageWMSParams.setSize(new Size(400,400));
|
||||
//imageWMSParams.setVersion("1.1.0");
|
||||
// imageWMSParams.setSize(new Size(400,400));
|
||||
// imageWMSParams.setVersion("1.1.0");
|
||||
// if(bbox!=null)
|
||||
// imageWMSParams.set("BBOX", bbox.getLowerLeftX()+","+bbox.getLowerLeftY()+","+bbox.getUpperRightX()+","+bbox.getUpperRightY());
|
||||
|
||||
ImageWmsOptions imageWMSOptions = OLFactory.createOptions();
|
||||
imageWMSOptions.setCrossOrigin("Anonymous");
|
||||
imageWMSOptions.setUrl(mapServerHost);
|
||||
imageWMSOptions.setParams(imageWMSParams);
|
||||
//imageWMSOptions.setRatio(1.5f);
|
||||
// imageWMSOptions.setRatio(1.5f);
|
||||
|
||||
ImageWms imageWMSSource = new ImageWms(imageWMSOptions);
|
||||
|
||||
|
@ -198,25 +212,100 @@ import ol.style.TextOptions;
|
|||
layerOptions.setSource(imageWMSSource);
|
||||
|
||||
ol.layer.Image wmsLayer = new ol.layer.Image(layerOptions);
|
||||
//visibleLayerItems
|
||||
// visibleLayerItems
|
||||
map.addLayer(wmsLayer);
|
||||
|
||||
return wmsLayer;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the first layer.
|
||||
*
|
||||
* @return the first layer
|
||||
*/
|
||||
public Image getFirstLayer() {
|
||||
if(map.getLayers()!=null) {
|
||||
if (map.getLayers() != null) {
|
||||
return (Image) map.getLayers().getArray()[0];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layers.
|
||||
*
|
||||
* @return the layers
|
||||
*/
|
||||
public List<String> getLayers() {
|
||||
Collection<Base> layers = map.getLayers();
|
||||
List<String> layerNames = null;
|
||||
if (layers != null) {
|
||||
Base[] layersArr = layers.getArray();
|
||||
layerNames = new ArrayList<String>(layersArr.length);
|
||||
for (int i = 0; i < layersArr.length; i++) {
|
||||
Base layer = layersArr[i];
|
||||
if (layer instanceof Image) {
|
||||
Image layerImage = (Image) layer;
|
||||
|
||||
Source source = layerImage.getSource();
|
||||
// GWT.log("source: "+source.toString());
|
||||
GeoportalDataViewerConstants.printJsObj(source);
|
||||
String sorceRootObj = GeoportalDataViewerConstants.toJsonObj(source);
|
||||
JSONValue jsonObj = JSONParser.parseStrict(sorceRootObj);
|
||||
// GWT.log("jsonObj: " + jsonObj.toString());
|
||||
JSONObject jsonSourceObj = (JSONObject) jsonObj;
|
||||
|
||||
JSONObject jsonParamsObj = (JSONObject) jsonSourceObj.get("params_");
|
||||
// GWT.log("jsonParamsObj is: "+jsonParamsObj);
|
||||
JSONValue jsonLayers = jsonParamsObj.get("LAYERS");
|
||||
GWT.log("theLayerName name is: " + jsonLayers);
|
||||
layerNames.add(jsonLayers.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return layerNames;
|
||||
}
|
||||
|
||||
public java.util.Map<String, String> getLayerURLsProperty() {
|
||||
|
||||
Collection<Base> layers = map.getLayerGroup().getLayers();
|
||||
java.util.Map<String, String> mapLayerNameURL = new HashMap<String, String>();
|
||||
if (layers != null) {
|
||||
Base[] layersArr = layers.getArray();
|
||||
for (int i = 0; i < layersArr.length; i++) {
|
||||
Base layer = layersArr[i];
|
||||
//GeoportalDataViewerConstants.printJs(layer.toString());
|
||||
if (layer instanceof Image) {
|
||||
Image layerImage = (Image) layer;
|
||||
|
||||
Source source = layerImage.getSource();
|
||||
// GWT.log("source: "+source.toString());
|
||||
// GeoportalDataViewerConstants.printJsObj(source);
|
||||
String sorceRootObj = GeoportalDataViewerConstants.toJsonObj(source);
|
||||
JSONValue jsonObj = JSONParser.parseStrict(sorceRootObj);
|
||||
// GWT.log("jsonObj: " + jsonObj.toString());
|
||||
JSONObject jsonSourceObj = (JSONObject) jsonObj;
|
||||
|
||||
JSONObject jsonParamsObj = (JSONObject) jsonSourceObj.get("params_");
|
||||
// GWT.log("jsonParamsObj is: "+jsonParamsObj);
|
||||
JSONString jsonLayers = (JSONString) jsonParamsObj.get("LAYERS");
|
||||
String layerName = jsonLayers.stringValue();
|
||||
GWT.log("jsonLayers is: " + layerName);
|
||||
// GWT.log("theLayerName name is: " + jsonLayers);
|
||||
|
||||
JSONValue jsonImage = jsonSourceObj.get("image_");
|
||||
// GWT.log("jsonImage: " + jsonImage.toString());
|
||||
JSONObject jsonImageObj = (JSONObject) jsonImage;
|
||||
JSONString jsonSrc = (JSONString) jsonImageObj.get("src_");
|
||||
String layerURL = jsonSrc.stringValue();
|
||||
GWT.log("jsonSrc: " + layerURL);
|
||||
mapLayerNameURL.put(layerName, layerURL);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
GWT.log("returning mapLayerNameURL: "+mapLayerNameURL);
|
||||
return mapLayerNameURL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the point.
|
||||
|
@ -227,21 +316,21 @@ import ol.style.TextOptions;
|
|||
*/
|
||||
public void addPoint(Coordinate coordinate, boolean showCoordinateText, boolean asMarker) {
|
||||
|
||||
if(geometryLayer!=null) {
|
||||
if (geometryLayer != null) {
|
||||
map.removeLayer(geometryLayer);
|
||||
}else {
|
||||
} else {
|
||||
|
||||
}
|
||||
Style style = new Style();
|
||||
|
||||
if(asMarker) {
|
||||
if (asMarker) {
|
||||
IconOptions iconOptions = new IconOptions();
|
||||
iconOptions.setSrc(markerURL);
|
||||
Icon icon = new Icon(iconOptions);
|
||||
style.setImage(icon);
|
||||
}
|
||||
|
||||
if(showCoordinateText) {
|
||||
if (showCoordinateText) {
|
||||
TextOptions textOptions = new TextOptions();
|
||||
textOptions.setOffsetY(-25);
|
||||
// StrokeOptions strokeOptions = new StrokeOptions();
|
||||
|
@ -253,10 +342,11 @@ import ol.style.TextOptions;
|
|||
// fillOptions.setColor(new Color(0, 0, 0, 0.0));
|
||||
// textOptions.setFill(new Fill(fillOptions));
|
||||
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(coordinate, GeoportalDataViewerConstants.EPSG_3857, GeoportalDataViewerConstants.EPSG_4326);
|
||||
//DecimalFormat df = new DecimalFormat("#.####");
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(coordinate, MAP_PROJECTION.EPSG_3857.getName(),
|
||||
MAP_PROJECTION.EPSG_4326.getName());
|
||||
// DecimalFormat df = new DecimalFormat("#.####");
|
||||
NumberFormat fmt = NumberFormat.getFormat("#.####");
|
||||
textOptions.setText("Long: "+fmt.format(transfCoord.getX()) + ", Lat: "+fmt.format(transfCoord.getY()));
|
||||
textOptions.setText("Long: " + fmt.format(transfCoord.getX()) + ", Lat: " + fmt.format(transfCoord.getY()));
|
||||
|
||||
Text text = new Text(textOptions);
|
||||
// FillOptions fillOptions = new FillOptions();
|
||||
|
@ -266,7 +356,6 @@ import ol.style.TextOptions;
|
|||
// style.setFill(fill);
|
||||
style.setText(text);
|
||||
|
||||
|
||||
}
|
||||
Point thePoint = new Point(coordinate);
|
||||
Feature vf = new Feature(thePoint);
|
||||
|
@ -297,7 +386,6 @@ import ol.style.TextOptions;
|
|||
return map.getView().getProjection().getCode();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the current zoom level.
|
||||
*
|
||||
|
@ -307,8 +395,6 @@ import ol.style.TextOptions;
|
|||
return map.getView().getZoom();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the bbox.
|
||||
*
|
||||
|
@ -328,4 +414,3 @@ import ol.style.TextOptions;
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,28 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.gis;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.AddedLayerToMapEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Visibility;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.json.client.JSONObject;
|
||||
import com.google.gwt.json.client.JSONParser;
|
||||
import com.google.gwt.json.client.JSONValue;
|
||||
import com.google.gwt.user.client.DOM;
|
||||
import com.google.gwt.user.client.Element;
|
||||
import com.google.gwt.user.client.Event;
|
||||
|
||||
import ol.Collection;
|
||||
import ol.Coordinate;
|
||||
import ol.Feature;
|
||||
import ol.FeatureOptions;
|
||||
import ol.Map;
|
||||
import ol.MapBrowserEvent;
|
||||
import ol.MapEvent;
|
||||
|
@ -25,6 +35,7 @@ import ol.View;
|
|||
import ol.ViewOptions;
|
||||
import ol.control.Attribution;
|
||||
import ol.event.EventListener;
|
||||
import ol.geom.Geometry;
|
||||
import ol.interaction.Draw;
|
||||
import ol.interaction.DrawOptions;
|
||||
import ol.interaction.Extent;
|
||||
|
@ -36,16 +47,17 @@ import ol.layer.Base;
|
|||
import ol.layer.Image;
|
||||
import ol.layer.LayerOptions;
|
||||
import ol.layer.Tile;
|
||||
import ol.layer.VectorLayerOptions;
|
||||
import ol.proj.Projection;
|
||||
import ol.proj.ProjectionOptions;
|
||||
import ol.source.ImageWms;
|
||||
import ol.source.ImageWmsOptions;
|
||||
import ol.source.ImageWmsParams;
|
||||
import ol.source.Osm;
|
||||
import ol.source.Source;
|
||||
import ol.source.Vector;
|
||||
import ol.source.XyzOptions;
|
||||
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Class OpenLayerOSM.
|
||||
|
@ -56,14 +68,41 @@ import ol.source.XyzOptions;
|
|||
*/
|
||||
public abstract class OpenLayerOSM {
|
||||
|
||||
public static final int MAX_ZOOM = 21;
|
||||
|
||||
/**
|
||||
* Click listener.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
public abstract void clickListener(MapBrowserEvent event);
|
||||
|
||||
/**
|
||||
* Move end listener.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
public abstract void moveEndListener(MapEvent event);
|
||||
|
||||
/**
|
||||
* Move start listener.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
public abstract void moveStartListener(MapEvent event);
|
||||
|
||||
/**
|
||||
* Map zoom listener.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
public abstract void mapZoomListener(MapEvent event);
|
||||
|
||||
/**
|
||||
* Map zoom end listener.
|
||||
*
|
||||
* @param event the event
|
||||
*/
|
||||
public abstract void mapZoomEndListener(MapEvent event);
|
||||
|
||||
/** The map. */
|
||||
|
@ -92,6 +131,9 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
private boolean isQueryPointActive;
|
||||
|
||||
private java.util.Map<String, Image> wmsDetailsLayerMap;
|
||||
|
||||
private HashMap<String, Image> wmsLayerMap;
|
||||
|
||||
/**
|
||||
* Instantiates a new open layer OSM.
|
||||
|
@ -99,28 +141,31 @@ public abstract class OpenLayerOSM {
|
|||
* @param divTargetId the div target id
|
||||
* @param eventBus the event bus
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see de.desjardins.ol3.demo.client.example.Example#show()
|
||||
*/
|
||||
public OpenLayerOSM(String divTargetId, HandlerManager eventBus) {
|
||||
this.eventBus = eventBus;
|
||||
|
||||
// create a OSM-layer
|
||||
XyzOptions osmSourceOptions = OLFactory.createOptions();
|
||||
XyzOptions xyzOptions = OLFactory.createOptions();
|
||||
// osmSourceOptions.setCrossOrigin("Anonymous");
|
||||
// osmSourceOptions.setTileLoadFunction(null);
|
||||
|
||||
Osm osmSource = new Osm(osmSourceOptions);
|
||||
Osm osmSource = new Osm(xyzOptions);
|
||||
LayerOptions osmLayerOptions = OLFactory.createOptions();
|
||||
osmLayerOptions.setSource(osmSource);
|
||||
|
||||
Tile osmLayer = new Tile(osmLayerOptions);
|
||||
// create a projection
|
||||
projectionOptions.setCode(GeoportalDataViewerConstants.EPSG_3857);
|
||||
projectionOptions.setCode(MAP_PROJECTION.EPSG_3857.getName());
|
||||
projectionOptions.setUnits("m");
|
||||
|
||||
Projection projection = new Projection(projectionOptions);
|
||||
viewOptions.setProjection(projection);
|
||||
viewOptions.setMaxZoom(19);
|
||||
|
||||
viewOptions.setMaxZoom(MAX_ZOOM);
|
||||
|
||||
// create a view
|
||||
view = new View(viewOptions);
|
||||
|
@ -133,7 +178,7 @@ public abstract class OpenLayerOSM {
|
|||
map = new Map(mapOptions);
|
||||
|
||||
map.addLayer(osmLayer);
|
||||
//map.addLayer(tileDebugLayer);
|
||||
// map.addLayer(tileDebugLayer);
|
||||
|
||||
// add some controls
|
||||
map.addControl(OLFactory.createScaleLine());
|
||||
|
@ -151,6 +196,9 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind events.
|
||||
*/
|
||||
private void bindEvents() {
|
||||
|
||||
map.addClickListener(new EventListener<MapBrowserEvent>() {
|
||||
|
@ -206,19 +254,24 @@ public abstract class OpenLayerOSM {
|
|||
/**
|
||||
* Sets the center.
|
||||
*
|
||||
* @param centerCoordinate the new center
|
||||
* @param zoom the new zoom
|
||||
*/
|
||||
public void setZoom(int zoom) {
|
||||
view.setZoom(zoom);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show popup.
|
||||
*
|
||||
* @param html the html
|
||||
* @param coordinate the coordinate
|
||||
*/
|
||||
public void showPopup(String html, Coordinate coordinate) {
|
||||
GWT.log("Showing popup on: "+coordinate);
|
||||
//GeoportalDataViewerConstants.print("Showing popup on: "+coordinate);
|
||||
GWT.log("Showing popup on: " + coordinate);
|
||||
// GeoportalDataViewerConstants.print("Showing popup on: "+coordinate);
|
||||
Element elPopup = DOM.getElementById("popup");
|
||||
elPopup.getStyle().setVisibility(Visibility.VISIBLE);
|
||||
if(popupOverlay==null) {
|
||||
if (popupOverlay == null) {
|
||||
popupOverlay = addOverlay(elPopup);
|
||||
addPopupCloserHandelr(popupOverlay);
|
||||
}
|
||||
|
@ -227,8 +280,11 @@ public abstract class OpenLayerOSM {
|
|||
popupOverlay.setPosition(coordinate);
|
||||
}
|
||||
|
||||
/**
|
||||
* Hide popup.
|
||||
*/
|
||||
public void hidePopup() {
|
||||
if(popupOverlay!=null) {
|
||||
if (popupOverlay != null) {
|
||||
Element elPopup = DOM.getElementById("popup");
|
||||
elPopup.getStyle().setVisibility(Visibility.HIDDEN);
|
||||
}
|
||||
|
@ -271,7 +327,6 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
}-*/;
|
||||
|
||||
|
||||
/**
|
||||
* Adds the WMS layer.
|
||||
*
|
||||
|
@ -279,27 +334,149 @@ public abstract class OpenLayerOSM {
|
|||
*/
|
||||
public void addWMSLayer(LayerItem layerItem) {
|
||||
|
||||
if (wmsLayerMap == null)
|
||||
wmsLayerMap = new HashMap<String, Image>();
|
||||
|
||||
String key = layerItem.getName();
|
||||
|
||||
Image layer = wmsLayerMap.get(key);
|
||||
if (layer == null) {
|
||||
ImageWmsParams imageWMSParams = OLFactory.createOptions();
|
||||
imageWMSParams.setLayers(layerItem.getName());
|
||||
|
||||
ImageWmsOptions imageWMSOptions = OLFactory.createOptions();
|
||||
imageWMSOptions.setUrl(layerItem.getMapServerHost());
|
||||
imageWMSOptions.setParams(imageWMSParams);
|
||||
//imageWMSOptions.setRatio(1.5f);
|
||||
// imageWMSOptions.setRatio(1.5f);
|
||||
|
||||
ImageWms imageWMSSource = new ImageWms(imageWMSOptions);
|
||||
|
||||
LayerOptions layerOptions = OLFactory.createOptions();
|
||||
layerOptions.setSource(imageWMSSource);
|
||||
|
||||
// Settings MIN and MAX Resolution
|
||||
if (layerItem.getMinResolution() != null) {
|
||||
layerOptions.setMinResolution(layerItem.getMinResolution());
|
||||
}
|
||||
if (layerItem.getMaxResolution() != null) {
|
||||
layerOptions.setMaxResolution(layerItem.getMaxResolution());
|
||||
}
|
||||
|
||||
Image wmsLayer = new Image(layerOptions);
|
||||
|
||||
//visibleLayerItems
|
||||
// visibleLayerItems
|
||||
|
||||
map.addLayer(wmsLayer);
|
||||
GWT.log("Fired the event Added Layer");
|
||||
eventBus.fireEvent(new AddedLayerToMapEvent(layerItem));
|
||||
wmsLayerMap.put(key, wmsLayer);
|
||||
|
||||
GWT.log("Added WMSLayer for layer: " + layerItem.getName());
|
||||
eventBus.fireEvent(new AddedLayerToMapEvent(layerItem));
|
||||
} else {
|
||||
GWT.log("The WMS layer with key: " + key + " already exists, skipping");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the WMS detail layer.
|
||||
*
|
||||
* @param layerItem the layer item
|
||||
*/
|
||||
public void addWMSDetailLayer(LayerItem layerItem) {
|
||||
|
||||
if (wmsDetailsLayerMap == null)
|
||||
wmsDetailsLayerMap = new HashMap<String, Image>();
|
||||
|
||||
String key = layerItem.getName();
|
||||
|
||||
Image layer = wmsDetailsLayerMap.get(key);
|
||||
|
||||
if (layer == null) {
|
||||
GWT.log("The detail layer with key: " + key + " does not exist, creating and adding it to map");
|
||||
ImageWmsParams imageWMSParams = OLFactory.createOptions();
|
||||
imageWMSParams.setLayers(layerItem.getName());
|
||||
|
||||
ImageWmsOptions imageWMSOptions = OLFactory.createOptions();
|
||||
imageWMSOptions.setUrl(layerItem.getMapServerHost());
|
||||
imageWMSOptions.setParams(imageWMSParams);
|
||||
// imageWMSOptions.setRatio(1.5f);
|
||||
|
||||
ImageWms imageWMSSource = new ImageWms(imageWMSOptions);
|
||||
|
||||
LayerOptions layerOptions = OLFactory.createOptions();
|
||||
layerOptions.setSource(imageWMSSource);
|
||||
// Settings MIN and MAX Resolution
|
||||
if (layerItem.getMinResolution() != null) {
|
||||
layerOptions.setMinResolution(layerItem.getMinResolution());
|
||||
}
|
||||
if (layerItem.getMaxResolution() != null) {
|
||||
layerOptions.setMaxResolution(layerItem.getMaxResolution());
|
||||
}
|
||||
|
||||
Image wmsLayer = new Image(layerOptions);
|
||||
|
||||
// visibleLayerItems
|
||||
|
||||
map.addLayer(wmsLayer);
|
||||
wmsDetailsLayerMap.put(key, wmsLayer);
|
||||
|
||||
GWT.log("Added WMSDetailLayer for layer name: " + layerItem.getName());
|
||||
eventBus.fireEvent(new AddedLayerToMapEvent(layerItem));
|
||||
} else {
|
||||
GWT.log("The WMS detail layer with key: " + key + " already exists, skipping");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the all detail layers.
|
||||
*/
|
||||
public void removeAllDetailLayers() {
|
||||
|
||||
// NOT NEEDED ANYMORE.. I'M USING MIN/MAX LAYER RESOLUTION
|
||||
|
||||
if (wmsDetailsLayerMap == null)
|
||||
return;
|
||||
|
||||
GWT.log("Removing layers: " + wmsDetailsLayerMap.keySet() + " from map");
|
||||
|
||||
for (String key : wmsDetailsLayerMap.keySet()) {
|
||||
Image layer = wmsDetailsLayerMap.get(key);
|
||||
map.removeLayer(layer);
|
||||
}
|
||||
|
||||
wmsDetailsLayerMap.clear();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the vector.
|
||||
*
|
||||
* @param geometry the geometry
|
||||
*/
|
||||
public void addVector(Geometry geometry) {
|
||||
|
||||
VectorLayerOptions vectorLayerOptions = new VectorLayerOptions();
|
||||
vectorLayerOptions.setMap(map);
|
||||
|
||||
// Style style = new Style();
|
||||
// FillOptions fillOptions = new FillOptions();
|
||||
// Color color = new Color(0, 0, 255, 1.0);
|
||||
// fillOptions.setColor(color);
|
||||
// Fill fill = new Fill(fillOptions);
|
||||
// style.setFill(fill);
|
||||
|
||||
FeatureOptions featureOptions = new FeatureOptions();
|
||||
featureOptions.setGeometry(geometry);
|
||||
Feature feature = OLFactory.createFeature(featureOptions);
|
||||
|
||||
Vector vectorSource = OLFactory.createVectorSource();
|
||||
vectorSource.addFeature(feature);
|
||||
vectorLayerOptions.setSource(vectorSource);
|
||||
|
||||
ol.layer.Vector vector = OLFactory.createVector(vectorLayerOptions);
|
||||
|
||||
map.addLayer(vector);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -308,7 +485,7 @@ public abstract class OpenLayerOSM {
|
|||
* @return the draw
|
||||
*/
|
||||
public Draw addPointVectorSource() {
|
||||
if(queryPoint==null)
|
||||
if (queryPoint == null)
|
||||
initPointInteraction();
|
||||
|
||||
map.addInteraction(queryPoint);
|
||||
|
@ -353,7 +530,7 @@ public abstract class OpenLayerOSM {
|
|||
*/
|
||||
public void removeQueryInteractions() {
|
||||
Collection<Interaction> interactions = map.getInteractions();
|
||||
if(interactions!=null) {
|
||||
if (interactions != null) {
|
||||
map.removeInteraction(queryBox);
|
||||
map.removeInteraction(queryPoint);
|
||||
isQueryBoxActive = false;
|
||||
|
@ -369,17 +546,16 @@ public abstract class OpenLayerOSM {
|
|||
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));
|
||||
// StyleOptions styleOptions = new StyleOptions();
|
||||
// styleOptions.setStroke(stroke);
|
||||
// styleOptions.set
|
||||
// extentOptions.setBoxStyle(new ol.style.Style(styleOptions));
|
||||
queryBox = new Extent(extentOptions);
|
||||
map.addInteraction(queryBox);
|
||||
isQueryBoxActive = true;
|
||||
return queryBox;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Adds the overlay.
|
||||
*
|
||||
|
@ -408,13 +584,13 @@ public abstract class OpenLayerOSM {
|
|||
|
||||
Collection<Base> layers = map.getLayers();
|
||||
|
||||
if(layers!=null) {
|
||||
if (layers != null) {
|
||||
Base[] layersArr = layers.getArray();
|
||||
for (int i = 0; i < layersArr.length; i++) {
|
||||
Base layer = layersArr[i];
|
||||
String theLayerName = (String) layer.get("name");
|
||||
GWT.log("The Layer name is: "+layerName);
|
||||
if(theLayerName!=null && theLayerName.equals(layerName))
|
||||
GWT.log("The Layer name is: " + theLayerName);
|
||||
if (theLayerName != null && theLayerName.equals(layerName))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -422,6 +598,30 @@ public abstract class OpenLayerOSM {
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer property.
|
||||
*
|
||||
* @param layerName the layer name
|
||||
* @param property the property
|
||||
* @return the layer property
|
||||
*/
|
||||
public String getLayerProperty(String layerName, String property) {
|
||||
|
||||
Collection<Base> layers = map.getLayers();
|
||||
|
||||
if (layers != null) {
|
||||
Base[] layersArr = layers.getArray();
|
||||
for (int i = 0; i < layersArr.length; i++) {
|
||||
Base layer = layersArr[i];
|
||||
String theLayerName = (String) layer.get("name");
|
||||
GWT.log("The Layer name is: " + layerName);
|
||||
if (theLayerName != null && theLayerName.equals(layerName))
|
||||
return layer.get(property);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the projection code.
|
||||
|
@ -432,7 +632,6 @@ public abstract class OpenLayerOSM {
|
|||
return map.getView().getProjection().getCode();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the current zoom level.
|
||||
*
|
||||
|
@ -442,7 +641,14 @@ public abstract class OpenLayerOSM {
|
|||
return map.getView().getZoom();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the current zoom level.
|
||||
*
|
||||
* @return the current zoom level
|
||||
*/
|
||||
public double getCurrentResolution() {
|
||||
return map.getView().getResolution();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the bbox.
|
||||
|
@ -462,25 +668,106 @@ public abstract class OpenLayerOSM {
|
|||
return this.map.getView().calculateExtent(map.getSize());
|
||||
}
|
||||
|
||||
public Coordinate transform (Coordinate centerCoordinate, String source, String target){
|
||||
/**
|
||||
* Transform.
|
||||
*
|
||||
* @param centerCoordinate the center coordinate
|
||||
* @param source the source
|
||||
* @param target the target
|
||||
* @return the coordinate
|
||||
*/
|
||||
public Coordinate transform(Coordinate centerCoordinate, String source, String target) {
|
||||
return Projection.transform(centerCoordinate, source, target);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is query box active.
|
||||
*
|
||||
* @return true, if is query box active
|
||||
*/
|
||||
public boolean isQueryBoxActive() {
|
||||
return isQueryBoxActive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is query point active.
|
||||
*
|
||||
* @return true, if is query point active
|
||||
*/
|
||||
public boolean isQueryPointActive() {
|
||||
return isQueryPointActive;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the size.
|
||||
*
|
||||
* @return the size
|
||||
*/
|
||||
public Size getSize() {
|
||||
return map.getSize();
|
||||
}
|
||||
|
||||
/**
|
||||
* Map instancied.
|
||||
*
|
||||
* @return true, if successful
|
||||
*/
|
||||
public boolean mapInstancied() {
|
||||
return this.map!=null;
|
||||
return this.map != null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the layers from map.
|
||||
*
|
||||
* @return the layers from map
|
||||
*/
|
||||
public List<String> getLayersFromMap() {
|
||||
Collection<Base> layers = map.getLayers();
|
||||
List<String> layerNames = null;
|
||||
if (layers != null) {
|
||||
Base[] layersArr = layers.getArray();
|
||||
layerNames = new ArrayList<String>(layersArr.length);
|
||||
for (int i = 0; i < layersArr.length; i++) {
|
||||
Base layer = layersArr[i];
|
||||
if (layer instanceof Image) {
|
||||
Image layerImage = (Image) layer;
|
||||
|
||||
Source source = layerImage.getSource();
|
||||
// GWT.log("source: "+source.toString());
|
||||
// GeoportalDataViewerConstants.printJsObj(source);
|
||||
String sorceRootObj = GeoportalDataViewerConstants.toJsonObj(source);
|
||||
JSONValue jsonObj = JSONParser.parseStrict(sorceRootObj);
|
||||
// GWT.log("jsonObj: " + jsonObj.toString());
|
||||
JSONObject jsonSourceObj = (JSONObject) jsonObj;
|
||||
|
||||
JSONObject jsonParamsObj = (JSONObject) jsonSourceObj.get("params_");
|
||||
// GWT.log("jsonParamsObj is: "+jsonParamsObj);
|
||||
JSONValue jsonLayers = jsonParamsObj.get("LAYERS");
|
||||
GWT.log("theLayerName name is: " + jsonLayers);
|
||||
layerNames.add(jsonLayers.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return layerNames;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the wms details layer map.
|
||||
*
|
||||
* @return the wms details layer map
|
||||
*/
|
||||
public java.util.Map<String, Image> getWmsDetailsLayerMap() {
|
||||
return wmsDetailsLayerMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the wms layer map.
|
||||
*
|
||||
* @return the wms layer map
|
||||
*/
|
||||
public HashMap<String, Image> getWmsLayerMap() {
|
||||
return wmsLayerMap;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -16,4 +16,10 @@ public interface Images extends ClientBundle {
|
|||
|
||||
@Source("icon_share.png")
|
||||
ImageResource shareIcon();
|
||||
|
||||
@Source("italy.png")
|
||||
ImageResource italyIcon();
|
||||
|
||||
@Source("world.png")
|
||||
ImageResource worldIcon();
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
|
@ -1,10 +1,10 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.ClosedViewDetailsEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.products.concessioni.ConcessioneView;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.MapExtentToEvent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerOSM;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.resources.Images;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.NavLink;
|
||||
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
|
@ -16,6 +22,7 @@ import com.google.gwt.uibinder.client.UiBinder;
|
|||
import com.google.gwt.uibinder.client.UiField;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
/**
|
||||
|
@ -57,13 +64,18 @@ public class GeonaDataViewMainPanel extends Composite {
|
|||
@UiField
|
||||
DetailsPanel detailsPanel;
|
||||
|
||||
@UiField
|
||||
Button extentToItaly;
|
||||
|
||||
@UiField
|
||||
Button extentToEarth;
|
||||
|
||||
private MapPanel mapPanel;
|
||||
|
||||
private OpenLayerOSM map;
|
||||
|
||||
private HandlerManager applicationBus;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new geona data view main panel.
|
||||
*
|
||||
|
@ -73,15 +85,25 @@ public class GeonaDataViewMainPanel extends Composite {
|
|||
public GeonaDataViewMainPanel(HandlerManager applicationBus, int mapHeight) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
this.applicationBus = applicationBus;
|
||||
mapPanel = new MapPanel(mapHeight+"px");
|
||||
detailsPanel.setHeight(mapHeight+"px");
|
||||
mapPanel = new MapPanel(mapHeight + "px");
|
||||
detailsPanel.setHeight(mapHeight + "px");
|
||||
detailsPanel.setApplicationBus(applicationBus);
|
||||
mainContainerPanel.add(mapPanel);
|
||||
bindHandlers();
|
||||
dataPointSelection.setIcon(IconType.SCREENSHOT);
|
||||
dataBoxSelection.setIcon(IconType.BOOKMARK);
|
||||
|
||||
removeQuery.setIcon(IconType.REMOVE);
|
||||
|
||||
Image italyImg = new Image(Images.ICONS.italyIcon());
|
||||
italyImg.getElement().getStyle().setPaddingLeft(20, Unit.PX);
|
||||
extentToItaly.getElement().appendChild(italyImg.getElement());
|
||||
extentToItaly.setWidth("140px");
|
||||
|
||||
Image worldImg = new Image(Images.ICONS.worldIcon());
|
||||
worldImg.getElement().getStyle().setPaddingLeft(20, Unit.PX);
|
||||
extentToEarth.getElement().appendChild(worldImg.getElement());
|
||||
extentToEarth.setWidth("140px");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -153,6 +175,30 @@ public class GeonaDataViewMainPanel extends Composite {
|
|||
}
|
||||
});
|
||||
|
||||
extentToItaly.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Location italyLocation = ExtentMapUtil.getLocation(ExtentMapUtil.PLACE.ITALY);
|
||||
applicationBus.fireEvent(new MapExtentToEvent(italyLocation));
|
||||
map.setCenter(italyLocation.getCoordinate(MAP_PROJECTION.EPSG_3857));
|
||||
map.setZoom(italyLocation.getZoomLevel());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
extentToEarth.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Location earthLocation = ExtentMapUtil.getLocation(ExtentMapUtil.PLACE.WORLD);
|
||||
applicationBus.fireEvent(new MapExtentToEvent(earthLocation));
|
||||
map.setCenter(earthLocation.getCoordinate(MAP_PROJECTION.EPSG_3857));
|
||||
map.setZoom(earthLocation.getZoomLevel());
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
.margin-right-10 {
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.font-weight-bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
@ -19,10 +20,29 @@
|
|||
<g:HTMLPanel ui:field="panelMI"
|
||||
addStyleNames="info-interaction">
|
||||
<g:Label>Map Interactions</g:Label>
|
||||
<b:Paragraph><b:Icon type="CHECK_EMPTY"/> Use <code>Shift+Drag</code> to draw an extent for zoom in the Map</b:Paragraph>
|
||||
<b:Paragraph><b:Icon type="HAND_UP"/> Click on the Points shown on the Map to view their features</b:Paragraph>
|
||||
<b:Paragraph>
|
||||
<b:Icon type="CHECK_EMPTY" />
|
||||
Use
|
||||
<code>Shift+Drag</code>
|
||||
to draw an extent for zoom in the Map
|
||||
</b:Paragraph>
|
||||
<b:Paragraph>
|
||||
<b:Icon type="HAND_UP" />
|
||||
Click on the Points shown on the Map to view their features
|
||||
</b:Paragraph>
|
||||
</g:HTMLPanel>
|
||||
</b:DropdownButton>
|
||||
<b:DropdownButton type="LINK" text="Preset Location"
|
||||
icon="TH_LARGE">
|
||||
<b:Nav>
|
||||
<b:Button type="LINK" ui:field="extentToItaly"
|
||||
text="Italy" title="Center to Italy"></b:Button>
|
||||
</b:Nav>
|
||||
<b:Nav>
|
||||
<b:Button type="LINK" ui:field="extentToEarth"
|
||||
text="World" title="Center to World"></b:Button>
|
||||
</b:Nav>
|
||||
</b:DropdownButton>
|
||||
<b:DropdownButton type="LINK" text="Query"
|
||||
visible="false">
|
||||
<!-- <b:ButtonGroup toggle="checkbox" ui:field="buttonGroup"> -->
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.dialogs;
|
||||
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.PublicLink;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.LoaderIcon;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Alert;
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
|
@ -16,6 +16,7 @@ import com.github.gwtbootstrap.client.ui.Tooltip;
|
|||
import com.github.gwtbootstrap.client.ui.constants.VisibilityChange;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Element;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.dom.client.MouseOverEvent;
|
||||
|
@ -26,6 +27,7 @@ import com.google.gwt.user.client.Random;
|
|||
import com.google.gwt.user.client.Timer;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
@ -109,6 +111,9 @@ public class DialogShareableLink extends Composite {
|
|||
@UiField
|
||||
Button showPublicLongLinkButton;
|
||||
|
||||
@UiField
|
||||
HTMLPanel info_panel;
|
||||
|
||||
// @UiField
|
||||
// HTMLPanel panelFieldsContainer;
|
||||
|
||||
|
@ -126,6 +131,7 @@ public class DialogShareableLink extends Composite {
|
|||
+ "with your coworkers, you will enact the users of the group the folder is shared with, "
|
||||
+ "to access the file and the shared folder content. Login required";
|
||||
|
||||
private LoaderIcon loadingIcon = new LoaderIcon("loading...");
|
||||
|
||||
/**
|
||||
* The Interface DialogShareableLinkUiBinder.
|
||||
|
@ -150,7 +156,7 @@ public class DialogShareableLink extends Composite {
|
|||
this.fileVersion = version;
|
||||
this.actionAlert.setAnimation(true);
|
||||
|
||||
//cgRemovePublicLink.setVisible(false);
|
||||
// cgRemovePublicLink.setVisible(false);
|
||||
// fieldSetPrivate.setVisible(false);
|
||||
// fieldPrivateSharing.setVisible(false);
|
||||
cgPublicLink.setVisible(true);
|
||||
|
@ -168,19 +174,20 @@ public class DialogShareableLink extends Composite {
|
|||
|
||||
@Override
|
||||
public void onSuccess(String result) {
|
||||
if(result!=null) {
|
||||
if (result != null) {
|
||||
fieldPrivateSharing.setVisible(true);
|
||||
fieldSetPrivate.setVisible(true);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
showMessage("", false);
|
||||
loadingIcon.getElement().getStyle().setMarginBottom(20,Unit.PX);
|
||||
showLoadingIcon(true);
|
||||
|
||||
//alertFilePublicLink.setVisible(true);
|
||||
// alertFilePublicLink.setVisible(true);
|
||||
loadAndShowPublicLinksForItem(item);
|
||||
//getElement().setClassName("gwt-DialogBoxNew");
|
||||
// getElement().setClassName("gwt-DialogBoxNew");
|
||||
modalBox.setTitle("Share Link...");
|
||||
ModalFooter modalFooter = new ModalFooter();
|
||||
final Button buttClose = new Button("Close");
|
||||
|
@ -196,10 +203,10 @@ public class DialogShareableLink extends Composite {
|
|||
|
||||
addEvents();
|
||||
|
||||
textPrivateLink.setId(Random.nextInt()+Random.nextInt()+"");
|
||||
textPrivateLongLink.setId(Random.nextInt()+Random.nextInt()+"");
|
||||
textPublicLink.setId(Random.nextInt()+Random.nextInt()+"");
|
||||
textPublicLongLink.setId(Random.nextInt()+Random.nextInt()+"");
|
||||
textPrivateLink.setId(Random.nextInt() + Random.nextInt() + "");
|
||||
textPrivateLongLink.setId(Random.nextInt() + Random.nextInt() + "");
|
||||
textPublicLink.setId(Random.nextInt() + Random.nextInt() + "");
|
||||
textPublicLongLink.setId(Random.nextInt() + Random.nextInt() + "");
|
||||
|
||||
modalBox.add(this);
|
||||
modalBox.add(modalFooter);
|
||||
|
@ -226,11 +233,11 @@ public class DialogShareableLink extends Composite {
|
|||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
if(openPublicLink!=null && openPublicLink.getCompleteURL()!=null) {
|
||||
if (openPublicLink != null && openPublicLink.getCompleteURL() != null) {
|
||||
showPublicLongLinkButton.setVisible(false);
|
||||
cgPublicLongLink.setVisible(true);
|
||||
textPublicLongLink.setText(openPublicLink.getCompleteURL());
|
||||
}else {
|
||||
} else {
|
||||
textPublicLongLink.setText("Not available");
|
||||
showPublicLongLinkButton.setText("Not available");
|
||||
showPublicLongLinkButton.addStyleName("href-disabled");
|
||||
|
@ -271,7 +278,6 @@ public class DialogShareableLink extends Composite {
|
|||
}
|
||||
});
|
||||
|
||||
|
||||
privateLongLinkCopyButton.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
|
@ -382,7 +388,6 @@ public class DialogShareableLink extends Composite {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Copy to clipboard.
|
||||
*
|
||||
|
@ -391,7 +396,7 @@ public class DialogShareableLink extends Composite {
|
|||
private native void copyToClipboard(String myDivId) /*-{
|
||||
|
||||
var copyText = $doc.getElementById(myDivId);
|
||||
console.log("text copied is :"+copyText.value);
|
||||
console.log("text copied is :" + copyText.value);
|
||||
copyText.select();
|
||||
//For mobile devices
|
||||
copyText.setSelectionRange(0, 99999);
|
||||
|
@ -399,7 +404,6 @@ public class DialogShareableLink extends Composite {
|
|||
//alert("Copied the text: " + copyText.value);
|
||||
}-*/;
|
||||
|
||||
|
||||
/**
|
||||
* Load and show public links for item.
|
||||
*
|
||||
|
@ -407,11 +411,11 @@ public class DialogShareableLink extends Composite {
|
|||
*/
|
||||
private void loadAndShowPublicLinksForItem(GeoNaItemRef item) {
|
||||
|
||||
GeoportalDataViewerServiceAsync.Util.getInstance().getPublicLinksFor(item,
|
||||
new AsyncCallback<GeoNaItemRef>() {
|
||||
GeoportalDataViewerServiceAsync.Util.getInstance().getPublicLinksFor(item, new AsyncCallback<GeoNaItemRef>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(GeoNaItemRef itemReferences) {
|
||||
showLoadingIcon(false);
|
||||
openPublicLink = itemReferences.getOpenLink();
|
||||
restrictedPublicLink = itemReferences.getRestrictedLink();
|
||||
String toPublicURL = openPublicLink.getShortURL() != null && !openPublicLink.getShortURL().isEmpty()
|
||||
|
@ -421,8 +425,8 @@ public class DialogShareableLink extends Composite {
|
|||
textPublicLink.setValue(toPublicURL);
|
||||
textPublicLongLink.setValue(openPublicLink.getCompleteURL());
|
||||
|
||||
String toPrivateURL = restrictedPublicLink.getShortURL() != null && !restrictedPublicLink.getShortURL().isEmpty()
|
||||
? restrictedPublicLink.getShortURL()
|
||||
String toPrivateURL = restrictedPublicLink.getShortURL() != null
|
||||
&& !restrictedPublicLink.getShortURL().isEmpty() ? restrictedPublicLink.getShortURL()
|
||||
: restrictedPublicLink.getCompleteURL();
|
||||
|
||||
textPrivateLink.setValue(toPrivateURL);
|
||||
|
@ -431,6 +435,7 @@ public class DialogShareableLink extends Composite {
|
|||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
showLoadingIcon(false);
|
||||
openPublicLink = null;
|
||||
disableTextBox(textPublicLink);
|
||||
disableTextBox(textPrivateLink);
|
||||
|
@ -439,6 +444,17 @@ public class DialogShareableLink extends Composite {
|
|||
});
|
||||
}
|
||||
|
||||
public void showLoadingIcon(boolean show) {
|
||||
try {
|
||||
if(show)
|
||||
info_panel.add(loadingIcon);
|
||||
else
|
||||
info_panel.remove(loadingIcon);
|
||||
}catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Disable text box.
|
||||
*
|
||||
|
@ -467,7 +483,7 @@ public class DialogShareableLink extends Composite {
|
|||
*/
|
||||
private void showMessage(String msg, boolean visible) {
|
||||
actionAlert.setVisible(visible);
|
||||
actionAlert.setText(msg==null?"":msg);
|
||||
actionAlert.setText(msg == null ? "" : msg);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -44,12 +44,11 @@
|
|||
}
|
||||
</ui:style>
|
||||
<g:HTMLPanel>
|
||||
<g:HTMLPanel ui:field="info_panel"></g:HTMLPanel>
|
||||
<b:Form type="HORIZONTAL">
|
||||
<b:Alert ui:field="actionAlert" close="false" type="INFO"
|
||||
visible="false">
|
||||
<b:Icon type="ROTATE_RIGHT" spin="true" />
|
||||
</b:Alert>
|
||||
|
||||
<g:VerticalPanel ui:field="fieldPrivateSharing"
|
||||
addStyleNames="{style.margin-bottom-20}">
|
||||
<g:HorizontalPanel>
|
||||
|
|
|
@ -2,8 +2,8 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui.gallery;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.google.gwt.core.client.JavaScriptObject;
|
||||
import com.google.gwt.json.client.JSONArray;
|
||||
|
@ -80,11 +80,11 @@ public class ImagesGallery {
|
|||
// GALLERY THEME
|
||||
galleryTheme : {
|
||||
thumbnail : {
|
||||
borderRadius : '2px',
|
||||
background : '#fff',
|
||||
titleShadow : 'none',
|
||||
titleColor : '#696969',
|
||||
labelBackground : '#f3f3f3'
|
||||
borderRadius : '2px !important',
|
||||
background : '#ffffff !important',
|
||||
titleShadow : 'none !important',
|
||||
titleColor : '#696969 !important',
|
||||
labelBackground : '#f3f3f3 !important'
|
||||
},
|
||||
thumbnailIcon : {
|
||||
color : '#000',
|
||||
|
@ -140,6 +140,7 @@ public class ImagesGallery {
|
|||
JSONArray jsonArray = new JSONArray();
|
||||
int index = 0;
|
||||
for (UploadedImageDV image : listImages) {
|
||||
if(image.getListWsContent()!=null) {
|
||||
for (WorkspaceContentDV imageContent : image.getListWsContent()) {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("src", new JSONString(imageContent.getLink()));
|
||||
|
@ -157,6 +158,7 @@ public class ImagesGallery {
|
|||
jsonArray.set(index, json);
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
showGallery(jsonArray.getJavaScriptObject(), galleryDivId);
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.images;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.NewBrowserWindow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.Heading;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.images;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.uibinder.client.UiBinder;
|
||||
|
|
|
@ -0,0 +1,176 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.map;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
|
||||
import ol.Coordinate;
|
||||
import ol.OLFactory;
|
||||
|
||||
/**
|
||||
* The Class ExtentMapUtil.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 1, 2021
|
||||
*/
|
||||
public class ExtentMapUtil {
|
||||
|
||||
/**
|
||||
* The Enum PLACE.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 1, 2021
|
||||
*/
|
||||
public static enum PLACE {
|
||||
ITALY, WORLD
|
||||
}
|
||||
|
||||
final static Map<PLACE, Location> mapExtent = new HashMap<PLACE, Location>();
|
||||
|
||||
static {
|
||||
|
||||
// EPSG_4326 ITALY LOCATION
|
||||
Location ita = new Location(PLACE.ITALY.name(), GeoportalDataViewerConstants.ITALY_CENTER_LONG,
|
||||
GeoportalDataViewerConstants.ITALY_CENTER_LAT, MAP_PROJECTION.EPSG_4326,
|
||||
GeoportalDataViewerConstants.MAP_ITALY_FIT_ZOOM_ON);
|
||||
|
||||
// EPSG_4326 WORLD LOCATION
|
||||
Location earth = new Location(PLACE.WORLD.name(), 0,
|
||||
0, MAP_PROJECTION.EPSG_4326,
|
||||
2);
|
||||
|
||||
mapExtent.put(PLACE.ITALY, ita);
|
||||
mapExtent.put(PLACE.WORLD, earth);
|
||||
|
||||
}
|
||||
|
||||
public static Location getLocation(PLACE place) {
|
||||
return mapExtent.get(place);
|
||||
}
|
||||
|
||||
/**
|
||||
* The Class Location.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 1, 2021
|
||||
*/
|
||||
public static class Location {
|
||||
public String name;
|
||||
public double coordinateX;
|
||||
public double coordinateY;
|
||||
public MAP_PROJECTION projection;
|
||||
public int zoomLevel;
|
||||
|
||||
/**
|
||||
* Instantiates a new location.
|
||||
*
|
||||
* @param name the name
|
||||
* @param coordinateX the coordinate X
|
||||
* @param coordinateY the coordinate Y
|
||||
* @param projection the projection
|
||||
* @param zoomLevel the zoom level
|
||||
*/
|
||||
public Location(String name, double coordinateX, double coordinateY, MAP_PROJECTION projection, int zoomLevel) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.coordinateX = coordinateX;
|
||||
this.coordinateY = coordinateY;
|
||||
this.projection = projection;
|
||||
this.zoomLevel = zoomLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name.
|
||||
*
|
||||
* @return the name
|
||||
*/
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the coordinate X.
|
||||
*
|
||||
* @return the coordinate X
|
||||
*/
|
||||
public double getCoordinateX() {
|
||||
return coordinateX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the coordinate Y.
|
||||
*
|
||||
* @return the coordinate Y
|
||||
*/
|
||||
public double getCoordinateY() {
|
||||
return coordinateY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the projection.
|
||||
*
|
||||
* @return the projection
|
||||
*/
|
||||
public MAP_PROJECTION getProjection() {
|
||||
return projection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the zoom level.
|
||||
*
|
||||
* @return the zoom level
|
||||
*/
|
||||
public int getZoomLevel() {
|
||||
return zoomLevel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the coordinate.
|
||||
*
|
||||
* @param targetProjection the target projection
|
||||
* @return the coordinate
|
||||
*/
|
||||
public Coordinate getCoordinate(MAP_PROJECTION targetProjection) {
|
||||
|
||||
Coordinate coordinate = OLFactory.createCoordinate(coordinateX, coordinateY);
|
||||
if (projection.equals(targetProjection)) {
|
||||
return coordinate;
|
||||
} else {
|
||||
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(coordinate, projection.getName(),
|
||||
targetProjection.getName());
|
||||
return transformedCenterCoordinate;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("Location [name=");
|
||||
builder.append(name);
|
||||
builder.append(", coordinateX=");
|
||||
builder.append(coordinateX);
|
||||
builder.append(", coordinateY=");
|
||||
builder.append(coordinateY);
|
||||
builder.append(", projection=");
|
||||
builder.append(projection);
|
||||
builder.append(", zoomLevel=");
|
||||
builder.append(zoomLevel);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -1,10 +1,13 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.map;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.LightOpenLayerOSM;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.PLACE;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.core.client.Scheduler;
|
||||
|
@ -20,14 +23,14 @@ import com.google.gwt.user.client.ui.Widget;
|
|||
import ol.Coordinate;
|
||||
import ol.OLFactory;
|
||||
|
||||
/**
|
||||
/**
|
||||
* The Class MapView.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 11, 2020
|
||||
*/
|
||||
public class MapView extends Composite{
|
||||
public class MapView extends Composite {
|
||||
|
||||
private static MapViewUiBinder uiBinder = GWT.create(MapViewUiBinder.class);
|
||||
|
||||
|
@ -47,7 +50,9 @@ import ol.OLFactory;
|
|||
@UiField
|
||||
HorizontalPanel coordinatePanel;
|
||||
|
||||
private LightOpenLayerOSM olsm;
|
||||
private LightOpenLayerOSM lightOLSM;
|
||||
|
||||
private String theMapId = null;
|
||||
|
||||
/**
|
||||
* Instantiates a new map view.
|
||||
|
@ -57,7 +62,7 @@ import ol.OLFactory;
|
|||
*/
|
||||
public MapView(Coordinate centerTo, int zoom, String internalMapWidth, String internalMapHeight) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
String theMapId = "map"+Random.nextInt();
|
||||
theMapId = "map" + Random.nextInt();
|
||||
theMap.getElement().setId(theMapId);
|
||||
theMap.setWidth(internalMapWidth);
|
||||
theMap.setHeight(internalMapHeight);
|
||||
|
@ -66,15 +71,13 @@ import ol.OLFactory;
|
|||
|
||||
@Override
|
||||
public void execute() {
|
||||
olsm = new LightOpenLayerOSM(theMapId);
|
||||
//EPSG_4326_TO_ITALY
|
||||
Coordinate centerCoordinate = OLFactory.createCoordinate(GeoportalDataViewerConstants.ITALY_CENTER_LONG, GeoportalDataViewerConstants.ITALY_CENTER_LAT);
|
||||
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
|
||||
olsm.setCenter(transformedCenterCoordinate);
|
||||
olsm.setZoom(GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON);
|
||||
//setMapSize();
|
||||
lightOLSM = new LightOpenLayerOSM(theMapId);
|
||||
|
||||
// EPSG_3857 LOCATION TO ITALY
|
||||
Location italyLocation = ExtentMapUtil.getLocation(PLACE.ITALY);
|
||||
Coordinate transformedCenterCoordinate = italyLocation.getCoordinate(MAP_PROJECTION.EPSG_3857);
|
||||
lightOLSM.setCenter(transformedCenterCoordinate);
|
||||
lightOLSM.setZoom(GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -86,18 +89,22 @@ import ol.OLFactory;
|
|||
public void execute() {
|
||||
int width = theMap.getParent().getOffsetWidth();
|
||||
int height = theMap.getParent().getOffsetHeight();
|
||||
if(width==0)
|
||||
if (width == 0)
|
||||
width = 300;
|
||||
|
||||
if(height==0)
|
||||
if (height == 0)
|
||||
height = 300;
|
||||
|
||||
GWT.log("Internal Map w: "+width + ", h: "+height);
|
||||
theMap.setSize(width+"px", height+"px");
|
||||
GWT.log("Internal Map w: " + width + ", h: " + height);
|
||||
theMap.setSize(width + "px", height + "px");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public String getPanelMapElementId() {
|
||||
return theMapId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the marker.
|
||||
*
|
||||
|
@ -110,9 +117,9 @@ import ol.OLFactory;
|
|||
|
||||
@Override
|
||||
public void execute() {
|
||||
if(olsm!=null) {
|
||||
olsm.addPoint(coordinate, showCoordinateText, true);
|
||||
olsm.getMap().getView().setCenter(coordinate);
|
||||
if (lightOLSM != null) {
|
||||
lightOLSM.addPoint(coordinate, showCoordinateText, true);
|
||||
lightOLSM.getMap().getView().setCenter(coordinate);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@ -136,24 +143,24 @@ import ol.OLFactory;
|
|||
|
||||
if (bbox != null) {
|
||||
|
||||
|
||||
Coordinate lower = OLFactory.createCoordinate(bbox.getLowerLeftX(), bbox.getLowerLeftY());
|
||||
Coordinate lowerCoord = MapUtils.transformCoordiante(lower, GeoportalDataViewerConstants.EPSG_4326,
|
||||
GeoportalDataViewerConstants.EPSG_3857);
|
||||
Coordinate lowerCoord = MapUtils.transformCoordiante(lower, MAP_PROJECTION.EPSG_4326.getName(),
|
||||
MAP_PROJECTION.EPSG_3857.getName());
|
||||
|
||||
Coordinate upper = OLFactory.createCoordinate(bbox.getUpperRightX(), bbox.getUpperRightY());
|
||||
Coordinate upperCoord = MapUtils.transformCoordiante(upper, GeoportalDataViewerConstants.EPSG_4326,
|
||||
GeoportalDataViewerConstants.EPSG_3857);
|
||||
Coordinate upperCoord = MapUtils.transformCoordiante(upper, MAP_PROJECTION.EPSG_4326.getName(),
|
||||
MAP_PROJECTION.EPSG_3857.getName());
|
||||
|
||||
ew = new ExtentWrapped(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(), upperCoord.getY());
|
||||
theBBOX = new BoundsMap(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(), upperCoord.getY(), null);
|
||||
theBBOX = new BoundsMap(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(), upperCoord.getY(),
|
||||
null);
|
||||
}
|
||||
|
||||
olsm.addWMSLayer(mapServerHost, layerName, theBBOX);
|
||||
lightOLSM.addWMSLayer(mapServerHost, layerName, theBBOX);
|
||||
|
||||
if (ew != null) {
|
||||
|
||||
olsm.getMap().getView().fit(ew);
|
||||
lightOLSM.getMap().getView().fit(ew);
|
||||
|
||||
}
|
||||
|
||||
|
@ -161,4 +168,9 @@ import ol.OLFactory;
|
|||
});
|
||||
|
||||
}
|
||||
|
||||
public LightOpenLayerOSM getLightOLSM() {
|
||||
return lightOLSM;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.products;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
|
@ -31,8 +32,8 @@ public class RecordView extends Composite {
|
|||
public RecordView(RecordDV record) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
|
||||
customTable.addNextKeyValue("Created", record.getCreationTime());
|
||||
customTable.addNextKeyValue("Last Updated", record.getLastUpdateTime());
|
||||
customTable.addNextKeyValue("Created", GeoportalDataViewerConstants.DT_FORMAT.format(record.getCreationTime()));
|
||||
customTable.addNextKeyValue("Last Updated", GeoportalDataViewerConstants.DT_FORMAT.format(record.getLastUpdateTime()));
|
||||
customTable.addNextKeyValue("Updated by", record.getLastUpdateUser());
|
||||
recordDVPanel.add(customTable);
|
||||
}
|
||||
|
|
|
@ -4,18 +4,23 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RelazioneScavoDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerServiceAsync;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.dialogs.DialogShareableLink;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.gallery.ImagesGallery;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.PLACE;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.MapView;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.PageHeader;
|
||||
|
@ -35,12 +40,9 @@ import com.google.gwt.user.client.ui.HTMLPanel;
|
|||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
import ol.Coordinate;
|
||||
import ol.OLFactory;
|
||||
|
||||
public class ConcessioneView extends Composite {
|
||||
|
||||
|
||||
|
||||
private static ConcessioneViewUiBinder uiBinder = GWT.create(ConcessioneViewUiBinder.class);
|
||||
|
||||
interface ConcessioneViewUiBinder extends UiBinder<Widget, ConcessioneView> {
|
||||
|
@ -73,14 +75,11 @@ public class ConcessioneView extends Composite {
|
|||
@UiField
|
||||
HTMLPanel piantaFineScavoPanel;
|
||||
|
||||
// @UiField
|
||||
// HTMLPanel sharePanel;
|
||||
|
||||
@UiField
|
||||
Button shareButton;
|
||||
|
||||
@UiField
|
||||
Button viewButton;
|
||||
Button expandButton;
|
||||
|
||||
private ConcessioneDV concessioneDV;
|
||||
|
||||
|
@ -105,9 +104,10 @@ public class ConcessioneView extends Composite {
|
|||
this(item, concDV, true, true);
|
||||
}
|
||||
|
||||
public ConcessioneView(GeoNaItemRef item, ConcessioneDV concDV, boolean viewImageButtonVisible, boolean openImageButtonVisible) {
|
||||
public ConcessioneView(GeoNaItemRef item, ConcessioneDV concDV, boolean viewImageButtonVisible,
|
||||
boolean openImageButtonVisible) {
|
||||
this();
|
||||
GWT.log("Rendering "+concDV.getNome());
|
||||
GWT.log("Rendering " + concDV.getNome());
|
||||
this.concessioneDV = concDV;
|
||||
this.geonaItemRef = item;
|
||||
this.viewImageButtonVisible = viewImageButtonVisible;
|
||||
|
@ -117,23 +117,27 @@ public class ConcessioneView extends Composite {
|
|||
introduzione.setText(concessioneDV.getIntroduzione());
|
||||
|
||||
if (concessioneDV.getDataInizioProgetto() != null) {
|
||||
customTable.addNextKeyValue("Data Inizio Progetto", concessioneDV.getDataInizioProgetto());
|
||||
customTable.addNextKeyValue("Data Inizio Progetto",
|
||||
GeoportalDataViewerConstants.DT_FORMAT.format(concessioneDV.getDataInizioProgetto()));
|
||||
}
|
||||
|
||||
if (concessioneDV.getDataFineProgetto() != null) {
|
||||
customTable.addNextKeyValue("Data Fine Progetto", concessioneDV.getDataFineProgetto());
|
||||
customTable.addNextKeyValue("Data Fine Progetto",
|
||||
GeoportalDataViewerConstants.DT_FORMAT.format(concessioneDV.getDataFineProgetto()));
|
||||
}
|
||||
|
||||
if (concessioneDV.getParoleChiaveLibere() != null) {
|
||||
customTable.addNextKeyValues("Parole chiave Libere", concessioneDV.getParoleChiaveLibere(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Parole chiave Libere", concessioneDV.getParoleChiaveLibere(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getParoleChiaveICCD() != null) {
|
||||
customTable.addNextKeyValues("Parole chiave Cronologia", concessioneDV.getParoleChiaveICCD(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Parole chiave Cronologia", concessioneDV.getParoleChiaveICCD(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getAuthors() != null) {
|
||||
customTable.addNextKeyValues("Autori", concessioneDV.getAuthors(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Staff", concessioneDV.getAuthors(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getContributore() != null) {
|
||||
|
@ -149,15 +153,18 @@ public class ConcessioneView extends Composite {
|
|||
}
|
||||
|
||||
if (concessioneDV.getRisorseCorrelate() != null) {
|
||||
customTable.addNextKeyValues("Risorse Correlate", concessioneDV.getRisorseCorrelate(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Risorse Correlate", concessioneDV.getRisorseCorrelate(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getTitolari() != null) {
|
||||
customTable.addNextKeyValues("Titolari dei dati", concessioneDV.getTitolari(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Titolari dei dati", concessioneDV.getTitolari(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getSoggetto() != null) {
|
||||
customTable.addNextKeyValues("Soggetti", concessioneDV.getSoggetto(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Soggetti", concessioneDV.getSoggetto(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getEditore() != null) {
|
||||
|
@ -165,7 +172,8 @@ public class ConcessioneView extends Composite {
|
|||
}
|
||||
|
||||
if (concessioneDV.getFontiFinanziamento() != null) {
|
||||
customTable.addNextKeyValues("Fonti di Finanziamento", concessioneDV.getFontiFinanziamento(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Fonti di Finanziamento", concessioneDV.getFontiFinanziamento(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getLicenzaID() != null) {
|
||||
|
@ -173,11 +181,13 @@ public class ConcessioneView extends Composite {
|
|||
}
|
||||
|
||||
if (concessioneDV.getTitolariLicenza() != null) {
|
||||
customTable.addNextKeyValues("Titolare Licenza", concessioneDV.getTitolariLicenza(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Titolare Licenza", concessioneDV.getTitolariLicenza(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
if (concessioneDV.getTitolariCopyright() != null) {
|
||||
customTable.addNextKeyValues("Titolare Copyright", concessioneDV.getTitolariCopyright(),GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
customTable.addNextKeyValues("Titolare Copyright", concessioneDV.getTitolariCopyright(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
}
|
||||
|
||||
shareButton.setType(ButtonType.LINK);
|
||||
|
@ -193,23 +203,23 @@ public class ConcessioneView extends Composite {
|
|||
}
|
||||
});
|
||||
|
||||
viewButton.setType(ButtonType.LINK);
|
||||
viewButton.setIcon(IconType.EXPAND);
|
||||
viewButton.setTitle("View Details in New Dialog");
|
||||
expandButton.setType(ButtonType.LINK);
|
||||
expandButton.setIcon(IconType.EXPAND);
|
||||
expandButton.setTitle("Show this view in new Window");
|
||||
|
||||
viewButton.addClickHandler(new ClickHandler() {
|
||||
expandButton.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
ConcessioneView cv = new ConcessioneView(geonaItemRef, concessioneDV, false, openImageButtonVisible);
|
||||
cv.setViewDetailsButtonVisible(false);
|
||||
int width = Window.getClientWidth()*75/100;
|
||||
int height = Window.getClientHeight()*70/100;
|
||||
cv.setExpandViewButtonVisible(false);
|
||||
int width = Window.getClientWidth() * 75 / 100;
|
||||
int height = Window.getClientHeight() * 70 / 100;
|
||||
ModalWindow mw = new ModalWindow(concessioneDV.getNome(), width, height);
|
||||
mw.add(cv);
|
||||
mw.setCaller(ConcessioneView.this);
|
||||
//mw.setWidth(900);
|
||||
// mw.setWidth(900);
|
||||
mw.show();
|
||||
|
||||
}
|
||||
|
@ -240,104 +250,71 @@ public class ConcessioneView extends Composite {
|
|||
private void addPosizionamentoAreaIndagine() {
|
||||
|
||||
LayerConcessioneDV layer = concessioneDV.getPosizionamentoScavo();
|
||||
if(layer==null)
|
||||
if (layer == null)
|
||||
return;
|
||||
|
||||
if(layer.getPolicy()==null || layer.getPolicy().equalsIgnoreCase("OPEN")) {
|
||||
posizionamentoAreaIndaginePanel.setVisible(true);
|
||||
posizionamentoAreaIndaginePanel.add(new LayerConcessioneView(layer));
|
||||
}else {
|
||||
//I need to be authenticated to show the fields according to POLICY
|
||||
if(myLogin!=null) {
|
||||
posizionamentoAreaIndaginePanel.setVisible(true);
|
||||
posizionamentoAreaIndaginePanel.add(new LayerConcessioneView(layer));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void addPiantaFineScavo() {
|
||||
|
||||
List<LayerConcessioneDV> listLayersDV = concessioneDV.getPianteFineScavo();
|
||||
|
||||
if(listLayersDV==null)
|
||||
if (listLayersDV == null)
|
||||
return;
|
||||
|
||||
for (LayerConcessioneDV layer : listLayersDV) {
|
||||
|
||||
if(layer.getPolicy()==null || layer.getPolicy().equalsIgnoreCase("OPEN")) {
|
||||
for (LayerConcessioneDV layerDV : listLayersDV) {
|
||||
piantaFineScavoPanel.setVisible(true);
|
||||
piantaFineScavoPanel.add(new LayerConcessioneView(layer));
|
||||
}else {
|
||||
//I need to be authenticated to show the fields according to POLICY
|
||||
if(myLogin!=null) {
|
||||
piantaFineScavoPanel.setVisible(true);
|
||||
piantaFineScavoPanel.add(new LayerConcessioneView(layer));
|
||||
piantaFineScavoPanel.add(new LayerConcessioneView(layerDV));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void addRelazioneDiScavo() {
|
||||
|
||||
AbstractRelazioneScavoDV abstractRS = concessioneDV.getAbstractRelazioneScavo();
|
||||
|
||||
if(abstractRS==null)
|
||||
RelazioneScavoDV relazioneScavo = concessioneDV.getRelazioneScavo();
|
||||
if (abstractRS == null && relazioneScavo==null)
|
||||
return;
|
||||
|
||||
if(abstractRS.getPolicy()==null || abstractRS.getPolicy().equalsIgnoreCase("OPEN")) {
|
||||
relazioneScavoPanel.setVisible(true);
|
||||
relazioneScavoPanel.add(new RelazioneScavoView(abstractRS, concessioneDV.getRelazioneScavo(), false));
|
||||
}else {
|
||||
//I need to be authenticated to show the fields according to POLICY
|
||||
if(myLogin!=null) {
|
||||
relazioneScavoPanel.setVisible(true);
|
||||
relazioneScavoPanel.add(new RelazioneScavoView(abstractRS, concessioneDV.getRelazioneScavo(), true));
|
||||
}
|
||||
}
|
||||
relazioneScavoPanel.add(new RelazioneScavoView(abstractRS, concessioneDV.getRelazioneScavo()));
|
||||
}
|
||||
|
||||
private void addCentroidMap() {
|
||||
Coordinate centerCoordinate = OLFactory.createCoordinate(GeoportalDataViewerConstants.ITALY_CENTER_LONG, GeoportalDataViewerConstants.ITALY_CENTER_LAT);
|
||||
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
MapView mapView = new MapView(transformedCenterCoordinate, GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON, "70%", "300px");
|
||||
Location italyLocation = ExtentMapUtil.getLocation(PLACE.ITALY);
|
||||
Coordinate transformedCenterCoordinate = italyLocation.getCoordinate(MAP_PROJECTION.EPSG_3857);
|
||||
MapView mapView = new MapView(transformedCenterCoordinate,
|
||||
GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON, "70%", "300px");
|
||||
|
||||
if(concessioneDV!=null && concessioneDV.getCentroidLat()!=null && concessioneDV.getCentroidLong()!=null) {
|
||||
if (concessioneDV != null && concessioneDV.getCentroidLat() != null
|
||||
&& concessioneDV.getCentroidLong() != null) {
|
||||
Coordinate coord = new Coordinate(concessioneDV.getCentroidLong(), concessioneDV.getCentroidLat());
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(coord, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
//Coordinate invertedCoordinate = MapUtils.reverseCoordinate(coord);
|
||||
boolean authenticatedUser = myLogin!=null?true:false;
|
||||
Coordinate transfCoord = MapUtils.transformCoordiante(coord, MAP_PROJECTION.EPSG_4326.getName(),
|
||||
MAP_PROJECTION.EPSG_3857.getName());
|
||||
// Coordinate invertedCoordinate = MapUtils.reverseCoordinate(coord);
|
||||
boolean authenticatedUser = myLogin != null ? true : false;
|
||||
mapView.addMarker(transfCoord, authenticatedUser);
|
||||
mapViewPanel.add(mapView);
|
||||
}else if(concessioneDV!=null){
|
||||
GeoportalDataViewerConstants.printJs("I cannot add centroid as maker one or both coordinates are null. Lat: "+concessioneDV.getCentroidLong() +", Long:"+concessioneDV.getCentroidLat());
|
||||
} else if (concessioneDV != null) {
|
||||
GeoportalDataViewerConstants
|
||||
.printJs("I cannot add centroid as maker one or both coordinates are null. Lat: "
|
||||
+ concessioneDV.getCentroidLong() + ", Long:" + concessioneDV.getCentroidLat());
|
||||
}
|
||||
}
|
||||
|
||||
private void addUploadedImages() {
|
||||
GWT.log("Managing immagini: "+concessioneDV.getImmaginiRappresentative());
|
||||
GWT.log("Managing immagini: " + concessioneDV.getImmaginiRappresentative());
|
||||
List<UploadedImageDV> immagini = concessioneDV.getImmaginiRappresentative();
|
||||
if (immagini != null && immagini.size() > 0) {
|
||||
imagesPanel.setVisible(true);
|
||||
|
||||
List<UploadedImageDV> immaginiToShow = new ArrayList<UploadedImageDV>();
|
||||
//SHOWING ONLY OPEN IMAGES OR IF THE USER IS LOGGED
|
||||
for (UploadedImageDV uploadedImageDV : immagini) {
|
||||
|
||||
if(uploadedImageDV.getPolicy()==null || uploadedImageDV.getPolicy().equalsIgnoreCase("OPEN")) {
|
||||
immaginiToShow.add(uploadedImageDV);
|
||||
}else {
|
||||
if(myLogin!=null) {
|
||||
immaginiToShow.add(uploadedImageDV);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(immaginiToShow.size()>0) {
|
||||
if (immaginiToShow.size() > 0) {
|
||||
ImagesGallery gallery = new ImagesGallery(immaginiToShow);
|
||||
imagesPanel.add(gallery.getGalleryPanel());
|
||||
gallery.fillGallery();
|
||||
|
@ -349,8 +326,8 @@ public class ConcessioneView extends Composite {
|
|||
return concessioneDV;
|
||||
}
|
||||
|
||||
protected void setViewDetailsButtonVisible(boolean bool) {
|
||||
viewButton.setVisible(bool);
|
||||
protected void setExpandViewButtonVisible(boolean bool) {
|
||||
expandButton.setVisible(bool);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<g:HorizontalPanel
|
||||
addStyleNames="{style.margin-bottom-10}">
|
||||
<b:Button ui:field="shareButton">Share</b:Button>
|
||||
<b:Button ui:field="viewButton">View</b:Button>
|
||||
<b:Button ui:field="expandButton">Expand</b:Button>
|
||||
</g:HorizontalPanel>
|
||||
<b:Paragraph ui:field="introduzione"></b:Paragraph>
|
||||
<g:VerticalPanel addStyleNames="{style.width-100}">
|
||||
|
|
|
@ -1,20 +1,32 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.ui.products.concessioni;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.Location;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.ExtentMapUtil.PLACE;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.map.MapView;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.LayerConcessioneDV;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.DropdownButton;
|
||||
import com.github.gwtbootstrap.client.ui.NavLink;
|
||||
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
|
||||
import com.github.gwtbootstrap.client.ui.constants.IconType;
|
||||
import com.google.gwt.core.client.GWT;
|
||||
import com.google.gwt.dom.client.Style;
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
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.Window;
|
||||
import com.google.gwt.user.client.ui.Composite;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
import com.google.gwt.user.client.ui.HTMLPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
|
||||
import ol.Coordinate;
|
||||
import ol.OLFactory;
|
||||
|
||||
public class LayerConcessioneView extends Composite {
|
||||
|
||||
|
@ -31,9 +43,84 @@ public class LayerConcessioneView extends Composite {
|
|||
|
||||
private CustomFlexTable customTable = new CustomFlexTable();
|
||||
|
||||
private static enum IMAGE_EXPORT_AS {
|
||||
PNG, JPEG
|
||||
};
|
||||
|
||||
int downloadAttempt = 0;
|
||||
|
||||
public LayerConcessioneView(LayerConcessioneDV layerDV) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
GWT.log("Showing: "+layerDV);
|
||||
GWT.log("Showing: " + layerDV);
|
||||
|
||||
GWT.log("WMS LINK: " + layerDV.getWmsLink());
|
||||
if (layerDV.getLayerName() != null && layerDV.getWmsLink() != null) {
|
||||
|
||||
DropdownButton exportMapButton = new DropdownButton("Export Map as...");
|
||||
exportMapButton.setType(ButtonType.LINK);
|
||||
exportMapButton.setIcon(IconType.DOWNLOAD_ALT);
|
||||
exportMapButton.setTitle("Export the map view (OSM + layer) as an image...");
|
||||
Style exportStyle = exportMapButton.getElement().getStyle();
|
||||
//exportStyle.setWidth(100, Unit.PCT);
|
||||
exportStyle.setMarginLeft(70, Unit.PCT);
|
||||
|
||||
Location italyLocation = ExtentMapUtil.getLocation(PLACE.ITALY);
|
||||
Coordinate transformedCenterCoordinate = italyLocation.getCoordinate(MAP_PROJECTION.EPSG_3857);
|
||||
MapView mapView = new MapView(transformedCenterCoordinate,
|
||||
GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON, "70%", "300px");
|
||||
|
||||
mapViewPanel.add(mapView);
|
||||
mapViewPanel.add(exportMapButton);
|
||||
String mapServerHost = layerDV.getWmsLink().contains("?")
|
||||
? layerDV.getWmsLink().substring(0, layerDV.getWmsLink().indexOf("?"))
|
||||
: layerDV.getWmsLink();
|
||||
|
||||
mapView.addWMSLayer(mapServerHost, layerDV.getLayerName(), layerDV.getBbox());
|
||||
|
||||
String htmlLinkId = mapView.getPanelMapElementId() + "-image-download";
|
||||
|
||||
for (IMAGE_EXPORT_AS exportType : IMAGE_EXPORT_AS.values()) {
|
||||
NavLink navLink = new NavLink(exportType.name());
|
||||
String exportExt = exportType.name().toLowerCase();
|
||||
String filename = layerDV.getLayerName() + "." + exportExt;
|
||||
String mimeType = "image/" + exportExt;
|
||||
final HTML htmlLink = new HTML("<a id=\"" + htmlLinkId + "\" download=\"" + filename + "\"></a>");
|
||||
navLink.getElement().appendChild(htmlLink.getElement());
|
||||
navLink.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
// DOWNLOAD only the layer by Geoserver
|
||||
/*
|
||||
* Map<String, String> mapLayerURLs =
|
||||
* mapView.getLightOLSM().getLayerURLsProperty(); Collection<String> layerURLs =
|
||||
* mapLayerURLs.values(); ArrayList<String> layers = new
|
||||
* ArrayList<String>(layerURLs); exportPDF(layers.get(0)); String layerURL =
|
||||
* mapLayerURLs.get(layerDV.getLayerName()); GWT.log("layerDV name is: " +
|
||||
* layerDV.getLayerName()); if (layerURL != null) Window.open(layerURL,
|
||||
* "_blank", null);
|
||||
*/
|
||||
|
||||
downloadAttempt++;
|
||||
|
||||
if (downloadAttempt > 3) {
|
||||
Window.alert("LOOP");
|
||||
return;
|
||||
}
|
||||
|
||||
// DOWNLOAD the OSM + layer by canvas
|
||||
downloadMap(mapView.getLightOLSM().getMap(), mapView.getPanelMapElementId(), htmlLinkId,
|
||||
filename, mimeType);
|
||||
// mapExport(mapView.getLightOLSM().getMap(), mapView.getPanelMapElementId());
|
||||
}
|
||||
});
|
||||
|
||||
exportMapButton.add(navLink);
|
||||
|
||||
}
|
||||
//mapViewPanel.add(exportMapButton);
|
||||
}
|
||||
|
||||
customTable.addNextKeyValue("Abstract", layerDV.getAbstractSection());
|
||||
customTable.addNextKeyValue("Valutazione qualità", layerDV.getValutazioneQualita());
|
||||
|
@ -41,17 +128,138 @@ public class LayerConcessioneView extends Composite {
|
|||
customTable.addNextKeyValue("Scala acquisizione dati", layerDV.getScalaAcquisizione());
|
||||
customTable.addNextKeyValues("Autori", layerDV.getAuthors(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
layerConcessionePanel.add(customTable);
|
||||
|
||||
GWT.log("WMS LINK: "+layerDV.getWmsLink());
|
||||
if(layerDV.getLayerName()!=null && layerDV.getWmsLink()!=null) {
|
||||
Coordinate centerCoordinate = OLFactory.createCoordinate(GeoportalDataViewerConstants.ITALY_CENTER_LONG, GeoportalDataViewerConstants.ITALY_CENTER_LAT);
|
||||
Coordinate transformedCenterCoordinate = MapUtils.transformCoordiante(centerCoordinate, GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
|
||||
MapView mapView = new MapView(transformedCenterCoordinate, GeoportalDataViewerConstants.LIGHT_MAP_ITALY_FIT_ZOOM_ON, "70%", "300px");
|
||||
|
||||
mapViewPanel.add(mapView);
|
||||
String mapServerHost = layerDV.getWmsLink().contains("?")? layerDV.getWmsLink().substring(0,layerDV.getWmsLink().indexOf("?")):layerDV.getWmsLink();
|
||||
mapView.addWMSLayer(mapServerHost, layerDV.getLayerName(), layerDV.getBbox());
|
||||
}
|
||||
|
||||
public static native void exportPDF(String layerURL) /*-{
|
||||
var image = new Image(layerURL);
|
||||
|
||||
var doc = new $wnd.jspdf.jsPDF();
|
||||
doc.addImage(layerURL, 'PNG', 0, 0, image.width, image.height);
|
||||
doc.save("map.pdf")
|
||||
}-*/;
|
||||
|
||||
/**
|
||||
* Prints the.
|
||||
*
|
||||
* @param msg the msg
|
||||
*/
|
||||
public static native void downloadMap(ol.Map map, String mapPanelId, String linkId, String filename,
|
||||
String mimeType)/*-{
|
||||
console.log("map: " + map);
|
||||
|
||||
map.once('rendercomplete', function() {
|
||||
var mapCanvas = $doc.createElement('canvas');
|
||||
var size = map.getSize();
|
||||
mapCanvas.width = size[0];
|
||||
mapCanvas.height = size[1];
|
||||
var mapContext = mapCanvas.getContext('2d');
|
||||
var mapContainer = $doc.querySelector('#' + mapPanelId);
|
||||
//console.log("mapContainer:" +JSON.stringify(mapContainer, null, 4));
|
||||
Array.prototype.forEach.call(mapContainer
|
||||
.querySelectorAll('.ol-layer canvas'), function(canvas) {
|
||||
if (canvas.width > 0) {
|
||||
var opacity = canvas.parentNode.style.opacity;
|
||||
mapContext.globalAlpha = opacity === '' ? 1
|
||||
: Number(opacity);
|
||||
var transform = canvas.style.transform;
|
||||
// Get the transform parameters from the style's transform matrix
|
||||
var matrix = transform.match(/^matrix\(([^\(]*)\)$/)[1]
|
||||
.split(',').map(Number);
|
||||
// Apply the transform to the export map context
|
||||
CanvasRenderingContext2D.prototype.setTransform.apply(
|
||||
mapContext, matrix);
|
||||
mapContext.drawImage(canvas, 0, 0);
|
||||
}
|
||||
});
|
||||
if (navigator.msSaveBlob) {
|
||||
// link download attribute does not work on MS browsers
|
||||
navigator.msSaveBlob(mapCanvas.msToBlob(), filename);
|
||||
} else {
|
||||
var link = $doc.getElementById(linkId);
|
||||
link.href = mapCanvas.toDataURL(mimeType);
|
||||
link.click();
|
||||
}
|
||||
});
|
||||
map.renderSync();
|
||||
}-*/;
|
||||
|
||||
// public static native void mapExport(ol.Map map, String mapPanelId)/*-{
|
||||
// try {
|
||||
// var dims = {
|
||||
// a0 : [ 1189, 841 ],
|
||||
// a1 : [ 841, 594 ],
|
||||
// a2 : [ 594, 420 ],
|
||||
// a3 : [ 420, 297 ],
|
||||
// a4 : [ 297, 210 ],
|
||||
// a5 : [ 210, 148 ],
|
||||
// };
|
||||
//
|
||||
// var resolutions = {
|
||||
// 72 : 72,
|
||||
// 150 : 150,
|
||||
// 300 : 300,
|
||||
// };
|
||||
//
|
||||
// //var format = document.getElementById('format').value;
|
||||
// var format = 'a4';
|
||||
// //var resolution = document.getElementById('resolution').value;
|
||||
// var resolution = resolutions[150];
|
||||
// var dim = dims[format];
|
||||
// var width = Math.round((dim[0] * resolution) / 25.4);
|
||||
// var height = Math.round((dim[1] * resolution) / 25.4);
|
||||
// var size = map.getSize();
|
||||
// var viewResolution = map.getView().getResolution();
|
||||
//
|
||||
// map.once('rendercomplete', function() {
|
||||
// var mapCanvas = $doc.createElement('canvas');
|
||||
// mapCanvas.width = width;
|
||||
// mapCanvas.height = height;
|
||||
// var mapContext = mapCanvas.getContext('2d');
|
||||
// var selectId = "#" + mapPanelId;
|
||||
// console.log('selectId: ' + selectId);
|
||||
// var container = $doc.querySelector(selectId);
|
||||
// console.log('container: ' + container);
|
||||
// Array.prototype.forEach.call(container
|
||||
// .querySelectorAll('.ol-layer canvas'),
|
||||
// function(canvas) {
|
||||
// canvas.crossOrigin = "anonymous"; // This enables CORS
|
||||
// if (canvas.width > 0) {
|
||||
// var opacity = canvas.parentNode.style.opacity;
|
||||
// mapContext.globalAlpha = opacity === '' ? 1
|
||||
// : Number(opacity);
|
||||
// var transform = canvas.style.transform;
|
||||
// // Get the transform parameters from the style's transform matrix
|
||||
// var matrix = transform
|
||||
// .match(/^matrix\(([^\(]*)\)$/)[1]
|
||||
// .split(',').map(Number);
|
||||
// // Apply the transform to the export map context
|
||||
// CanvasRenderingContext2D.prototype.setTransform
|
||||
// .apply(mapContext, matrix);
|
||||
// mapContext.drawImage(canvas, 0, 0);
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// //window.open(mapCanvas.toDataURL(), '_blank');
|
||||
//
|
||||
// var pdf = new $wnd.jspdf.jsPDF('landscape', undefined, format);
|
||||
// pdf.addImage(mapCanvas.toDataURL('image/jpeg'), 'JPEG', 0, 0,
|
||||
// dim[0], dim[1]);
|
||||
// pdf.save('map.pdf');
|
||||
// // Reset original map size
|
||||
// map.setSize(size);
|
||||
// map.getView().setResolution(viewResolution);
|
||||
// exportButton.disabled = false;
|
||||
// document.body.style.cursor = 'auto';
|
||||
// });
|
||||
// //map.renderSync();
|
||||
// // Set print size
|
||||
// var printSize = [width, height];
|
||||
// map.setSize(printSize);
|
||||
// var scaling = Math.min(width / size[0], height / size[1]);
|
||||
// map.getView().setResolution(viewResolution / scaling);
|
||||
// } catch (error) {
|
||||
// window.alert(error);
|
||||
// }
|
||||
// }-*/;
|
||||
|
||||
}
|
||||
|
|
|
@ -2,11 +2,11 @@ package org.gcube.portlets.user.geoportaldataviewer.client.ui.products.concessio
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.util.CustomFlexTable;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RelazioneScavoDV;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
import com.github.gwtbootstrap.client.ui.Paragraph;
|
||||
|
@ -45,34 +45,35 @@ public class RelazioneScavoView extends Composite {
|
|||
|
||||
private CustomFlexTable customTable = new CustomFlexTable();
|
||||
|
||||
|
||||
public RelazioneScavoView(AbstractRelazioneScavoDV abstractDV, RelazioneScavoDV relazioneScavoDV, boolean autheticatedUser) {
|
||||
public RelazioneScavoView(AbstractRelazioneScavoDV abstractRelazioneDV, RelazioneScavoDV relazioneScavoDV) {
|
||||
initWidget(uiBinder.createAndBindUi(this));
|
||||
GWT.log("Showing abstract: "+abstractRelazioneDV);
|
||||
GWT.log("Showing relazioneScavoDV: "+relazioneScavoDV);
|
||||
|
||||
if(abstractDV.getAbstractSectionIta()!=null) {
|
||||
abstractParagraphIta.setText(abstractDV.getAbstractSectionIta());
|
||||
if(abstractDV.getAbstractSectionEng()!=null) {
|
||||
if (abstractRelazioneDV != null) {
|
||||
relazioneScavoPanel.setVisible(true);
|
||||
if (abstractRelazioneDV.getAbstractSectionIta() != null) {
|
||||
abstractParagraphIta.setText(abstractRelazioneDV.getAbstractSectionIta());
|
||||
if (abstractRelazioneDV.getAbstractSectionEng() != null) {
|
||||
linkAbstractLanguage.setVisible(true);
|
||||
abstractParagraphEng.setText(abstractDV.getAbstractSectionEng());
|
||||
abstractParagraphEng.setText(abstractRelazioneDV.getAbstractSectionEng());
|
||||
linkAbstractLanguage.setText(SHOW_ENGLISH_DESCR);
|
||||
}
|
||||
}
|
||||
|
||||
//customTable.addNextKeyValue("Created", relazioneScavoDV.getCreationTime());
|
||||
//customTable.addNextKeyValue("ID Licenza", relazioneScavoDV.getLicenseID());
|
||||
customTable.addNextKeyValues("Responsabili", relazioneScavoDV.getResponsabili(), GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
|
||||
showLinkToDownloadWsContent("Abstract Relazione", abstractRelazioneDV.getListWsContent());
|
||||
}
|
||||
|
||||
linkAbstractLanguage.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
GWT.log("Clicked");
|
||||
if(abstractParagraphIta.isVisible()) {
|
||||
if (abstractParagraphIta.isVisible()) {
|
||||
linkAbstractLanguage.setText(SHOW_ITALIAN_DESCR);
|
||||
abstractParagraphIta.setVisible(false);
|
||||
abstractParagraphEng.setVisible(true);
|
||||
}else {
|
||||
} else {
|
||||
linkAbstractLanguage.setText(SHOW_ENGLISH_DESCR);
|
||||
abstractParagraphIta.setVisible(true);
|
||||
abstractParagraphEng.setVisible(false);
|
||||
|
@ -81,26 +82,37 @@ public class RelazioneScavoView extends Composite {
|
|||
}
|
||||
});
|
||||
|
||||
//Showing the Download PFD relazione accoding to policy
|
||||
if(relazioneScavoDV.getPolicy()==null || relazioneScavoDV.getPolicy().equalsIgnoreCase("OPEN")) {
|
||||
if (relazioneScavoDV != null) {
|
||||
relazioneScavoPanel.setVisible(true);
|
||||
showLintToDownloadLastContent(relazioneScavoDV.getListWsContent());
|
||||
//DOWNLOAD RS
|
||||
}else {
|
||||
//I need to be authenticated to show the fields according to POLICY
|
||||
if(autheticatedUser) {
|
||||
showLintToDownloadLastContent(relazioneScavoDV.getListWsContent());
|
||||
}
|
||||
// customTable.addNextKeyValue("Created", relazioneScavoDV.getCreationTime());
|
||||
// customTable.addNextKeyValue("ID Licenza", relazioneScavoDV.getLicenseID());
|
||||
customTable.addNextKeyValues("Responsabili", relazioneScavoDV.getResponsabili(),
|
||||
GeoportalDataViewerConstants.NEW_LINE_BR);
|
||||
|
||||
showLinkToDownloadWsContent("Relazione", relazioneScavoDV.getListWsContent());
|
||||
}
|
||||
|
||||
relazioneScavoPanel.add(customTable);
|
||||
}
|
||||
|
||||
private void showLintToDownloadLastContent(List<WorkspaceContentDV> listContent) {
|
||||
if(listContent!=null) {
|
||||
int size = listContent.size();
|
||||
WorkspaceContentDV lastDoc = listContent.get(size-1);
|
||||
customTable.addNextKeyWidget("PDF Relazione", new HTML("<a href=\""+lastDoc.getLink()+"\">download</a>"));
|
||||
private void showLinkToDownloadWsContent(String title, List<WorkspaceContentDV> listContent) {
|
||||
if (listContent != null) {
|
||||
int i = 0;
|
||||
String fieldLabel = title;
|
||||
for (WorkspaceContentDV workspaceContentDV : listContent) {
|
||||
|
||||
if (i > 0) {
|
||||
fieldLabel = "";
|
||||
}
|
||||
|
||||
String downloadLabel = "download";
|
||||
if(workspaceContentDV.getName()!=null) {
|
||||
downloadLabel = workspaceContentDV.getName();
|
||||
}
|
||||
|
||||
customTable.addNextKeyWidget(fieldLabel, new HTML(
|
||||
"<a href=\"" + workspaceContentDV.getLink() + "\">" + downloadLabel + "</a>"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.client.util;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Class URLUtil.
|
||||
*
|
||||
|
@ -60,6 +61,35 @@ public class URLUtil {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the value of parameter.
|
||||
*
|
||||
* @param wmsParam the wms param
|
||||
* @param wmsLink the wms link
|
||||
* @param newValue the new value
|
||||
* @param addIfNotExists the add if not exists
|
||||
* @return the string
|
||||
*/
|
||||
public static String setValueOfParameter(String wmsParam, String wmsLink, String newValue, boolean addIfNotExists){
|
||||
String toLowerWmsLink = wmsLink.toLowerCase();
|
||||
String toLowerWmsParam = wmsParam.toLowerCase();
|
||||
|
||||
int index = toLowerWmsLink.indexOf(toLowerWmsParam+"="); //END WITH CHAR "=" TO BE SURE THAT IT IS A PARAMETER
|
||||
if(index > -1){
|
||||
int indexStartValue = index + toLowerWmsParam.length()+1; //add +1 for char '='
|
||||
int indexOfSeparator = toLowerWmsLink.indexOf("&", indexStartValue); //GET THE FIRST "&" STARTING FROM INDEX VALUE
|
||||
// logger.trace("indexOfSeparator index of "+wmsParam+ " is: "+indexOfSeparator);
|
||||
int indexEndValue = indexOfSeparator!=-1?indexOfSeparator:toLowerWmsLink.length();
|
||||
// logger.trace("end: "+indexEndValue);
|
||||
return wmsLink.substring(0, indexStartValue) + newValue +wmsLink.substring(indexEndValue, wmsLink.length());
|
||||
}else if (addIfNotExists){
|
||||
wmsLink+="&"+wmsParam+"="+newValue;
|
||||
}
|
||||
// logger.trace("return value: "+value);
|
||||
return wmsLink;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract value of parameter from URL.
|
||||
*
|
||||
|
|
|
@ -1,20 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server;
|
||||
|
||||
/**
|
||||
* The Class ApplicationProfileException.
|
||||
*
|
||||
* @author Francesco Mangiacrapa francesco.mangiacrapa{@literal @}isti.cnr.it
|
||||
* Sep 6, 2016
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class ApplicationProfileNotFoundException extends Exception {
|
||||
|
||||
/**
|
||||
* Instantiates a new application profile exception.
|
||||
*
|
||||
* @param message the message
|
||||
*/
|
||||
public ApplicationProfileNotFoundException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
|
@ -1,499 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.AccessPolicy;
|
||||
import org.gcube.application.geoportal.common.model.legacy.BBOX;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.LayerConcessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.OtherContent;
|
||||
import org.gcube.application.geoportal.common.model.legacy.PersistedContent;
|
||||
import org.gcube.application.geoportal.common.model.legacy.RelazioneScavo;
|
||||
import org.gcube.application.geoportal.common.model.legacy.UploadedImage;
|
||||
import org.gcube.application.geoportal.common.model.legacy.WorkspaceContent;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.OtherContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* The Class ConvertToGUIModel.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 2, 2020
|
||||
*/
|
||||
public class ConvertToDataViewModel {
|
||||
|
||||
private static final String NO_TIME = "T00:00";
|
||||
|
||||
/** The Constant LOG. */
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ConvertToDataViewModel.class);
|
||||
|
||||
public static final String DATE_FORMAT = "dd-MM-yyyy";
|
||||
|
||||
public static final String HOURS_MINUTES_SEPARATOR = ":";
|
||||
|
||||
public static final String TIME_FORMAT = "HH" + HOURS_MINUTES_SEPARATOR + "mm";
|
||||
|
||||
|
||||
/**
|
||||
* To concessione.
|
||||
*
|
||||
* @param concessione the concessione
|
||||
* @return the concessione
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static ConcessioneDV toConcessione(Concessione concessione) throws Exception {
|
||||
LOG.debug("called toConcessione for: "+concessione);
|
||||
|
||||
if (concessione == null)
|
||||
return null;
|
||||
|
||||
try {
|
||||
|
||||
ConcessioneDV theConcessione = new ConcessioneDV();
|
||||
theConcessione.setPolicy(toPolicy(concessione.getPolicy()));
|
||||
//theConcessione.setAuthors(concessione.getAuthors());
|
||||
theConcessione.setCentroidLat(concessione.getCentroidLat());
|
||||
theConcessione.setCentroidLong(concessione.getCentroidLong());
|
||||
theConcessione.setContributore(concessione.getContributore());
|
||||
theConcessione.setCreationTime(toDateFormatString(concessione.getCreationTime()));
|
||||
theConcessione.setCreationUser(toUser(concessione.getCreationUser()));
|
||||
theConcessione.setDataFineProgetto(toDateFormatString(concessione.getDataFineProgetto()));
|
||||
theConcessione.setDataInizioProgetto(toDateFormatString(concessione.getDataInizioProgetto()));
|
||||
theConcessione.setDescrizioneContenuto(concessione.getDescrizioneContenuto());
|
||||
theConcessione.setEditore(concessione.getEditore());
|
||||
theConcessione.setFontiFinanziamento(concessione.getFontiFinanziamento());
|
||||
theConcessione.setId(concessione.getId());
|
||||
theConcessione.setNome(concessione.getNome());
|
||||
|
||||
theConcessione.setIntroduzione(concessione.getIntroduzione());
|
||||
theConcessione.setLastUpdateTime(toDateFormatString(concessione.getLastUpdateTime()));
|
||||
theConcessione.setLastUpdateUser(toUser(concessione.getLastUpdateUser()));
|
||||
theConcessione.setLicenzaID(concessione.getLicenzaID());
|
||||
theConcessione.setNome(concessione.getNome());
|
||||
theConcessione.setParoleChiaveICCD(concessione.getParoleChiaveICCD());
|
||||
theConcessione.setParoleChiaveLibere(concessione.getParoleChiaveLibere());
|
||||
|
||||
theConcessione.setResponsabile(concessione.getResponsabile());
|
||||
theConcessione.setRisorseCorrelate(concessione.getRisorseCorrelate());
|
||||
theConcessione.setSoggetto(concessione.getSoggetto());
|
||||
theConcessione.setTitolariCopyright(concessione.getTitolareCopyright());
|
||||
theConcessione.setTitolariLicenza(concessione.getTitolareLicenza());
|
||||
theConcessione.setTitolari(concessione.getTitolari());
|
||||
theConcessione.setVersion(concessione.getVersion());
|
||||
|
||||
theConcessione.setRecordType(concessione.getRecordType().name());
|
||||
|
||||
theConcessione.setAbstractRelazioneScavo(toAbstractRelazioneScavo(concessione.getRelazioneScavo()));
|
||||
theConcessione.setRelazioneScavo(toRelazioneScavo(concessione.getRelazioneScavo()));
|
||||
|
||||
|
||||
if (concessione.getImmaginiRappresentative() != null) {
|
||||
List<UploadedImageDV> uploadedImagesDV = new ArrayList<UploadedImageDV>(
|
||||
concessione.getImmaginiRappresentative().size());
|
||||
for (UploadedImage ui : concessione.getImmaginiRappresentative()) {
|
||||
uploadedImagesDV.add(toUploadedImage(ui));
|
||||
}
|
||||
theConcessione.setImmaginiRappresentative(uploadedImagesDV);
|
||||
}
|
||||
|
||||
|
||||
if (concessione.getGenericContent() != null) {
|
||||
List<OtherContentDV> otherContentsDV = new ArrayList<OtherContentDV>(
|
||||
concessione.getGenericContent().size());
|
||||
for (OtherContent gc : concessione.getGenericContent()) {
|
||||
otherContentsDV.add(toOtherContentDV(gc));
|
||||
}
|
||||
theConcessione.setGenericContent(otherContentsDV);
|
||||
}
|
||||
|
||||
|
||||
if (concessione.getPianteFineScavo() != null) {
|
||||
List<LayerConcessioneDV> piantaScavoDV = new ArrayList<LayerConcessioneDV>(
|
||||
concessione.getPianteFineScavo().size());
|
||||
for (LayerConcessione lc : concessione.getPianteFineScavo()) {
|
||||
piantaScavoDV.add(toLayerConcessione(lc));
|
||||
}
|
||||
theConcessione.setPianteFineScavo(piantaScavoDV);
|
||||
}
|
||||
|
||||
if (concessione.getPosizionamentoScavo() != null) {
|
||||
LayerConcessioneDV thePosizScavo = toLayerConcessione(concessione.getPosizionamentoScavo());
|
||||
theConcessione.setPosizionamentoScavo(thePosizScavo);
|
||||
}
|
||||
|
||||
|
||||
LOG.debug("Returning concessione: " + theConcessione);
|
||||
return theConcessione;
|
||||
}catch (Exception e) {
|
||||
LOG.error("Error on converting concessione: "+concessione, e);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//TO AVOID SERIALIZATION ISSUE AGAINST GWT
|
||||
// public static List<String> toListString(List<String> orginList){
|
||||
// if(orginList==null)
|
||||
// return null;
|
||||
//
|
||||
// List<String> destList = new ArrayList<String>(orginList.size());
|
||||
// for (String orgValue : orginList) {
|
||||
// destList.add(orgValue);
|
||||
// }
|
||||
//
|
||||
// return destList;
|
||||
// }
|
||||
|
||||
/**
|
||||
* To user.
|
||||
*
|
||||
* @param username the username
|
||||
* @return the string
|
||||
*/
|
||||
public static String toUser(String username) {
|
||||
|
||||
if(username==null)
|
||||
return null;
|
||||
|
||||
return username;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* To policy.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return the string
|
||||
*/
|
||||
public static String toPolicy(AccessPolicy policy) {
|
||||
|
||||
if(policy==null)
|
||||
return null;
|
||||
|
||||
return policy.name();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* To date format string.
|
||||
*
|
||||
* @param dateTime the date time
|
||||
* @return the string
|
||||
*/
|
||||
public static String toDateFormatString(LocalDateTime dateTime) {
|
||||
|
||||
if(dateTime==null)
|
||||
return null;
|
||||
|
||||
String time = dateTime.toString();
|
||||
DateTimeFormatter formatter = null;
|
||||
try {
|
||||
if(!time.endsWith(NO_TIME)) {
|
||||
formatter = DateTimeFormatter.ofPattern(DATE_FORMAT + " " + TIME_FORMAT);
|
||||
}else {
|
||||
time = time.replace(NO_TIME, "");
|
||||
formatter = DateTimeFormatter.ofPattern(DATE_FORMAT);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Parsing error: ",e);
|
||||
}
|
||||
|
||||
try {
|
||||
if(formatter!=null)
|
||||
return dateTime.format(formatter);
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Date format error: ",e);
|
||||
}
|
||||
|
||||
return dateTime.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* To abstract relazione scavo.
|
||||
*
|
||||
* @param relazioneScavo the relazione scavo
|
||||
* @return the abstract relazione scavo DV
|
||||
*/
|
||||
public static AbstractRelazioneScavoDV toAbstractRelazioneScavo(RelazioneScavo relazioneScavo) {
|
||||
|
||||
if (relazioneScavo == null)
|
||||
return null;
|
||||
|
||||
AbstractRelazioneScavoDV theRelazioneDiScavo = new AbstractRelazioneScavoDV();
|
||||
theRelazioneDiScavo.setAbstractSectionIta(relazioneScavo.getAbstractIta());
|
||||
theRelazioneDiScavo.setAbstractSectionEng(relazioneScavo.getAbstractEng());
|
||||
|
||||
theRelazioneDiScavo.setCreationTime(toDateFormatString(relazioneScavo.getCreationTime()));
|
||||
theRelazioneDiScavo.setId(relazioneScavo.getId());
|
||||
theRelazioneDiScavo.setLicenseID(relazioneScavo.getLicenseID());
|
||||
theRelazioneDiScavo.setPolicy(toPolicy(relazioneScavo.getPolicy()));
|
||||
//theRelazioneDiScavo.setRecord(recordDV);
|
||||
theRelazioneDiScavo.setResponsabili(relazioneScavo.getResponsabili());
|
||||
theRelazioneDiScavo.setSoggetto(relazioneScavo.getSoggetto());
|
||||
theRelazioneDiScavo.setTitolo(relazioneScavo.getTitolo());
|
||||
|
||||
LOG.debug("Returning: " + theRelazioneDiScavo);
|
||||
return theRelazioneDiScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* To relazione scavo.
|
||||
*
|
||||
* @param relazioneScavo the relazione scavo
|
||||
* @return the relazione scavo data view
|
||||
*/
|
||||
public static RelazioneScavoDV toRelazioneScavo(RelazioneScavo relazioneScavo) {
|
||||
|
||||
if (relazioneScavo == null)
|
||||
return null;
|
||||
|
||||
RelazioneScavoDV theRelazioneDiScavo = new RelazioneScavoDV();
|
||||
theRelazioneDiScavo.setCreationTime(toDateFormatString(relazioneScavo.getCreationTime()));
|
||||
theRelazioneDiScavo.setId(relazioneScavo.getId());
|
||||
theRelazioneDiScavo.setLicenseID(relazioneScavo.getLicenseID());
|
||||
theRelazioneDiScavo.setPolicy(toPolicy(relazioneScavo.getPolicy()));
|
||||
//theRelazioneDiScavo.setRecord(recordDV);
|
||||
theRelazioneDiScavo.setResponsabili(relazioneScavo.getResponsabili());
|
||||
theRelazioneDiScavo.setSoggetto(relazioneScavo.getSoggetto());
|
||||
theRelazioneDiScavo.setTitolo(relazioneScavo.getTitolo());
|
||||
|
||||
List<PersistedContent> actContent = relazioneScavo.getActualContent();
|
||||
if(actContent!=null && actContent.size()>0) {
|
||||
List<WorkspaceContentDV> listWsContent = new ArrayList<WorkspaceContentDV>();
|
||||
|
||||
for (PersistedContent content : actContent) {
|
||||
if(content!=null && content instanceof WorkspaceContent) {
|
||||
listWsContent.add(toWorkspaceContent((WorkspaceContent)content));
|
||||
}
|
||||
}
|
||||
theRelazioneDiScavo.setListWsContent(listWsContent);
|
||||
}
|
||||
|
||||
LOG.debug("Returning: " + theRelazioneDiScavo);
|
||||
return theRelazioneDiScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* To uploaded image.
|
||||
*
|
||||
* @param uploadedImage the uploaded image
|
||||
* @return the uploaded image data-view
|
||||
*/
|
||||
public static UploadedImageDV toUploadedImage(UploadedImage uploadedImage) {
|
||||
|
||||
if (uploadedImage == null)
|
||||
return null;
|
||||
|
||||
UploadedImageDV theUploadedImageDV = new UploadedImageDV();
|
||||
theUploadedImageDV.setCreationTime(toDateFormatString(uploadedImage.getCreationTime()));
|
||||
theUploadedImageDV.setDidascalia(uploadedImage.getDidascalia());
|
||||
theUploadedImageDV.setFormat(uploadedImage.getFormat());
|
||||
theUploadedImageDV.setId(uploadedImage.getId());
|
||||
theUploadedImageDV.setLicenseID(uploadedImage.getLicenseID());
|
||||
theUploadedImageDV.setPolicy(toPolicy(uploadedImage.getPolicy()));
|
||||
//theUploadedImageDV.setRecord(recordDV);
|
||||
theUploadedImageDV.setResponsabili(uploadedImage.getResponsabili());
|
||||
theUploadedImageDV.setSoggetto(uploadedImage.getSoggetto());
|
||||
theUploadedImageDV.setTitolo(uploadedImage.getTitolo());
|
||||
|
||||
List<PersistedContent> actContent = uploadedImage.getActualContent();
|
||||
if(actContent!=null && actContent.size()>0) {
|
||||
List<WorkspaceContentDV> listWsContent = new ArrayList<WorkspaceContentDV>();
|
||||
|
||||
for (PersistedContent content : actContent) {
|
||||
if(content!=null && content instanceof WorkspaceContent) {
|
||||
listWsContent.add(toWorkspaceContent((WorkspaceContent)content));
|
||||
}
|
||||
}
|
||||
theUploadedImageDV.setListWsContent(listWsContent);
|
||||
}
|
||||
|
||||
LOG.debug("Returning: " + theUploadedImageDV);
|
||||
return theUploadedImageDV;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* To workspace content.
|
||||
*
|
||||
* @param wContent the w content
|
||||
* @return the workspace content DV
|
||||
*/
|
||||
public static WorkspaceContentDV toWorkspaceContent(WorkspaceContent wContent){
|
||||
if (wContent == null)
|
||||
return null;
|
||||
|
||||
WorkspaceContentDV theWSDV = new WorkspaceContentDV();
|
||||
theWSDV.setLink(wContent.getLink());
|
||||
theWSDV.setMimetype(wContent.getMimetype());
|
||||
theWSDV.setStorageID(wContent.getStorageID());
|
||||
theWSDV.setId(wContent.getId());
|
||||
|
||||
return theWSDV;
|
||||
}
|
||||
|
||||
/**
|
||||
* To layer concessione.
|
||||
*
|
||||
* @param layerConcessione the layer concessione
|
||||
* @return the layer concessione data view
|
||||
*/
|
||||
public static LayerConcessioneDV toLayerConcessione(LayerConcessione layerConcessione) {
|
||||
|
||||
if (layerConcessione == null)
|
||||
return null;
|
||||
|
||||
LOG.debug("Converting: "+layerConcessione);
|
||||
LayerConcessioneDV theLayerConessione = new LayerConcessioneDV();
|
||||
theLayerConessione.setAbstractSection(layerConcessione.getAbstractSection());
|
||||
|
||||
String wmsLink = layerConcessione.getWmsLink();
|
||||
String layerName = null;
|
||||
BoundsMap bounds = null;
|
||||
|
||||
//reading layer name from wmsLink
|
||||
//string bbox
|
||||
if(wmsLink!=null) {
|
||||
layerName = URLParserUtil.extractValueOfParameterFromURL("layers", wmsLink);
|
||||
String bbox = URLParserUtil.extractValueOfParameterFromURL("bbox", wmsLink);
|
||||
String wmsVersion = URLParserUtil.extractValueOfParameterFromURL("version", wmsLink);
|
||||
bounds = toBoundMap(wmsVersion, bbox, ",");
|
||||
LOG.debug("Built bounds from wmsLInk: "+bounds);
|
||||
}
|
||||
|
||||
if(layerName!=null)
|
||||
theLayerConessione.setLayerName(layerName);
|
||||
else
|
||||
theLayerConessione.setLayerName(layerConcessione.getLayerName());
|
||||
|
||||
|
||||
theLayerConessione.setWmsLink(wmsLink);
|
||||
theLayerConessione.setLayerID(layerConcessione.getLayerID());
|
||||
theLayerConessione.setLayerUUID(layerConcessione.getLayerUUID());
|
||||
theLayerConessione.setAuthors(layerConcessione.getAuthors());
|
||||
|
||||
if(bounds==null)
|
||||
bounds = toBoundMap(layerConcessione.getBbox());
|
||||
|
||||
theLayerConessione.setBbox(bounds);
|
||||
theLayerConessione.setCreationTime(toDateFormatString(layerConcessione.getCreationTime()));
|
||||
theLayerConessione.setId(layerConcessione.getId());
|
||||
theLayerConessione.setLicenseID(layerConcessione.getLicenseID());
|
||||
theLayerConessione.setMetodoRaccoltaDati(layerConcessione.getMetodoRaccoltaDati());
|
||||
theLayerConessione.setPolicy(toPolicy(layerConcessione.getPolicy()));
|
||||
//theLayerConessione.setRecord(recordDV);
|
||||
theLayerConessione.setScalaAcquisizione(layerConcessione.getScalaAcquisizione());
|
||||
theLayerConessione.setSubTopic(layerConcessione.getSubTopic());
|
||||
theLayerConessione.setTitolo(layerConcessione.getTitolo());
|
||||
theLayerConessione.setTopicCategory(layerConcessione.getTopicCategory());
|
||||
theLayerConessione.setValutazioneQualita(layerConcessione.getValutazioneQualita());
|
||||
|
||||
|
||||
LOG.debug("Returning: " + theLayerConessione);
|
||||
return theLayerConessione;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* To other content DV.
|
||||
*
|
||||
* @param otherContent the other content
|
||||
* @return the other content DV
|
||||
*/
|
||||
public static OtherContentDV toOtherContentDV(OtherContent otherContent) {
|
||||
|
||||
if (otherContent == null)
|
||||
return null;
|
||||
|
||||
OtherContentDV theOtherContent = new OtherContentDV();
|
||||
theOtherContent.setCreationTime(toDateFormatString(otherContent.getCreationTime()));
|
||||
theOtherContent.setId(otherContent.getId());
|
||||
theOtherContent.setLicenseID(otherContent.getLicenseID());
|
||||
theOtherContent.setPolicy(toPolicy(otherContent.getPolicy()));
|
||||
//theOtherContent.setRecord(recordDV);
|
||||
theOtherContent.setTitolo(otherContent.getTitolo());
|
||||
|
||||
return theOtherContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* To bound map.
|
||||
*
|
||||
* @param bbox the bbox
|
||||
* @return the bounds map
|
||||
*/
|
||||
public static BoundsMap toBoundMap(BBOX bbox) {
|
||||
|
||||
if (bbox == null)
|
||||
return null;
|
||||
|
||||
return new BoundsMap(bbox.getMinLong(), bbox.getMinLat(), bbox.getMaxLong(), bbox.getMaxLat(), null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* To bound map.
|
||||
*
|
||||
* @param wmsVersion the wms version
|
||||
* @param bbox the bbox
|
||||
* @param separator the separator
|
||||
* @return the bounds map
|
||||
*/
|
||||
public static BoundsMap toBoundMap(String wmsVersion, String bbox, String separator) {
|
||||
|
||||
if (bbox == null)
|
||||
return null;
|
||||
|
||||
if(wmsVersion==null)
|
||||
return null;
|
||||
|
||||
if(separator==null)
|
||||
separator = ",";
|
||||
|
||||
try {
|
||||
|
||||
String[] bboxArr = bbox.split(separator);
|
||||
|
||||
if(wmsVersion.startsWith("1.3")) {
|
||||
//is 1.3.x
|
||||
return new BoundsMap(toDouble(bboxArr[1]), toDouble(bboxArr[0]), toDouble(bboxArr[3]), toDouble(bboxArr[2]), wmsVersion);
|
||||
}else {
|
||||
//should be 1.1.X
|
||||
return new BoundsMap(toDouble(bboxArr[0]), toDouble(bboxArr[1]), toDouble(bboxArr[2]), toDouble(bboxArr[3]), wmsVersion);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Error on creating Bounds for wmsVersion "+wmsVersion+" and bbox "+bbox+" : ",e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* To double.
|
||||
*
|
||||
* @param value the value
|
||||
* @return the double
|
||||
*/
|
||||
public static Double toDouble(String value) {
|
||||
try {
|
||||
return Double.parseDouble(value);
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Error on parsing "+value+" as double: ",e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,33 +1,45 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.geoportal.client.legacy.ConcessioniManager;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.LayerConcessione;
|
||||
import org.gcube.application.geoportal.common.model.legacy.UploadedImage;
|
||||
import org.gcube.application.geoportalcommon.ConvertToDataViewModel;
|
||||
import org.gcube.application.geoportalcommon.GeoNaDataViewerProfileReader;
|
||||
import org.gcube.application.geoportalcommon.GeoportalCommon;
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile;
|
||||
import org.gcube.application.geoportalcommon.shared.GeoNaItemRef;
|
||||
import org.gcube.application.geoportalcommon.shared.LayerItem;
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.shared.products.BaseConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.RelazioneScavoDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerService;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.ConcessioniMongoServiceIdentityProxy;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accesspolicy.GeoNACheckAccessPolicy;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureRow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.GeoInformationForWMSRequest;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.Styles;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.ZAxis;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.urlshortener.UrlShortener;
|
||||
import org.gcube.spatial.data.geoutility.GeoNcWMSMetadataUtility;
|
||||
import org.gcube.spatial.data.geoutility.bean.LayerStyles;
|
||||
import org.gcube.spatial.data.geoutility.bean.LayerZAxis;
|
||||
|
@ -46,13 +58,14 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
|||
* Nov 12, 2020
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet implements
|
||||
GeoportalDataViewerService {
|
||||
public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet implements GeoportalDataViewerService {
|
||||
|
||||
public static final String PRODUCT_ID = "product_id";
|
||||
/** The Constant LOG. */
|
||||
private static final Logger LOG = LoggerFactory.getLogger(GeoportalDataViewerServiceImpl.class);
|
||||
|
||||
private static final String CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE = "MAP_IMAGE_PREVIEW_FOR_CONCESSIONE";
|
||||
|
||||
/**
|
||||
* Parses the wms request.
|
||||
*
|
||||
|
@ -66,7 +79,6 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
return loadGeoInfoForWmsRequest(wmsRequest, layerName);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Load geo info for wms request.
|
||||
*
|
||||
|
@ -75,7 +87,8 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
* @return the geo information for WMS request
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static GeoInformationForWMSRequest loadGeoInfoForWmsRequest(String wmsLink, String layerName) throws Exception{
|
||||
public static GeoInformationForWMSRequest loadGeoInfoForWmsRequest(String wmsLink, String layerName)
|
||||
throws Exception {
|
||||
try {
|
||||
WMSUrlValidator validator = new WMSUrlValidator(wmsLink, layerName);
|
||||
String wmsServiceHost = validator.getWmsServiceHost();
|
||||
|
@ -86,27 +99,30 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
//
|
||||
HashMap<String, String> mapWmsNotStandard = new HashMap<String, String>();
|
||||
|
||||
if(validator.getMapWmsNoStandardParams()!=null){
|
||||
if (validator.getMapWmsNoStandardParams() != null) {
|
||||
mapWmsNotStandard.putAll(validator.getMapWmsNoStandardParams());
|
||||
}
|
||||
//
|
||||
GeoNcWMSMetadataUtility geoGS = new GeoNcWMSMetadataUtility(validWMSRequest, 4000);
|
||||
//STYLES
|
||||
// STYLES
|
||||
LayerStyles layerStyle = geoGS.loadStyles();
|
||||
Map<String,String> mapNcWmsStyles = layerStyle.getMapNcWmsStyles()==null?new HashMap<String, String>(1):layerStyle.getMapNcWmsStyles();
|
||||
Map<String, String> mapNcWmsStyles = layerStyle.getMapNcWmsStyles() == null ? new HashMap<String, String>(1)
|
||||
: layerStyle.getMapNcWmsStyles();
|
||||
mapWmsNotStandard.putAll(mapNcWmsStyles);
|
||||
//MAP STYLES INTO GWT-SERIALIZABLE OBJECT
|
||||
// MAP STYLES INTO GWT-SERIALIZABLE OBJECT
|
||||
Styles styles = new Styles(layerStyle.getGeoStyles(), layerStyle.getMapNcWmsStyles(), layerStyle.isNcWms());
|
||||
//ZAxis
|
||||
// ZAxis
|
||||
LayerZAxis layerZAxis = geoGS.loadZAxis();
|
||||
//MAP ZAXIS INTO GWT-SERIALIZABLE OBJECT
|
||||
ZAxis zAxis = layerZAxis!=null?new ZAxis(layerZAxis.getUnits(), layerZAxis.isPositive(), layerZAxis.getValues()):null;
|
||||
// MAP ZAXIS INTO GWT-SERIALIZABLE OBJECT
|
||||
ZAxis zAxis = layerZAxis != null
|
||||
? new ZAxis(layerZAxis.getUnits(), layerZAxis.isPositive(), layerZAxis.getValues())
|
||||
: null;
|
||||
|
||||
return new GeoInformationForWMSRequest(wmsServiceHost, validWMSRequest, layerName, versionWms, crs, mapWmsNotStandard, styles, styles.isNcWms(), zAxis);
|
||||
}
|
||||
catch (Exception e) {
|
||||
String msg = "An error occurred during wms request validation for layer: "+layerName;
|
||||
LOG.error(msg,e);
|
||||
return new GeoInformationForWMSRequest(wmsServiceHost, validWMSRequest, layerName, versionWms, crs,
|
||||
mapWmsNotStandard, styles, styles.isNcWms(), zAxis);
|
||||
} catch (Exception e) {
|
||||
String msg = "An error occurred during wms request validation for layer: " + layerName;
|
||||
LOG.error(msg, e);
|
||||
throw new Exception(msg);
|
||||
}
|
||||
}
|
||||
|
@ -122,93 +138,138 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
* @return the data result
|
||||
*/
|
||||
@Override
|
||||
public List<GeoNaSpatialQueryResult> getDataResult(List<LayerObject> layerObjects, String mapSrsName, BoundsMap selectBBOX,
|
||||
int maxWFSFeature, double zoomLevel) {
|
||||
public List<GeoNaSpatialQueryResult> getDataResult(List<LayerObject> layerObjects, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel) {
|
||||
LOG.info("getDataResult called");
|
||||
|
||||
List<GeoNaSpatialQueryResult> listDAO = new ArrayList<GeoNaSpatialQueryResult>(layerObjects.size());
|
||||
|
||||
for (LayerObject layerObject : layerObjects) {
|
||||
GeoNaSpatialQueryResult geoDAO = new GeoNaSpatialQueryResult();
|
||||
List<FeatureRow> features = FeatureParser.getWFSFeatures(layerObject.getLayerItem(), mapSrsName, selectBBOX, maxWFSFeature);
|
||||
LOG.debug("For layer name: "+layerObject.getLayerItem().getName() +" got features: "+features);
|
||||
List<FeatureRow> features = FeatureParser.getWFSFeatures(layerObject.getLayerItem(), mapSrsName, selectBBOX,
|
||||
maxWFSFeature);
|
||||
LOG.debug("For layer name: " + layerObject.getLayerItem().getName() + " got features: " + features);
|
||||
geoDAO.setFeatures(features);
|
||||
|
||||
// Getting the concessioneId from WFS features
|
||||
for (FeatureRow fRow : features) {
|
||||
if(fRow.getMapProperties()!=null) {
|
||||
if (fRow.getMapProperties() != null) {
|
||||
List<String> concessioneIds = fRow.getMapProperties().get("product_id");
|
||||
if(concessioneIds!=null && concessioneIds.size()>0) {
|
||||
if (concessioneIds != null && concessioneIds.size() > 0) {
|
||||
String cId = concessioneIds.get(0);
|
||||
try {
|
||||
long theConcessionID = Long.parseLong(cId);
|
||||
List<UploadedImageDV> listUI = getUploadedImagesForId("Concessione", theConcessionID, 1);
|
||||
Map<Long, List<UploadedImageDV>> mapImages = new LinkedHashMap<Long, List<UploadedImageDV>>();
|
||||
mapImages.put(theConcessionID, listUI);
|
||||
UploadedImageDV uplImg = sessionloadPreviewImageForConcessione(this.getThreadLocalRequest(),
|
||||
"Concessione", cId);
|
||||
// List<UploadedImageDV> listUI = getUploadedImagesForId("Concessione", cId, 1);
|
||||
Map<String, List<UploadedImageDV>> mapImages = new LinkedHashMap<String, List<UploadedImageDV>>();
|
||||
mapImages.put(cId, Arrays.asList(uplImg));
|
||||
// mapImages.put(cId, listUI);
|
||||
geoDAO.setMapImages(mapImages);
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Error on loading uploaded images for concessione: "+cId, e);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error on loading uploaded images for concessione: " + cId, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
geoDAO.setSourceLayerObject(layerObject);
|
||||
LOG.info("For layer name: "+layerObject.getLayerItem().getName() +" got "+features.size()+" feature/s");
|
||||
LOG.info("For layer name: " + layerObject.getLayerItem().getName() + " got " + features.size()
|
||||
+ " feature/s");
|
||||
listDAO.add(geoDAO);
|
||||
}
|
||||
LOG.info("returning "+listDAO+" geona data objects");
|
||||
LOG.info("returning " + listDAO + " geona data objects");
|
||||
return listDAO;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the uploaded images for id.
|
||||
*
|
||||
* @param id the id
|
||||
* @param itemType the item type
|
||||
* @param itemId the item id. It is the mongoId
|
||||
* @param maxImages the max images
|
||||
* @return the uploaded images for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public List<UploadedImageDV> getUploadedImagesForId(String itemType, Long id, int maxImages) throws Exception{
|
||||
LOG.info("getUploadedImagesForId [id: "+id+", itemType: "+itemType+"] called");
|
||||
public List<UploadedImageDV> getUploadedImagesForId(String itemType, String itemId, Integer maxImages)
|
||||
throws Exception {
|
||||
LOG.info("getUploadedImagesForId [itemId: " + itemId + ", itemType: " + itemType + "] called");
|
||||
|
||||
if(itemType==null)
|
||||
return getUploadedImagesForId(this.getThreadLocalRequest(), itemType, itemId, maxImages);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layers for id.
|
||||
*
|
||||
* @param itemType the item type
|
||||
* @param itemId the item id
|
||||
* @return the layers for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public List<LayerConcessioneDV> getLayersForId(String itemType, String itemId) throws Exception {
|
||||
LOG.info("getLayersForId [itemId: " + itemId + ", itemType: " + itemType + "] called");
|
||||
|
||||
if (itemType == null)
|
||||
throw new Exception("Invalid parameter. The itemType is null");
|
||||
|
||||
if(id==null)
|
||||
throw new Exception("Invalid parameter. The Id is null");
|
||||
if (itemId == null)
|
||||
throw new Exception("Invalid parameter. The itemId is null");
|
||||
|
||||
List<UploadedImageDV> listUI = null;
|
||||
List<LayerConcessioneDV> listLayers = null;
|
||||
|
||||
try {
|
||||
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
String userName = null;
|
||||
try {
|
||||
userName = SessionUtil.getCurrentUser(this.getThreadLocalRequest()).getUsername();
|
||||
} catch (Exception e) {
|
||||
LOG.info("User not found in session, the userName for cecking policy will be null");
|
||||
}
|
||||
|
||||
if(itemType.equalsIgnoreCase("concessione")) {
|
||||
if (itemType.equalsIgnoreCase("concessione")) {
|
||||
|
||||
LOG.info("Trying to get concessione for id "+id);
|
||||
ConcessioniManager concessioniManager = new ConcessioniManager();
|
||||
Concessione concessione = concessioniManager.getById(id+"");
|
||||
LOG.info("Trying to get concessione for id " + itemId);
|
||||
ConcessioniMongoServiceIdentityProxy cms = new ConcessioniMongoServiceIdentityProxy(
|
||||
this.getThreadLocalRequest());
|
||||
Concessione concessione = cms.getItemById(itemId);
|
||||
|
||||
BaseConcessioneDV baseConcessione = ConvertToDataViewModel.toBaseConcessione(concessione);
|
||||
if (concessione != null) {
|
||||
LOG.info("For id "+id+", got concessione "+concessione.getNome() +" from service");
|
||||
List<UploadedImage> images = concessione.getImmaginiRappresentative();
|
||||
LOG.info("For id " + itemId + ", got concessione " + concessione.getNome() + " from service");
|
||||
listLayers = new ArrayList<LayerConcessioneDV>();
|
||||
if (concessione.getPianteFineScavo() != null) {
|
||||
|
||||
if (images != null) {
|
||||
listUI = new ArrayList<UploadedImageDV>();
|
||||
int max = maxImages < images.size() ? maxImages : images.size();
|
||||
for (int i = 0; i < max; i++) {
|
||||
UploadedImageDV ui = ConvertToDataViewModel.toUploadedImage(images.get(i));
|
||||
listUI.add(ui);
|
||||
for (LayerConcessione lc : concessione.getPianteFineScavo()) {
|
||||
if (GeoNACheckAccessPolicy.isAccessible(lc.getPolicy().name(), userName)) {
|
||||
listLayers.add(ConvertToDataViewModel.toLayerConcessione(lc, baseConcessione));
|
||||
}
|
||||
LOG.info("For id "+id+", got "+listUI.size() +" image/s");
|
||||
}
|
||||
}else
|
||||
throw new Exception("Concessione with id: "+id +" not available");
|
||||
}
|
||||
|
||||
return listUI;
|
||||
LayerConcessione lcPosizionamento = concessione.getPosizionamentoScavo();
|
||||
|
||||
}catch (Exception e) {
|
||||
String erroMsg = UploadedImage.class.getSimpleName() +" not available for "+Concessione.class.getSimpleName() +" with id "+id;
|
||||
LOG.error(erroMsg,e);
|
||||
if (lcPosizionamento != null) {
|
||||
|
||||
if (GeoNACheckAccessPolicy.isAccessible(lcPosizionamento.getPolicy().name(), userName)) {
|
||||
|
||||
LayerConcessioneDV thePosizScavo = ConvertToDataViewModel
|
||||
.toLayerConcessione(lcPosizionamento, baseConcessione);
|
||||
if (thePosizScavo != null)
|
||||
listLayers.add(thePosizScavo);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else
|
||||
throw new Exception("Concessione with id '" + itemId + "' not available");
|
||||
}
|
||||
LOG.info("For id " + itemId + ", returning " + listLayers.size() + " layer/s");
|
||||
return listLayers;
|
||||
|
||||
} catch (Exception e) {
|
||||
String erroMsg = "Layers are not available for " + Concessione.class.getSimpleName() + " with id " + itemId;
|
||||
LOG.error(erroMsg, e);
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
|
||||
|
@ -217,43 +278,114 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
/**
|
||||
* Gets the concessione for id.
|
||||
*
|
||||
* @param id the id
|
||||
* @param mongoId the mongo id
|
||||
* @return the concessione for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public ConcessioneDV getConcessioneForId(Long id) throws Exception{
|
||||
LOG.info("getConcessioneForId "+id+ " called");
|
||||
public ConcessioneDV getConcessioneForId(String mongoId) throws Exception {
|
||||
LOG.info("getConcessioneForId " + mongoId + " called");
|
||||
|
||||
ConcessioneDV concessionDV = null;
|
||||
|
||||
if(id==null)
|
||||
throw new Exception("Invalid parameter. The Id is null");
|
||||
if (mongoId == null)
|
||||
throw new Exception("Invalid parameter. The itemId is null");
|
||||
|
||||
try {
|
||||
LOG.info("Trying to get record for id "+id);
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
Concessione concessione = new ConcessioniManager().getById(id+"");
|
||||
LOG.info("Got concessione for id "+id);
|
||||
if(concessione !=null) {
|
||||
LOG.info("Trying to get record for id " + mongoId);
|
||||
|
||||
ConcessioniMongoServiceIdentityProxy cms = new ConcessioniMongoServiceIdentityProxy(
|
||||
this.getThreadLocalRequest());
|
||||
Concessione concessione = cms.getItemById(mongoId);
|
||||
|
||||
LOG.info("Got concessione for mongoId: " + mongoId);
|
||||
if (concessione != null) {
|
||||
concessionDV = ConvertToDataViewModel.toConcessione(concessione);
|
||||
|
||||
String userName = null;
|
||||
try {
|
||||
userName = SessionUtil.getCurrentUser(this.getThreadLocalRequest()).getUsername();
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.info("User not found in session, so going to apply the acess policies");
|
||||
}
|
||||
|
||||
if(concessionDV==null)
|
||||
throw new Exception("Concessione with id: "+id +" not available");
|
||||
// TODO THIS IS A WORKAROUND WAITING FOR ADOPTING OF USER ROLES. AT THE MOMENT,
|
||||
// A USER AUTHENTICATED CAN ACCESS EVERYTHING
|
||||
// I CAN CHECK THE ACCCESS POLICIES IF AND ONLY IF THE USER IS NOT LOGGED IN.
|
||||
if (userName == null) {
|
||||
|
||||
LOG.debug("For id "+id+" returning "+ConcessioneDV.class.getSimpleName()+": "+concessionDV);
|
||||
// CHECKING ACCESS POLICY
|
||||
LOG.info("Applying access policies for concessione " + mongoId + " returned by service");
|
||||
LayerConcessioneDV layerPosizionamento = concessionDV.getPosizionamentoScavo();
|
||||
if (layerPosizionamento != null) {
|
||||
if (!GeoNACheckAccessPolicy.isAccessible(layerPosizionamento.getPolicy(), userName)) {
|
||||
concessionDV.setPosizionamentoScavo(null);
|
||||
} else {
|
||||
LOG.info("Posizionamento di Scavo is not accessible by current user");
|
||||
}
|
||||
}
|
||||
|
||||
List<LayerConcessioneDV> listLayersDV = concessionDV.getPianteFineScavo();
|
||||
if (listLayersDV != null) {
|
||||
List<LayerConcessioneDV> accessibleListLayersDV = new ArrayList<LayerConcessioneDV>();
|
||||
for (LayerConcessioneDV layerDV : listLayersDV) {
|
||||
if (GeoNACheckAccessPolicy.isAccessible(layerDV.getPolicy(), userName)) {
|
||||
accessibleListLayersDV.add(layerDV);
|
||||
}
|
||||
}
|
||||
concessionDV.setPianteFineScavo(accessibleListLayersDV);
|
||||
}
|
||||
|
||||
AbstractRelazioneScavoDV abstractRS = concessionDV.getAbstractRelazioneScavo();
|
||||
if (abstractRS != null) {
|
||||
if (!GeoNACheckAccessPolicy.isAccessible(abstractRS.getPolicy(), userName)) {
|
||||
concessionDV.setAbstractRelazioneScavo(null);
|
||||
}
|
||||
}
|
||||
|
||||
RelazioneScavoDV relazioneScavo = concessionDV.getRelazioneScavo();
|
||||
if (relazioneScavo != null) {
|
||||
if (!GeoNACheckAccessPolicy.isAccessible(relazioneScavo.getPolicy(), userName)) {
|
||||
concessionDV.setRelazioneScavo(null);
|
||||
}
|
||||
}
|
||||
|
||||
List<UploadedImageDV> immagini = concessionDV.getImmaginiRappresentative();
|
||||
if (immagini != null && immagini.size() > 0) {
|
||||
List<UploadedImageDV> accessibleListImages = new ArrayList<UploadedImageDV>();
|
||||
|
||||
// SHOWING ACESSIBLE IMAGES
|
||||
for (UploadedImageDV uploadedImageDV : immagini) {
|
||||
|
||||
if (GeoNACheckAccessPolicy.isAccessible(uploadedImageDV.getPolicy(), userName)) {
|
||||
accessibleListImages.add(uploadedImageDV);
|
||||
}
|
||||
|
||||
}
|
||||
concessionDV.setImmaginiRappresentative(accessibleListImages);
|
||||
|
||||
}
|
||||
|
||||
// END CHECKING ACCESS POLICY
|
||||
LOG.info("Access policies applied");
|
||||
}
|
||||
}
|
||||
|
||||
if (concessionDV == null)
|
||||
throw new Exception("Concessione with id '" + mongoId + "' not available");
|
||||
|
||||
LOG.debug("For id " + mongoId + " returning " + ConcessioneDV.class.getSimpleName() + ": " + concessionDV);
|
||||
return concessionDV;
|
||||
|
||||
}catch (Exception e) {
|
||||
String erroMsg = Concessione.class.getSimpleName() +" with id "+id+" not available";
|
||||
LOG.error(erroMsg,e);
|
||||
} catch (Exception e) {
|
||||
String erroMsg = Concessione.class.getSimpleName() + " with id '" + mongoId + "' not available";
|
||||
LOG.error(erroMsg, e);
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the parameters from URL.
|
||||
*
|
||||
|
@ -280,20 +412,19 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the my login.
|
||||
*
|
||||
* @return the my login
|
||||
*/
|
||||
@Override
|
||||
public String getMyLogin(){
|
||||
public String getMyLogin() {
|
||||
try {
|
||||
GCubeUser user = SessionUtil.getCurrentUser(this.getThreadLocalRequest());
|
||||
if(user==null)
|
||||
if (user == null)
|
||||
return null;
|
||||
return user.getUsername();
|
||||
}catch (Exception e) {
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error on getting the login, am I out of portal? Returning null");
|
||||
return null;
|
||||
}
|
||||
|
@ -307,32 +438,32 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public GeoInformationForWMSRequest getLayerForType(String layerType) throws Exception{
|
||||
LOG.info("Called getLayerForType for:"+layerType);
|
||||
public GeoInformationForWMSRequest getLayerForType(String layerType) throws Exception {
|
||||
LOG.info("Called getLayerForType for:" + layerType);
|
||||
|
||||
if(layerType==null || layerType.isEmpty())
|
||||
if (layerType == null || layerType.isEmpty())
|
||||
throw new Exception("The input parameter layerType is null or empty");
|
||||
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
GeoNaDataViewerProfileReader gdvp = new GeoNaDataViewerProfileReader("geoportal-data-viewer-app");
|
||||
GeoNaDataViewerProfile profile = gdvp.readProfileFromInfrastrucure();
|
||||
LOG.info("Read profile: "+profile);
|
||||
LOG.info("Read profile: " + profile);
|
||||
|
||||
String lowerLayerType = layerType.toLowerCase();
|
||||
LOG.info("Reading map layers for type:"+lowerLayerType);
|
||||
LOG.info("Reading map layers for type:" + lowerLayerType);
|
||||
LayerItem layer = profile.getMapLayers().get(lowerLayerType);
|
||||
|
||||
if(layer==null || layer.getWmsLink()==null)
|
||||
throw new Exception("The layer type "+lowerLayerType+" has not been found. Please check your input parameter");
|
||||
|
||||
if(layer.getWmsLink()==null)
|
||||
throw new Exception("The layer type "+lowerLayerType+" has not a WMS Link associated. Please check your input parameter");
|
||||
if (layer == null || layer.getWmsLink() == null)
|
||||
throw new Exception(
|
||||
"The layer type " + lowerLayerType + " has not been found. Please check your input parameter");
|
||||
|
||||
if (layer.getWmsLink() == null)
|
||||
throw new Exception("The layer type " + lowerLayerType
|
||||
+ " has not a WMS Link associated. Please check your input parameter");
|
||||
|
||||
return parseWmsRequest(layer.getWmsLink(), null);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the geo na data view profile.
|
||||
*
|
||||
|
@ -340,17 +471,23 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public GeoNaDataViewerProfile getGeoNaDataViewProfile() throws Exception{
|
||||
public GeoNaDataViewerProfile getGeoNaDataViewProfile() throws Exception {
|
||||
LOG.info("getGeoNaDataViewProfile called");
|
||||
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
GeoportalCommon gc = new GeoportalCommon();
|
||||
org.gcube.application.geoportalcommon.shared.GeoNaDataViewerProfile profile = gc.getGeoNaDataViewProfile(null);
|
||||
LOG.info("Returning profile: "+profile);
|
||||
LOG.info("Returning profile: " + profile);
|
||||
return profile;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the public links for.
|
||||
*
|
||||
* @param item the item
|
||||
* @return the public links for
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
@Override
|
||||
public GeoNaItemRef getPublicLinksFor(GeoNaItemRef item) throws Exception {
|
||||
LOG.info("getPublicLinksFor called for: " + item);
|
||||
|
@ -360,24 +497,168 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
if (item == null)
|
||||
throw new Exception("Bad request, the item is null");
|
||||
|
||||
if(item.getItemId()==null)
|
||||
if (item.getItemId() == null)
|
||||
throw new Exception("Bad request, the item id is null");
|
||||
|
||||
if(item.getItemType()==null)
|
||||
if (item.getItemType() == null)
|
||||
throw new Exception("Bad request, the item type is null");
|
||||
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
GeoportalCommon gc = new GeoportalCommon();
|
||||
return gc.getPublicLinksFor(item);
|
||||
return gc.getPublicLinksFor(item, true);
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("Error on getPublicLinksFor for: " + item, e);
|
||||
throw new Exception("Share link not available for this item. Try later or contact the support. Error: "+e.getMessage());
|
||||
throw new Exception("Share link not available for this item. Try later or contact the support. Error: "
|
||||
+ e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is session expired.
|
||||
*
|
||||
* @return true, if is session expired
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public boolean isSessionExpired() throws Exception {
|
||||
return SessionUtil.isSessionExpired(this.getThreadLocalRequest());
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the WFS features.
|
||||
*
|
||||
* @param layerObjects the layer objects
|
||||
* @param mapSrsName the map srs name
|
||||
* @param selectBBOX the select BBOX
|
||||
* @param maxWFSFeature the max WFS feature
|
||||
* @param zoomLevel the zoom level
|
||||
* @return the WFS features
|
||||
*/
|
||||
@Override
|
||||
public List<GeoNaSpatialQueryResult> getWFSFeatures(List<LayerObject> layerObjects, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel) {
|
||||
LOG.info("getWFSFeatures called");
|
||||
|
||||
List<GeoNaSpatialQueryResult> listDAO = new ArrayList<GeoNaSpatialQueryResult>(layerObjects.size());
|
||||
|
||||
for (LayerObject layerObject : layerObjects) {
|
||||
GeoNaSpatialQueryResult geoDAO = new GeoNaSpatialQueryResult();
|
||||
List<FeatureRow> features = FeatureParser.getWFSFeatures(layerObject.getLayerItem(), mapSrsName, selectBBOX,
|
||||
maxWFSFeature);
|
||||
LOG.debug("For layer name: " + layerObject.getLayerItem().getName() + " got features: " + features);
|
||||
geoDAO.setFeatures(features);
|
||||
geoDAO.setSourceLayerObject(layerObject);
|
||||
LOG.info("For layer name: " + layerObject.getLayerItem().getName() + " got " + features.size()
|
||||
+ " feature/s");
|
||||
listDAO.add(geoDAO);
|
||||
}
|
||||
LOG.info("returning " + listDAO + " geona data objects");
|
||||
return listDAO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the preview image for concessione from http session. It is the first
|
||||
* image retrieved from mongoService for mongoConcessioneId. Caching it into
|
||||
* session
|
||||
*
|
||||
* @param httpServletRequest the http servlet request
|
||||
* @param itemType the item type
|
||||
* @param mongoConcessioneId the mongo concessione id
|
||||
* @return the preview image for concessione
|
||||
*/
|
||||
private UploadedImageDV sessionloadPreviewImageForConcessione(HttpServletRequest httpServletRequest,
|
||||
String itemType, String mongoConcessioneId) {
|
||||
LOG.info("sessionloadPreviewImageForConcessione [mongoConcessioneId: " + mongoConcessioneId + ", itemType: "
|
||||
+ itemType + "] called");
|
||||
|
||||
HttpSession session = httpServletRequest.getSession();
|
||||
Map<String, List<UploadedImageDV>> mapImages = null;
|
||||
List<UploadedImageDV> lUI = null;
|
||||
try {
|
||||
mapImages = (LinkedHashMap) session.getAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE);
|
||||
|
||||
if (mapImages == null) {
|
||||
mapImages = new LinkedHashMap<String, List<UploadedImageDV>>();
|
||||
}
|
||||
|
||||
List<UploadedImageDV> imagePreviewForConcessione = mapImages.get(mongoConcessioneId);
|
||||
|
||||
if (imagePreviewForConcessione == null || imagePreviewForConcessione.size() == 0) {
|
||||
LOG.info("Into " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session the mongoConcessioneId "
|
||||
+ mongoConcessioneId + " is empty or null, loading from service and filling it");
|
||||
lUI = getUploadedImagesForId(httpServletRequest, itemType, mongoConcessioneId, 1);
|
||||
mapImages.put(mongoConcessioneId, lUI);
|
||||
}
|
||||
|
||||
lUI = mapImages.get(mongoConcessioneId);
|
||||
LOG.info("From " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session read image: " + lUI);
|
||||
session.setAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE, mapImages);
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error occurred when instancing the " + UrlShortener.class.getSimpleName(), e);
|
||||
}
|
||||
|
||||
if (lUI == null || lUI.isEmpty())
|
||||
return null;
|
||||
|
||||
return lUI.get(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the uploaded images for id.
|
||||
*
|
||||
* @param httpServletRequest the http servlet request
|
||||
* @param itemType the item type
|
||||
* @param itemId the item id
|
||||
* @param maxImages the max images
|
||||
* @return the uploaded images for id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
private List<UploadedImageDV> getUploadedImagesForId(HttpServletRequest httpServletRequest, String itemType,
|
||||
String itemId, Integer maxImages) throws Exception {
|
||||
LOG.info("getUploadedImagesForId [itemId: " + itemId + ", itemType: " + itemType + "] called");
|
||||
|
||||
if (itemType == null)
|
||||
throw new Exception("Invalid parameter. The itemType is null");
|
||||
|
||||
if (itemId == null)
|
||||
throw new Exception("Invalid parameter. The itemId is null");
|
||||
|
||||
List<UploadedImageDV> listUI = null;
|
||||
|
||||
try {
|
||||
|
||||
if (itemType.equalsIgnoreCase("concessione")) {
|
||||
|
||||
LOG.info("Trying to get concessione for id " + itemId);
|
||||
ConcessioniMongoServiceIdentityProxy cms = new ConcessioniMongoServiceIdentityProxy(httpServletRequest);
|
||||
Concessione concessione = cms.getItemById(itemId);
|
||||
if (concessione != null) {
|
||||
LOG.info("For id " + itemId + ", got concessione " + concessione.getNome() + " from service");
|
||||
List<UploadedImage> images = concessione.getImmaginiRappresentative();
|
||||
|
||||
if (images != null) {
|
||||
listUI = new ArrayList<UploadedImageDV>();
|
||||
int max = maxImages < images.size() ? maxImages : images.size();
|
||||
for (int i = 0; i < max; i++) {
|
||||
UploadedImageDV ui = ConvertToDataViewModel.toUploadedImage(images.get(i));
|
||||
listUI.add(ui);
|
||||
}
|
||||
LOG.info("For id " + itemId + ", got " + listUI.size() + " image/s");
|
||||
}
|
||||
} else
|
||||
throw new Exception("Concessione with id '" + itemId + "' not available");
|
||||
}
|
||||
|
||||
return listUI;
|
||||
|
||||
} catch (Exception e) {
|
||||
String erroMsg = UploadedImage.class.getSimpleName() + " not available for "
|
||||
+ Concessione.class.getSimpleName() + " with id " + itemId;
|
||||
LOG.error(erroMsg, e);
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,124 +0,0 @@
|
|||
//package org.gcube.portlets.user.geoportaldataviewer.server;
|
||||
//
|
||||
//import java.time.LocalDateTime;
|
||||
//import java.util.ArrayList;
|
||||
//import java.util.Arrays;
|
||||
//import java.util.List;
|
||||
//
|
||||
//import org.gcube.application.geoportal.common.model.legacy.AccessPolicy;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.BBOX;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.LayerConcessione;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.PersistedContent;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.RelazioneScavo;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.UploadedImage;
|
||||
//import org.gcube.application.geoportal.common.model.legacy.WorkspaceContent;
|
||||
//
|
||||
//
|
||||
//public class TestModel {
|
||||
//
|
||||
// public static Concessione prepareEmptyConcessione() {
|
||||
// Concessione concessione = new Concessione();
|
||||
//
|
||||
// // Generic fields
|
||||
//
|
||||
// // Concessione fields
|
||||
//
|
||||
// concessione.setNome("Italia, forse");
|
||||
// concessione.setIntroduzione("This is my project");
|
||||
// concessione.setDescrizioneContenuto("It contains this and that");
|
||||
//
|
||||
// concessione.setAuthors(Arrays.asList(new String[] { "Some one", "Some, oneelse" }));
|
||||
//
|
||||
// concessione.setContributore("Contrib 1");
|
||||
// concessione.setTitolari(Arrays.asList(new String[] { "Some one", "Some, oneelse" }));
|
||||
// concessione.setResponsabile("Someone");
|
||||
// concessione.setEditore("Editore");
|
||||
//
|
||||
// concessione.setFontiFinanziamento(Arrays.asList(new String[] { "Big pharma", "Pentagon" }));
|
||||
//
|
||||
// concessione.setSoggetto(Arrays.asList(new String[] { "Research Excavation", "Archeology" }));
|
||||
//
|
||||
// concessione
|
||||
// .setRisorseCorrelate(Arrays.asList(new String[] { "https://google.com", "https://www.repubblica.it" }));
|
||||
//
|
||||
// concessione.setDataInizioProgetto(LocalDateTime.now());
|
||||
// concessione.setDataFineProgetto(LocalDateTime.now());
|
||||
//
|
||||
// concessione.setLicenzaID("CC-BY");
|
||||
//
|
||||
// concessione.setTitolareLicenza("Qualcun altro");
|
||||
// concessione.setTitolareCopyright("Chiedilo in giro");
|
||||
//
|
||||
// concessione.setParoleChiaveLibere(Arrays.asList(new String[] { "Robba", "Stuff" }));
|
||||
// concessione.setParoleChiaveICCD(Arrays.asList(new String[] { "vattelapesca", "somthing something" }));
|
||||
//
|
||||
// concessione.setLastUpdateTime(LocalDateTime.now());
|
||||
// concessione.setCreationTime(LocalDateTime.now());
|
||||
// concessione.setLastUpdateUser("fake user");
|
||||
//
|
||||
// concessione.setCentroidLat(43.0); // N-S
|
||||
// concessione.setCentroidLong(9.0); // E-W
|
||||
//
|
||||
// return concessione;
|
||||
// }
|
||||
//
|
||||
// public static Concessione prepareConcessione() {
|
||||
//
|
||||
// Concessione concessione = prepareEmptyConcessione();
|
||||
//
|
||||
// // Attachments
|
||||
//
|
||||
// // Relazione scavo
|
||||
// RelazioneScavo relScavo = new RelazioneScavo();
|
||||
//
|
||||
// relScavo.setAbstractSection("simple abstract section");
|
||||
// relScavo.setResponsabili(concessione.getAuthors());
|
||||
//
|
||||
// concessione.setRelazioneScavo(relScavo);
|
||||
// // Immagini rappresentative
|
||||
// ArrayList<UploadedImage> imgs = new ArrayList<>();
|
||||
// for (int i = 0; i < 5; i++) {
|
||||
// UploadedImage img = new UploadedImage();
|
||||
// img.setTitolo("My image number " + i);
|
||||
// img.setDidascalia("You can see my image number " + i);
|
||||
// img.setFormat("TIFF");
|
||||
// img.setCreationTime(LocalDateTime.now());
|
||||
// img.setResponsabili(concessione.getAuthors());
|
||||
// List<PersistedContent> actualContentList = new ArrayList<PersistedContent>(1);
|
||||
// WorkspaceContent ws = new WorkspaceContent();
|
||||
// ws.setLink("https://data.dev.d4science.org/shub/E_azRkaVhqTFExMzZvTG9pY0hwSFJNV2tVTHBEMGEycFVsQitvWjZvb29WZjkwRU84b1hXQnp0QjRuSGhrODJqQg==");
|
||||
// actualContentList.add(ws);
|
||||
// img.setActualContent(actualContentList);
|
||||
// imgs.add(img);
|
||||
// }
|
||||
// concessione.setImmaginiRappresentative(imgs);
|
||||
// // Posizionamento
|
||||
// LayerConcessione posizionamento = new LayerConcessione();
|
||||
// posizionamento.setValutazioneQualita("Secondo me si");
|
||||
// posizionamento.setMetodoRaccoltaDati("Fattobbene");
|
||||
// posizionamento.setScalaAcquisizione("1:10000");
|
||||
// posizionamento.setAuthors(concessione.getAuthors());
|
||||
// concessione.setPosizionamentoScavo(posizionamento);
|
||||
//
|
||||
// // Piante fine scavo
|
||||
// ArrayList<LayerConcessione> piante = new ArrayList<LayerConcessione>();
|
||||
// for (int i = 0; i < 4; i++) {
|
||||
// LayerConcessione pianta = new LayerConcessione();
|
||||
// pianta.setValutazioneQualita("Secondo me si");
|
||||
// pianta.setMetodoRaccoltaDati("Fattobbene");
|
||||
// pianta.setScalaAcquisizione("1:10000");
|
||||
// pianta.setAuthors(concessione.getAuthors());
|
||||
// pianta.setPolicy(AccessPolicy.RESTRICTED);
|
||||
// pianta.setLayerName("gna_conc_12:pos");
|
||||
// pianta.setWmsLink(
|
||||
// "https://geoserver1.dev.d4science.org/geoserver/gna_conc_12/wms?service=WMS&version=1.1.0&request=GetMap&layers=gna_conc_12:pos&styles=&bbox=8.62091913167495,40.62975046683799,8.621178639172953,40.630257904721645&width=392&height=768&srs=EPSG:4326&format=application/openlayers#toggle");
|
||||
//
|
||||
// pianta.setBbox(new BBOX(40.630257904721645,8.621178639172953,40.62975046683799,8.62091913167495));
|
||||
// piante.add(pianta);
|
||||
// }
|
||||
// concessione.setPianteFineScavo(piante);
|
||||
//
|
||||
// return concessione;
|
||||
// }
|
||||
//}
|
|
@ -15,21 +15,18 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.Coordinate;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureGeometry;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureRow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.PointsPath;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
||||
/**
|
||||
* The Class FeatureParser.
|
||||
*
|
||||
|
@ -50,17 +47,15 @@ public class FeatureParser {
|
|||
* @param maxWFSFeature the max WFS feature
|
||||
* @return the WFS features
|
||||
*/
|
||||
public static List<FeatureRow> getWFSFeatures(LayerItem layerItem, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature) {
|
||||
public static List<FeatureRow> getWFSFeatures(LayerItem layerItem, String mapSrsName, BoundsMap selectBBOX,
|
||||
int maxWFSFeature) {
|
||||
|
||||
if(maxWFSFeature<0) {
|
||||
if (maxWFSFeature < 0) {
|
||||
maxWFSFeature = GeoportalDataViewerConstants.MAX_WFS_FEATURES;
|
||||
}
|
||||
return getWFSFeatureProperties(layerItem, mapSrsName, selectBBOX, maxWFSFeature);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Gets the WFS feature properties.
|
||||
*
|
||||
|
@ -71,29 +66,33 @@ public class FeatureParser {
|
|||
* @return the WFS feature properties
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
private static List<FeatureRow> getWFSFeatureProperties(LayerItem layerItem, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature) {
|
||||
private static List<FeatureRow> getWFSFeatureProperties(LayerItem layerItem, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature) {
|
||||
|
||||
LOG.info("getWFSFeatureProperties for layerItem: "+layerItem.getName() +" in the "+selectBBOX +" and maxWFSFeature: "+maxWFSFeature);
|
||||
LOG.info("getWFSFeatureProperties for layerItem: " + layerItem.getName() + " in the " + selectBBOX
|
||||
+ " and maxWFSFeature: " + maxWFSFeature);
|
||||
InputStream is = null;
|
||||
List<FeatureRow> listFeaturesRow = new ArrayList<FeatureRow>();
|
||||
try {
|
||||
String url = GisMakers.buildWFSFeatureQuery(layerItem, mapSrsName, selectBBOX, maxWFSFeature, GisMakers.JSON);
|
||||
String url = GisMakers.buildWFSFeatureQuery(layerItem, mapSrsName, selectBBOX, maxWFSFeature,
|
||||
GisMakers.JSON);
|
||||
String cqlFilterValue = URLParserUtil.extractValueOfParameterFromURL(GisMakers.CQL_FILTER_PARAMETER, url);
|
||||
LOG.info("Found CQL filter value into query string: "+cqlFilterValue);
|
||||
LOG.info("Found CQL filter value into query string: " + cqlFilterValue);
|
||||
|
||||
if(cqlFilterValue!=null) {
|
||||
String notEncodedCQLFilter = String.format("%s=%s",GisMakers.CQL_FILTER_PARAMETER,cqlFilterValue);
|
||||
//log.info("Found CQL filter: "+notEncodedCQLFilter);
|
||||
String toEncodeCQLFilter = String.format("%s=%s",GisMakers.CQL_FILTER_PARAMETER,URLEncoder.encode(cqlFilterValue,"UTF-8"));
|
||||
LOG.debug("Encoded CQL filter: "+toEncodeCQLFilter);
|
||||
if (cqlFilterValue != null) {
|
||||
String notEncodedCQLFilter = String.format("%s=%s", GisMakers.CQL_FILTER_PARAMETER, cqlFilterValue);
|
||||
// log.info("Found CQL filter: "+notEncodedCQLFilter);
|
||||
String toEncodeCQLFilter = String.format("%s=%s", GisMakers.CQL_FILTER_PARAMETER,
|
||||
URLEncoder.encode(cqlFilterValue, "UTF-8"));
|
||||
LOG.debug("Encoded CQL filter: " + toEncodeCQLFilter);
|
||||
url = url.replace(notEncodedCQLFilter, toEncodeCQLFilter);
|
||||
}
|
||||
|
||||
LOG.info("Built WFS URL: "+url);
|
||||
LOG.info("Built WFS URL: " + url);
|
||||
is = new URL(url).openStream();
|
||||
String jsonTxt = IOUtils.toString(is);
|
||||
|
||||
if(jsonTxt==null || jsonTxt.isEmpty()){
|
||||
if (jsonTxt == null || jsonTxt.isEmpty()) {
|
||||
jsonTxt = "{\"type\":\"FeatureCollection\",\"features\":[]}";
|
||||
}
|
||||
|
||||
|
@ -101,7 +100,7 @@ public class FeatureParser {
|
|||
JSONObject json = new JSONObject(jsonTxt);
|
||||
// iterate features
|
||||
JSONArray features = json.getJSONArray("features");
|
||||
if(features.length()==0) {
|
||||
if (features.length() == 0) {
|
||||
LOG.info("No features detected in the response, returning empty list");
|
||||
return listFeaturesRow;
|
||||
}
|
||||
|
@ -111,58 +110,52 @@ public class FeatureParser {
|
|||
JSONObject crs = json.getJSONObject("crs");
|
||||
JSONObject crsProp = crs.getJSONObject("properties");
|
||||
featureCRSName = crsProp.getString("name");
|
||||
LOG.info("Crs name found: "+featureCRSName);
|
||||
}catch (Exception e) {
|
||||
LOG.info("Crs name found: " + featureCRSName);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Unable to read the field 'crs'");
|
||||
}
|
||||
|
||||
LOG.info("Features are: "+features.length());
|
||||
LOG.info("Features are: " + features.length());
|
||||
|
||||
for (int i=0; i<features.length(); i++) {
|
||||
for (int i = 0; i < features.length(); i++) {
|
||||
final FeatureRow row = new FeatureRow();
|
||||
row.setCrsName(featureCRSName);
|
||||
JSONObject theFeature = ((JSONObject)features.get(i));
|
||||
LOG.debug("Building at index: "+i);
|
||||
JSONObject theFeature = ((JSONObject) features.get(i));
|
||||
LOG.debug("Building at index: " + i);
|
||||
|
||||
try {
|
||||
String fetaureId = theFeature.getString("id");
|
||||
row.setId(fetaureId);
|
||||
JSONObject geometry = theFeature.getJSONObject("geometry");
|
||||
String typeValue = geometry.getString("type");
|
||||
JSONArray coordinates = geometry.getJSONArray("coordinates");
|
||||
//String toCoordinates = coordinates.toString();
|
||||
String x1 = coordinates.get(0).toString();
|
||||
String y1 = coordinates.get(1).toString();
|
||||
LOG.debug("Coordinate x1: "+x1);
|
||||
LOG.debug("Coordinate y1: "+y1);
|
||||
Double coordX = null;
|
||||
Double coordY = null;
|
||||
FeatureGeometry fg = new FeatureGeometry();
|
||||
fg.setType(typeValue);
|
||||
//TODO ONLY POINT GEOMETRY
|
||||
|
||||
try {
|
||||
coordX = Double.parseDouble(x1);
|
||||
coordY = Double.parseDouble(y1);
|
||||
Coordinate coord = new Coordinate(coordX, coordY);
|
||||
fg.setPath(new PointsPath(new Coordinate[] {coord}));
|
||||
}catch (Exception e) {
|
||||
LOG.warn("Not able to parse the 'coordinates' field: ",e);
|
||||
JSONArray coordinates = geometry.getJSONArray("coordinates");
|
||||
String coordinateJSONString = coordinates.toString();
|
||||
LOG.debug("coordinates are: " + coordinateJSONString);
|
||||
fg.setCoordinatesJSON(coordinates.toString());
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Not able to parse the 'coordinates' field: ", e);
|
||||
}
|
||||
|
||||
row.setGeometry(fg);
|
||||
}catch (Exception e) {
|
||||
LOG.debug("Unable to pase geometry at index: "+i);
|
||||
} catch (Exception e) {
|
||||
LOG.debug("Unable to parse geometry at index: " + i);
|
||||
}
|
||||
|
||||
// // iterate properties
|
||||
JSONObject properties = theFeature.getJSONObject("properties");
|
||||
Map<String,List<String>> mapProperties = new HashMap<String,List<String>>();
|
||||
Map<String, List<String>> mapProperties = new HashMap<String, List<String>>();
|
||||
@SuppressWarnings("unchecked")
|
||||
Iterator<String> ii = properties.keys();
|
||||
while (ii.hasNext()) {
|
||||
String key = ii.next();
|
||||
String value = properties.optString(key,"");
|
||||
String value = properties.optString(key, "");
|
||||
|
||||
List<String> theValues = mapProperties.get(key);
|
||||
if(theValues==null)
|
||||
if (theValues == null)
|
||||
mapProperties.put(key, Arrays.asList(value));
|
||||
else {
|
||||
theValues.add(value);
|
||||
|
@ -171,18 +164,18 @@ public class FeatureParser {
|
|||
}
|
||||
row.setMapProperties(mapProperties);
|
||||
listFeaturesRow.add(row);
|
||||
LOG.info("Added row "+row+" to exported properties");
|
||||
LOG.info("Added row " + row + " to exported properties");
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
LOG.error("Error for layerItem name: "+layerItem.getName(), e);
|
||||
LOG.error("Error for layerItem name: " + layerItem.getName(), e);
|
||||
} catch (JSONException e) {
|
||||
LOG.error("Error for layerItem name: "+layerItem.getName(), e);
|
||||
}finally{
|
||||
LOG.error("Error for layerItem name: " + layerItem.getName(), e);
|
||||
} finally {
|
||||
IOUtils.closeQuietly(is);
|
||||
}
|
||||
|
||||
LOG.info("Returning "+listFeaturesRow.size()+" features");
|
||||
LOG.info("Returning " + listFeaturesRow.size() + " features");
|
||||
return listFeaturesRow;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.gis;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.MapServerRecognize.SERVERTYPE;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -75,7 +75,7 @@ public class GisMakers {
|
|||
LOG.debug("wms url contains wxs is a map server? no appending /wfs ");
|
||||
outputformat = MapServerRecognize.outputFormatRecognize(SERVERTYPE.MAPSERVER, outputFormat);
|
||||
boundingBox = BBOX_FORMAT(COORDINATE_FORMAT.YX, ",",mapBBOX.getLowerLeftX(),mapBBOX.getLowerLeftY(),mapBBOX.getUpperRightX(),mapBBOX.getUpperRightY()); // USE AXIS XY
|
||||
// TODO DEBUG
|
||||
// DEBUG
|
||||
LOG.debug("SERVERTYPE.MAPSERVER outputformat: " + outputformat);
|
||||
LOG.debug("SERVERTYPE.MAPSERVER srsName: " + mapSrsName);
|
||||
LOG.debug("SERVERTYPE.MAPSERVER boundingBox: " + boundingBox);
|
||||
|
@ -85,7 +85,7 @@ public class GisMakers {
|
|||
outputformat = MapServerRecognize.outputFormatRecognize(SERVERTYPE.GEOSEVER, outputFormat);
|
||||
mapSrsName = "urn:x-ogc:def:crs:"+mapSrsName;
|
||||
boundingBox = BBOX_FORMAT(COORDINATE_FORMAT.YX, ",",mapBBOX.getLowerLeftX(),mapBBOX.getLowerLeftY(),mapBBOX.getUpperRightX(),mapBBOX.getUpperRightY()); // USE AXIS XY
|
||||
// TODO DEBUG
|
||||
// DEBUG
|
||||
LOG.debug("SERVERTYPE.GEOSEVER outputformat: " + outputformat);
|
||||
LOG.debug("SERVERTYPE.GEOSEVER srsName: " + mapSrsName);
|
||||
}
|
||||
|
|
|
@ -395,7 +395,6 @@ public class WMSUrlValidator {
|
|||
System.out.println("Returned wms: "+wms.toString());
|
||||
}
|
||||
catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice;
|
||||
|
||||
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
|
||||
|
||||
import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
||||
/**
|
||||
* The Class ConcessioniMongoService.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 23, 2021
|
||||
*/
|
||||
public class ConcessioniMongoService {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ConcessioniMongoService.class);
|
||||
|
||||
/**
|
||||
* Instantiates a new concessioni mongo service.
|
||||
*/
|
||||
protected ConcessioniMongoService() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item by id.
|
||||
*
|
||||
* @param mongoItemId the mongo item id
|
||||
* @return the item by id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
protected Concessione getItemById(String mongoItemId) throws Exception {
|
||||
LOG.info("called getItemById: " + mongoItemId);
|
||||
ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build();
|
||||
// Returning item by Id
|
||||
return concessioniManager.getById(mongoItemId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* To concessione.
|
||||
*
|
||||
* @param jsonString the json string
|
||||
* @return the concessione
|
||||
*/
|
||||
protected Concessione toConcessione(String jsonString) {
|
||||
LOG.info("toConcessione called");
|
||||
try {
|
||||
return org.gcube.application.geoportal.client.utils.Serialization.read(jsonString, Concessione.class);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error on serializing: ", e);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* For testing public Concessione iamClientGetItemBy(HttpServletRequest request,
|
||||
* String mongoItemId, String clientId, String secret) throws Exception { String
|
||||
* scope = SessionUtil.getCurrentContext(request, true); return
|
||||
* iamClientGetItemBy(scope, mongoItemId, clientId, secret); }
|
||||
*/
|
||||
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity.GcubeIdentity;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity.IAMClientIdentity;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity.UserIdentity;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
||||
/**
|
||||
* The Class ConcessioniMongoServiceIdentityProxy.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 23, 2021
|
||||
*/
|
||||
public class ConcessioniMongoServiceIdentityProxy {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ConcessioniMongoServiceIdentityProxy.class);
|
||||
|
||||
private GcubeIdentity gCubeIdentity;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new concessioni mongo service proxy.
|
||||
*
|
||||
* @param request the request
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public ConcessioniMongoServiceIdentityProxy(HttpServletRequest request) throws Exception {
|
||||
SessionUtil.getCurrentContext(request, true);
|
||||
PortalContext pContext = PortalContext.getConfiguration();
|
||||
String username = null;
|
||||
try {
|
||||
username = pContext.getCurrentUser(request).getUsername();
|
||||
}catch (Exception e) {
|
||||
LOG.info("Username not detected in session");
|
||||
}
|
||||
if (username != null) {
|
||||
LOG.info("User detected, using its identity");
|
||||
gCubeIdentity = new UserIdentity();
|
||||
} else {
|
||||
LOG.info("User not detected, using IAM Client identity");
|
||||
gCubeIdentity = new IAMClientIdentity();
|
||||
}
|
||||
|
||||
gCubeIdentity.setIdentity(request);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the item by id.
|
||||
*
|
||||
* @param mongoItemId the mongo item id
|
||||
* @return the item by id
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public Concessione getItemById(String mongoItemId) throws Exception {
|
||||
|
||||
try {
|
||||
// Obtain the client
|
||||
ConcessioniMongoService concessioniManager = new ConcessioniMongoService();
|
||||
// Returning item by Id
|
||||
return concessioniManager.getItemById(mongoItemId);
|
||||
}catch(Exception e) {
|
||||
LOG.error("Error on reading itemById: "+mongoItemId, e);
|
||||
throw(e);
|
||||
}finally {
|
||||
gCubeIdentity.resetIdentity();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,82 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice;
|
||||
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
|
||||
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.common.encryption.StringEncrypter;
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint;
|
||||
import org.gcube.common.resources.gcore.ServiceEndpoint.AccessPoint;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity.IAMClientCredentials;
|
||||
import org.gcube.resources.discovery.client.api.DiscoveryClient;
|
||||
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* The Class IAMClientCredentialsReader.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 23, 2021
|
||||
*/
|
||||
public class IAMClientCredentialsReader {
|
||||
|
||||
private static Logger LOG = LoggerFactory.getLogger(IAMClientCredentialsReader.class);
|
||||
|
||||
private static final String SE_PROFILE_NAME = "geoportal-data-viewer-app";
|
||||
private static final String SE_CATEGORY_NAME = "SystemClient";
|
||||
|
||||
/**
|
||||
* Gets the credentials.
|
||||
*
|
||||
* @return the credentials
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static IAMClientCredentials getCredentials() throws Exception {
|
||||
|
||||
LOG.info("Searching SE in the scope: " + ScopeProvider.instance.get() + " with profile name: " + SE_PROFILE_NAME
|
||||
+ " and category name: " + SE_CATEGORY_NAME);
|
||||
|
||||
SimpleQuery query = queryFor(ServiceEndpoint.class);
|
||||
query.addCondition("$resource/Profile/Name/text() eq '" + SE_PROFILE_NAME + "'");
|
||||
query.addCondition("$resource/Profile/Category/text() eq '" + SE_CATEGORY_NAME + "'");
|
||||
|
||||
DiscoveryClient<ServiceEndpoint> client = clientFor(ServiceEndpoint.class);
|
||||
List<ServiceEndpoint> resources = client.submit(query);
|
||||
|
||||
if (resources.size() > 0)
|
||||
LOG.info("The query returned " + resources.size() + " ServiceEndpoint/s");
|
||||
else
|
||||
throw new RuntimeException("ServiceEndpoint not found. Searching for profile name: " + SE_PROFILE_NAME
|
||||
+ " and category name: " + SE_CATEGORY_NAME + "in the scope: " + ScopeProvider.instance.get());
|
||||
|
||||
ServiceEndpoint se = resources.get(0);
|
||||
Collection<AccessPoint> theAccessPoints = se.profile().accessPoints().asCollection();
|
||||
String clientId = null;
|
||||
String secredPwd = null;
|
||||
for (AccessPoint accessPoint : theAccessPoints) {
|
||||
clientId = accessPoint.username();
|
||||
secredPwd = accessPoint.password();
|
||||
LOG.debug("Found clientId: " + clientId + " and encrypted secret: " + secredPwd);
|
||||
// decrypting the pwd
|
||||
try {
|
||||
if (secredPwd != null) {
|
||||
secredPwd = StringEncrypter.getEncrypter().decrypt(secredPwd);
|
||||
LOG.debug("Secret decrypted is: " + secredPwd.substring(0, secredPwd.length() / 2)
|
||||
+ "_MASKED_TOKEN_");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Error on decrypting the pwd: ", e);
|
||||
}
|
||||
}
|
||||
|
||||
LOG.info("Returning keycloack credentials read from SE");
|
||||
return new IAMClientCredentials(clientId, secredPwd);
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
|
||||
/**
|
||||
* The Interface GcubeIdentity.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 23, 2021
|
||||
*/
|
||||
public interface GcubeIdentity {
|
||||
|
||||
/**
|
||||
* Sets the identity.
|
||||
*
|
||||
* @param httpRequest the new identity
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public void setIdentity(HttpServletRequest httpRequest) throws Exception;
|
||||
|
||||
/**
|
||||
* Reset identity.
|
||||
*/
|
||||
public void resetIdentity();
|
||||
|
||||
}
|
|
@ -0,0 +1,91 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* The Class IAMClientCredentials.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 23, 2021
|
||||
*/
|
||||
public class IAMClientCredentials implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 7242909633989611318L;
|
||||
private String clientId;
|
||||
private String clientSecret;
|
||||
|
||||
/**
|
||||
* Instantiates a new IAM client credentials.
|
||||
*/
|
||||
public IAMClientCredentials() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new IAM client credentials.
|
||||
*
|
||||
* @param clientId the client id
|
||||
* @param clientSecret the client secret
|
||||
*/
|
||||
public IAMClientCredentials(String clientId, String clientSecret) {
|
||||
this.clientId = clientId;
|
||||
this.clientSecret = clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the client id.
|
||||
*
|
||||
* @return the client id
|
||||
*/
|
||||
public String getClientId() {
|
||||
return clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the client secret.
|
||||
*
|
||||
* @return the client secret
|
||||
*/
|
||||
public String getClientSecret() {
|
||||
return clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the client id.
|
||||
*
|
||||
* @param clientId the new client id
|
||||
*/
|
||||
public void setClientId(String clientId) {
|
||||
this.clientId = clientId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the client secret.
|
||||
*
|
||||
* @param clientSecret the new client secret
|
||||
*/
|
||||
public void setClientSecret(String clientSecret) {
|
||||
this.clientSecret = clientSecret;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("IAMClientCredentials [clientId=");
|
||||
builder.append(clientId);
|
||||
builder.append(", clientSecret=");
|
||||
builder.append(clientSecret);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.AccessTokenProvider;
|
||||
import org.gcube.common.keycloak.KeycloakClientFactory;
|
||||
import org.gcube.common.keycloak.model.TokenResponse;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.IAMClientCredentialsReader;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class IAMClientIdentity implements GcubeIdentity {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(IAMClientIdentity.class);
|
||||
|
||||
private String previousUMAToken = null;
|
||||
|
||||
private static final String IAM_CLIENT_CREDENTIALS = "IAM_CLIENT_CREDENTIALS";
|
||||
|
||||
@Override
|
||||
public void setIdentity(HttpServletRequest httpRequest) throws Exception {
|
||||
LOG.info("setIdentity called");
|
||||
String currentScope = SessionUtil.getCurrentContext(httpRequest, true);
|
||||
IAMClientCredentials credentials = sessionGetIAMClientCredentials(httpRequest);
|
||||
try {
|
||||
if(credentials==null) {
|
||||
credentials = IAMClientCredentialsReader.getCredentials();
|
||||
sessionSetIAMClientCredentials(httpRequest,credentials);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Error on discovering IAM Client credentials", e);
|
||||
throw new Exception("IAM Client discovery failed");
|
||||
}
|
||||
|
||||
LOG.trace("Read credentials: " + credentials);
|
||||
String umaAcessToken = null;
|
||||
String clientId = credentials.getClientId();
|
||||
String clientSecret = credentials.getClientSecret();
|
||||
try {
|
||||
|
||||
LOG.info("Querying KeycloakClientFactory to get UMA token..");
|
||||
TokenResponse tr = KeycloakClientFactory.newInstance().queryUMAToken(clientId, clientSecret, currentScope,
|
||||
null);
|
||||
umaAcessToken = tr.getAccessToken();
|
||||
if (umaAcessToken != null && !umaAcessToken.isEmpty()) {
|
||||
LOG.info("UMA Access Token read correctly");
|
||||
} else {
|
||||
LOG.error("UMA Access Token NOT RETRIEVED!!!");
|
||||
throw new Exception("UMA Access Token is null or empty");
|
||||
}
|
||||
} catch (Exception e2) {
|
||||
throw new Exception("Error occurred on reading UMA access token:", e2);
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
try {
|
||||
// Here the previousUMAToken should be null
|
||||
previousUMAToken = AccessTokenProvider.instance.get();
|
||||
} catch (Exception e) {
|
||||
// catching excpetion to be sure
|
||||
// silent
|
||||
}
|
||||
|
||||
LOG.debug("JWT token: " + umaAcessToken.substring(0, 20) + "_MASKED_TOKEN_");
|
||||
LOG.info("Setting clientId '" + clientId + "' identity by JWT token in the "
|
||||
+ AccessTokenProvider.class.getSimpleName());
|
||||
AccessTokenProvider.instance.set(umaAcessToken);
|
||||
} catch (Exception e) {
|
||||
LOG.error(e.getMessage(), e);
|
||||
throw new Exception(e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetIdentity() {
|
||||
LOG.info("resetIdentity called");
|
||||
AccessTokenProvider.instance.set(previousUMAToken);
|
||||
LOG.info("resetIdentity to previous AccessToken");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the IAM client credentials.
|
||||
*
|
||||
* @param httpRequest the http request
|
||||
* @return the IAM client credentials
|
||||
*/
|
||||
public static IAMClientCredentials sessionGetIAMClientCredentials(HttpServletRequest httpRequest) {
|
||||
HttpSession session = httpRequest.getSession();
|
||||
try {
|
||||
return (IAMClientCredentials) session.getAttribute(IAM_CLIENT_CREDENTIALS);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error occurred when reading " + IAM_CLIENT_CREDENTIALS + " from session");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the IAM client credentials.
|
||||
*
|
||||
* @param httpRequest the http request
|
||||
* @param iamCC the iam CC
|
||||
*/
|
||||
public static void sessionSetIAMClientCredentials(HttpServletRequest httpRequest, IAMClientCredentials iamCC) {
|
||||
HttpSession session = httpRequest.getSession();
|
||||
try {
|
||||
session.setAttribute(IAM_CLIENT_CREDENTIALS, iamCC);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error occurred when setting " + IAM_CLIENT_CREDENTIALS + " into session");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class UserIdentity implements GcubeIdentity {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(UserIdentity.class);
|
||||
|
||||
public UserIdentity() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIdentity(HttpServletRequest httpRequest) throws Exception {
|
||||
LOG.info("setIdentity called");
|
||||
SessionUtil.getCurrentToken(httpRequest, true);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resetIdentity() {
|
||||
LOG.info("resetIdentity called, doing nothing");
|
||||
// doing nothing
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accesspolicy;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* The Class GeoNACheckAccessPolicy.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Sep 9, 2021
|
||||
*/
|
||||
public class GeoNACheckAccessPolicy {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(GeoNACheckAccessPolicy.class);
|
||||
/**
|
||||
* The Enum ACCESS_POLICY.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Sep 8, 2021
|
||||
*/
|
||||
public static enum ACCESS_POLICY {
|
||||
OPEN, RESTICTED
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is open access.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return true, if is open access
|
||||
*/
|
||||
private static boolean isOpenAccess(String policy) {
|
||||
if (policy == null || policy.equalsIgnoreCase(ACCESS_POLICY.OPEN.name())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is restricted access.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return true, if is restricted access
|
||||
*/
|
||||
private static boolean isRestrictedAccess(String policy) {
|
||||
if (policy == null || policy.equalsIgnoreCase(ACCESS_POLICY.RESTICTED.name())) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if is accessible accoding to access policies
|
||||
*
|
||||
* @param policy the policy
|
||||
* @param myLogin the my login
|
||||
* @return true, if is accessible
|
||||
*/
|
||||
public static boolean isAccessible(String policy, String myLogin) {
|
||||
|
||||
boolean bool = isOpenAccess(policy);
|
||||
|
||||
if (bool) {
|
||||
// is open access
|
||||
return true;
|
||||
}
|
||||
|
||||
//From here managing is NOT OPEN access
|
||||
|
||||
if (myLogin == null || myLogin.isEmpty()) {
|
||||
// here is not open and the user is not authenticated
|
||||
return false;
|
||||
}
|
||||
|
||||
// Here the login is not null, so checking if the access to item is RESTICTED
|
||||
bool = isRestrictedAccess(policy);
|
||||
|
||||
if (bool) {
|
||||
// is restricted access
|
||||
return true;
|
||||
}
|
||||
|
||||
// Here the user is authenticated, but the policy is not managed, so returning
|
||||
// true
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@ package org.gcube.portlets.user.geoportaldataviewer.server.util;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.user.urlshortener.UrlShortener;
|
||||
|
@ -20,7 +21,6 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import com.liferay.portal.service.UserLocalServiceUtil;
|
||||
|
||||
|
||||
/**
|
||||
* The Class SessionUtil.
|
||||
*
|
||||
|
@ -33,7 +33,7 @@ public class SessionUtil {
|
|||
/** The log. */
|
||||
private static Logger LOG = LoggerFactory.getLogger(SessionUtil.class);
|
||||
|
||||
public static final String URL_SHORTENER_SERVICE = "URL_SHORTENER_SERVICE";
|
||||
private static final String URL_SHORTENER_SERVICE = "URL_SHORTENER_SERVICE";
|
||||
|
||||
/**
|
||||
* Checks if is into portal.
|
||||
|
@ -44,7 +44,7 @@ public class SessionUtil {
|
|||
try {
|
||||
UserLocalServiceUtil.getService();
|
||||
return true;
|
||||
}catch (Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
LOG.warn("Development Mode ON");
|
||||
return false;
|
||||
}
|
||||
|
@ -53,11 +53,9 @@ public class SessionUtil {
|
|||
/**
|
||||
* Checks if is session expired.
|
||||
*
|
||||
* @param httpServletRequest
|
||||
* the http servlet request
|
||||
* @param httpServletRequest the http servlet request
|
||||
* @return true, if is session expired
|
||||
* @throws Exception
|
||||
* the exception
|
||||
* @throws Exception the exception
|
||||
*/
|
||||
public static boolean isSessionExpired(HttpServletRequest httpServletRequest) throws Exception {
|
||||
LOG.trace("workspace session validating...");
|
||||
|
@ -70,9 +68,9 @@ public class SessionUtil {
|
|||
* @param request the request
|
||||
* @return a GcubeUser object
|
||||
*/
|
||||
public static GCubeUser getCurrentUser(HttpServletRequest request){
|
||||
public static GCubeUser getCurrentUser(HttpServletRequest request) {
|
||||
|
||||
if(request == null)
|
||||
if (request == null)
|
||||
throw new IllegalArgumentException("HttpServletRequest is null!");
|
||||
|
||||
PortalContext pContext = PortalContext.getConfiguration();
|
||||
|
@ -88,21 +86,45 @@ public class SessionUtil {
|
|||
* @param setInThread the set in thread
|
||||
* @return a GcubeUser object
|
||||
*/
|
||||
public static String getCurrentContext(HttpServletRequest request, boolean setInThread){
|
||||
public static String getCurrentContext(HttpServletRequest request, boolean setInThread) {
|
||||
|
||||
if(request == null)
|
||||
if (request == null)
|
||||
throw new IllegalArgumentException("HttpServletRequest is null!");
|
||||
|
||||
PortalContext pContext = PortalContext.getConfiguration();
|
||||
String context = pContext.getCurrentScope(request);
|
||||
LOG.debug("Returning context " + context);
|
||||
|
||||
if(context != null && setInThread)
|
||||
if (context != null && setInThread)
|
||||
ScopeProvider.instance.set(context);
|
||||
|
||||
LOG.debug("Returning context " + context);
|
||||
return context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the current scope by using the portal manager.
|
||||
*
|
||||
* @param request the request
|
||||
* @param setInThread the set in thread
|
||||
* @return a GcubeUser object
|
||||
*/
|
||||
public static String getCurrentToken(HttpServletRequest request, boolean setInThread) {
|
||||
|
||||
if (request == null)
|
||||
throw new IllegalArgumentException("HttpServletRequest is null!");
|
||||
|
||||
PortalContext pContext = PortalContext.getConfiguration();
|
||||
String scope = pContext.getCurrentScope(request);
|
||||
GCubeUser user = pContext.getCurrentUser(request);
|
||||
String token = PortalContext.getConfiguration().getCurrentUserToken(scope, user.getUsername());
|
||||
|
||||
if (token != null && setInThread)
|
||||
SecurityTokenProvider.instance.set(token);
|
||||
|
||||
LOG.debug("Returning token " + token.substring(1, 10) + "_MASKED_TOKEN_");
|
||||
return token;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the group given the scope.
|
||||
*
|
||||
|
@ -111,9 +133,9 @@ public class SessionUtil {
|
|||
* @throws UserManagementSystemException the user management system exception
|
||||
* @throws GroupRetrievalFault the group retrieval fault
|
||||
*/
|
||||
public static GCubeGroup getGroupFromScope(String scope) throws UserManagementSystemException, GroupRetrievalFault{
|
||||
public static GCubeGroup getGroupFromScope(String scope) throws UserManagementSystemException, GroupRetrievalFault {
|
||||
|
||||
if(scope == null || scope.isEmpty())
|
||||
if (scope == null || scope.isEmpty())
|
||||
throw new IllegalArgumentException("Scope is missing here!!");
|
||||
|
||||
GroupManager gm = new LiferayGroupManager();
|
||||
|
@ -122,7 +144,6 @@ public class SessionUtil {
|
|||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the url shortener.
|
||||
*
|
||||
|
@ -142,7 +163,7 @@ public class SessionUtil {
|
|||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error occurred when instancing the "+UrlShortener.class.getSimpleName(), e);
|
||||
LOG.warn("Error occurred when instancing the " + UrlShortener.class.getSimpleName(), e);
|
||||
}
|
||||
|
||||
return shortener;
|
||||
|
|
|
@ -4,16 +4,17 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureRow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
|
||||
/**
|
||||
* The Class GeoNaSpatialQueryResult.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 17, 2020
|
||||
* Jul 30, 2021
|
||||
*/
|
||||
public class GeoNaSpatialQueryResult implements Serializable {
|
||||
|
||||
|
@ -23,8 +24,8 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
private static final long serialVersionUID = 3513120677727206958L;
|
||||
private List<FeatureRow> features;
|
||||
private LayerObject sourceLayerObject;
|
||||
// Map with couple (id concessione, list of uplaoded Images for the concessione)
|
||||
private Map<Long, List<UploadedImageDV>> mapImages = null;
|
||||
// Map with couple (mongoId concessione, list of uploaded Images for the concessione)
|
||||
private Map<String, List<UploadedImageDV>> mapImages = null;
|
||||
|
||||
/**
|
||||
* Instantiates a new geo na data object.
|
||||
|
@ -74,7 +75,7 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
*
|
||||
* @return the map images
|
||||
*/
|
||||
public Map<Long, List<UploadedImageDV>> getMapImages() {
|
||||
public Map<String, List<UploadedImageDV>> getMapImages() {
|
||||
return mapImages;
|
||||
}
|
||||
|
||||
|
@ -83,10 +84,15 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
*
|
||||
* @param mapImages the map images
|
||||
*/
|
||||
public void setMapImages(Map<Long, List<UploadedImageDV>> mapImages) {
|
||||
public void setMapImages(Map<String, List<UploadedImageDV>> mapImages) {
|
||||
this.mapImages = mapImages;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
|
|
@ -1,170 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.gis;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* The Class BoundsMap.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Oct 27, 2020
|
||||
*/
|
||||
public class BoundsMap implements Serializable{
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 69005924452960006L;
|
||||
|
||||
/** The lower left X. */
|
||||
private double lowerLeftX = 0.0;
|
||||
|
||||
/** The lower left Y. */
|
||||
private double lowerLeftY = 0.0;
|
||||
|
||||
/** The upper right X. */
|
||||
private double upperRightX = 0.0;
|
||||
|
||||
/** The upper right Y. */
|
||||
private double upperRightY = 0.0;
|
||||
|
||||
/** The crs. */
|
||||
private String crs = "";
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new bounds map.
|
||||
*/
|
||||
public BoundsMap() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new bounds map.
|
||||
*
|
||||
* @param lowerLeftX the lower left X
|
||||
* @param lowerLeftY the lower left Y
|
||||
* @param upperRightX the upper right X
|
||||
* @param upperRightY the upper right Y
|
||||
* @param crs the crs
|
||||
*/
|
||||
public BoundsMap(double lowerLeftX, double lowerLeftY, double upperRightX,
|
||||
double upperRightY, String crs) {
|
||||
super();
|
||||
this.lowerLeftX = lowerLeftX;
|
||||
this.lowerLeftY = lowerLeftY;
|
||||
this.upperRightX = upperRightX;
|
||||
this.upperRightY = upperRightY;
|
||||
this.crs = crs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the lower left X.
|
||||
*
|
||||
* @return the lower left X
|
||||
*/
|
||||
public double getLowerLeftX() {
|
||||
return lowerLeftX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the lower left X.
|
||||
*
|
||||
* @param lowerLeftX the new lower left X
|
||||
*/
|
||||
public void setLowerLeftX(double lowerLeftX) {
|
||||
this.lowerLeftX = lowerLeftX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the lower left Y.
|
||||
*
|
||||
* @return the lower left Y
|
||||
*/
|
||||
public double getLowerLeftY() {
|
||||
return lowerLeftY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the lower left Y.
|
||||
*
|
||||
* @param lowerLeftY the new lower left Y
|
||||
*/
|
||||
public void setLowerLeftY(double lowerLeftY) {
|
||||
this.lowerLeftY = lowerLeftY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the upper right X.
|
||||
*
|
||||
* @return the upper right X
|
||||
*/
|
||||
public double getUpperRightX() {
|
||||
return upperRightX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the upper right X.
|
||||
*
|
||||
* @param upperRightX the new upper right X
|
||||
*/
|
||||
public void setUpperRightX(double upperRightX) {
|
||||
this.upperRightX = upperRightX;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the upper right Y.
|
||||
*
|
||||
* @return the upper right Y
|
||||
*/
|
||||
public double getUpperRightY() {
|
||||
return upperRightY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the upper right Y.
|
||||
*
|
||||
* @param upperRightY the new upper right Y
|
||||
*/
|
||||
public void setUpperRightY(double upperRightY) {
|
||||
this.upperRightY = upperRightY;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the crs.
|
||||
*
|
||||
* @return the crs
|
||||
*/
|
||||
public String getCrs() {
|
||||
return crs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the crs.
|
||||
*
|
||||
* @param crs the new crs
|
||||
*/
|
||||
public void setCrs(String crs) {
|
||||
this.crs = crs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("BoundsMap [lowerLeftX=");
|
||||
builder.append(lowerLeftX);
|
||||
builder.append(", lowerLeftY=");
|
||||
builder.append(lowerLeftY);
|
||||
builder.append(", upperRightX=");
|
||||
builder.append(upperRightX);
|
||||
builder.append(", upperRightY=");
|
||||
builder.append(upperRightY);
|
||||
builder.append(", crs=");
|
||||
builder.append(crs);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -5,10 +5,10 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.Property;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.ZAxis;
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Class LayerItem.
|
||||
*
|
||||
|
@ -114,6 +114,10 @@ public class LayerItem implements Serializable, Cloneable {
|
|||
/** The Constant INT_TYPE. */
|
||||
public static final String INT_TYPE = "xsd:int";
|
||||
|
||||
public Double minResolution;
|
||||
|
||||
public Double maxResolution;
|
||||
|
||||
/**
|
||||
* Instantiates a new layer item.
|
||||
*/
|
||||
|
@ -848,6 +852,47 @@ public class LayerItem implements Serializable, Cloneable {
|
|||
this.zAxisSelected = zAxisSelected;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the max resolution.
|
||||
*
|
||||
* @param maxResolution the new max resolution
|
||||
*/
|
||||
public void setMaxResolution(Double maxResolution) {
|
||||
this.maxResolution = maxResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the min resolution.
|
||||
*
|
||||
* @param minResolution the new min resolution
|
||||
*/
|
||||
public void setMinResolution(Double minResolution) {
|
||||
this.minResolution = minResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the min resolution.
|
||||
*
|
||||
* @return the min resolution
|
||||
*/
|
||||
public Double getMinResolution() {
|
||||
return minResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the max resolution.
|
||||
*
|
||||
* @return the max resolution
|
||||
*/
|
||||
public Double getMaxResolution() {
|
||||
return maxResolution;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
@ -909,9 +954,12 @@ public class LayerItem implements Serializable, Cloneable {
|
|||
builder.append(zAxis);
|
||||
builder.append(", zAxisSelected=");
|
||||
builder.append(zAxisSelected);
|
||||
builder.append(", minResolution=");
|
||||
builder.append(minResolution);
|
||||
builder.append(", maxResolution=");
|
||||
builder.append(maxResolution);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,13 +2,15 @@ package org.gcube.portlets.user.geoportaldataviewer.shared.gis;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.BaseConcessioneDV;
|
||||
|
||||
|
||||
/**
|
||||
* The Class LayerObject.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 13, 2020
|
||||
* Sep 9, 2021
|
||||
*/
|
||||
public class LayerObject implements Serializable {
|
||||
|
||||
|
@ -19,12 +21,26 @@ public class LayerObject implements Serializable {
|
|||
/* This is the layer/product type. E.g. Concessione */
|
||||
private String itemType;
|
||||
private LayerItem layerItem;
|
||||
private BaseConcessioneDV sourceConcessione;
|
||||
|
||||
/**
|
||||
* Instantiates a new layer object.
|
||||
*/
|
||||
public LayerObject() {
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new layer object.
|
||||
*
|
||||
* @param itemType the item type
|
||||
* @param layerItem the layer item
|
||||
* @param sourceConcessione the source concessione
|
||||
*/
|
||||
public LayerObject(String itemType, LayerItem layerItem, BaseConcessioneDV sourceConcessione) {
|
||||
super();
|
||||
this.itemType = itemType;
|
||||
this.layerItem = layerItem;
|
||||
this.sourceConcessione = sourceConcessione;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,15 +52,6 @@ public class LayerObject implements Serializable {
|
|||
return itemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the item type.
|
||||
*
|
||||
* @param itemType the new item type
|
||||
*/
|
||||
public void setItemType(String itemType) {
|
||||
this.itemType = itemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer item.
|
||||
*
|
||||
|
@ -54,6 +61,24 @@ public class LayerObject implements Serializable {
|
|||
return layerItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the source concessione.
|
||||
*
|
||||
* @return the source concessione
|
||||
*/
|
||||
public BaseConcessioneDV getSourceConcessione() {
|
||||
return sourceConcessione;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the item type.
|
||||
*
|
||||
* @param itemType the new item type
|
||||
*/
|
||||
public void setItemType(String itemType) {
|
||||
this.itemType = itemType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the layer item.
|
||||
*
|
||||
|
@ -63,6 +88,15 @@ public class LayerObject implements Serializable {
|
|||
this.layerItem = layerItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the source concessione.
|
||||
*
|
||||
* @param sourceConcessione the new source concessione
|
||||
*/
|
||||
public void setSourceConcessione(BaseConcessioneDV sourceConcessione) {
|
||||
this.sourceConcessione = sourceConcessione;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
|
@ -75,6 +109,8 @@ public class LayerObject implements Serializable {
|
|||
builder.append(itemType);
|
||||
builder.append(", layerItem=");
|
||||
builder.append(layerItem);
|
||||
builder.append(", sourceConcessione=");
|
||||
builder.append(sourceConcessione);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
|
@ -3,44 +3,60 @@ package org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs;
|
|||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* The Class FeatureGeoemtry.
|
||||
* The Class FeatureGeometry.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Oct 29, 2020
|
||||
* Sep 6, 2021
|
||||
*/
|
||||
public class FeatureGeometry implements WFSGeometry, Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6251162740446739453L;
|
||||
private static final long serialVersionUID = 8134176011135233810L;
|
||||
private String type;
|
||||
private PointsPath path;
|
||||
private String coordinatesJSON;
|
||||
private String toJSON;
|
||||
|
||||
/**
|
||||
* Instantiates a new feature geometry.
|
||||
*/
|
||||
public FeatureGeometry() {
|
||||
}
|
||||
|
||||
public FeatureGeometry(String type, PointsPath path) {
|
||||
/**
|
||||
* Instantiates a new feature geometry.
|
||||
*
|
||||
* @param type the type
|
||||
* @param coordinatesJSON the coordinates JSON
|
||||
*/
|
||||
public FeatureGeometry(String type, String coordinatesJSON) {
|
||||
super();
|
||||
this.type = type;
|
||||
this.path = path;
|
||||
this.coordinatesJSON = coordinatesJSON;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getCoordinatesJSON() {
|
||||
return coordinatesJSON;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public PointsPath getPath() {
|
||||
return path;
|
||||
public void setCoordinatesJSON(String coordinatesJSON) {
|
||||
this.coordinatesJSON = coordinatesJSON;
|
||||
}
|
||||
|
||||
public void setPath(PointsPath path) {
|
||||
this.path = path;
|
||||
public String getToJSONObject() {
|
||||
if(toJSON==null)
|
||||
toJSON = "{\"type\":\""+type+"\",\"coordinates\":"+coordinatesJSON+"}";
|
||||
return toJSON;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -48,8 +64,8 @@ public class FeatureGeometry implements WFSGeometry, Serializable {
|
|||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("FeatureGeometry [type=");
|
||||
builder.append(type);
|
||||
builder.append(", path=");
|
||||
builder.append(path);
|
||||
builder.append(", coordinatesJSON=");
|
||||
builder.append(coordinatesJSON);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
|
@ -21,6 +21,8 @@ public class FeatureRow implements Serializable {
|
|||
*/
|
||||
private static final long serialVersionUID = 6254861811998867626L;
|
||||
|
||||
private String id;
|
||||
|
||||
private Map<String, List<String>> mapProperties;
|
||||
|
||||
private FeatureGeometry geometry;
|
||||
|
@ -36,6 +38,14 @@ public class FeatureRow implements Serializable {
|
|||
this.setGeometry(geometry);
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Map<String, List<String>> getMapProperties() {
|
||||
return mapProperties;
|
||||
}
|
||||
|
@ -63,14 +73,16 @@ public class FeatureRow implements Serializable {
|
|||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("FeatureRow [mapProperties=");
|
||||
builder.append("FeatureRow [id=");
|
||||
builder.append(id);
|
||||
builder.append(", mapProperties=");
|
||||
builder.append(mapProperties);
|
||||
builder.append(", geometry=");
|
||||
builder.append(geometry);
|
||||
builder.append(", crsName=");
|
||||
builder.append(crsName);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,60 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Arrays;
|
||||
|
||||
|
||||
/**
|
||||
* The Class PointsPath.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 16, 2020
|
||||
*/
|
||||
public class PointsPath implements Serializable{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -3295493507974317970L;
|
||||
|
||||
private Coordinate[] coordinates;
|
||||
|
||||
/**
|
||||
* Instantiates a new points path.
|
||||
*/
|
||||
public PointsPath() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new points path.
|
||||
*
|
||||
* @param coordinates the coordinates
|
||||
*/
|
||||
public PointsPath(Coordinate[] coordinates) {
|
||||
super();
|
||||
this.coordinates = coordinates;
|
||||
}
|
||||
|
||||
public Coordinate[] getCoordinates() {
|
||||
return coordinates;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("PointsPath [coordinates=");
|
||||
builder.append(Arrays.toString(coordinates));
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -4,9 +4,9 @@ package org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs;
|
|||
/**
|
||||
* The Interface WFSGeometry.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Nov 16, 2020
|
||||
* Sep 6, 2021
|
||||
*/
|
||||
public interface WFSGeometry {
|
||||
|
||||
|
@ -17,12 +17,11 @@ public interface WFSGeometry {
|
|||
*/
|
||||
String getType();
|
||||
|
||||
|
||||
/**
|
||||
* Gets the path.
|
||||
* Gets the coordinates JSON.
|
||||
*
|
||||
* @return the path
|
||||
* @return the coordinates JSON
|
||||
*/
|
||||
PointsPath getPath();
|
||||
String getCoordinatesJSON();
|
||||
|
||||
}
|
||||
|
|
|
@ -6,8 +6,6 @@ package org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms;
|
|||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
// TODO: Auto-generated Javadoc
|
||||
/**
|
||||
* The Class ZAxis.
|
||||
*
|
||||
|
@ -15,7 +13,7 @@ import java.util.List;
|
|||
*
|
||||
* Oct 27, 2020
|
||||
*/
|
||||
public class ZAxis implements Serializable{
|
||||
public class ZAxis implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
|
@ -50,7 +48,6 @@ public class ZAxis implements Serializable{
|
|||
this.values = values;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the units.
|
||||
*
|
||||
|
@ -61,7 +58,6 @@ public class ZAxis implements Serializable{
|
|||
return units;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Checks if is positive.
|
||||
*
|
||||
|
@ -72,7 +68,6 @@ public class ZAxis implements Serializable{
|
|||
return positive;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the values.
|
||||
*
|
||||
|
@ -83,7 +78,6 @@ public class ZAxis implements Serializable{
|
|||
return values;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the units.
|
||||
*
|
||||
|
@ -94,7 +88,6 @@ public class ZAxis implements Serializable{
|
|||
this.units = units;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the positive.
|
||||
*
|
||||
|
@ -105,7 +98,6 @@ public class ZAxis implements Serializable{
|
|||
this.positive = positive;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the values.
|
||||
*
|
||||
|
@ -121,7 +113,9 @@ public class ZAxis implements Serializable{
|
|||
*
|
||||
* @return the string
|
||||
*/
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see java.lang.Object#toString()
|
||||
*/
|
||||
@Override
|
||||
|
|
|
@ -1,597 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.OtherContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.AbstractRelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.LayerConcessioneDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RelazioneScavoDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.UploadedImageDV;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
/**
|
||||
* The Class ConcessioneDV.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 4, 2020
|
||||
*/
|
||||
public class ConcessioneDV extends RecordDV implements Serializable, IsSerializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1387327199157005059L;
|
||||
|
||||
/** The introduzione. */
|
||||
private String introduzione;
|
||||
|
||||
/** The descrizione contenuto. */
|
||||
private String descrizioneContenuto;
|
||||
|
||||
/** The authors. */
|
||||
private List<String> authors;
|
||||
|
||||
/** The contributore. */
|
||||
private String contributore;
|
||||
|
||||
/** The titolari. */
|
||||
private List<String> titolari;
|
||||
|
||||
/** The responsabile. */
|
||||
private String responsabile;
|
||||
|
||||
/** The editore. */
|
||||
private String editore;
|
||||
|
||||
/** The fonti finanziamento. */
|
||||
private List<String> fontiFinanziamento;
|
||||
|
||||
/** The soggetto. */
|
||||
private List<String> soggetto;
|
||||
|
||||
/** The risorse correlate. */
|
||||
private List<String> risorseCorrelate;
|
||||
|
||||
/** The data inizio progetto. */
|
||||
private String dataInizioProgetto;
|
||||
|
||||
/** The data fine progetto. */
|
||||
private String dataFineProgetto;
|
||||
|
||||
/** The titolare licenza. */
|
||||
private List<String> titolariLicenza;
|
||||
|
||||
/** The titolare copyright. */
|
||||
private List<String> titolariCopyright;
|
||||
|
||||
/** The parole chiave libere. */
|
||||
private List<String> paroleChiaveLibere;
|
||||
|
||||
/** The parole chiave ICCD. */
|
||||
private List<String> paroleChiaveICCD;
|
||||
|
||||
/** The centroid lat. */
|
||||
private Double centroidLat;
|
||||
|
||||
/** The centroid long. */
|
||||
private Double centroidLong;
|
||||
|
||||
/** The relazione scavo. */
|
||||
private AbstractRelazioneScavoDV abstractRelazioneScavo;
|
||||
|
||||
/** The relazione scavo. */
|
||||
private RelazioneScavoDV relazioneScavo;
|
||||
|
||||
/** The immagini rappresentative. */
|
||||
private List<UploadedImageDV> immaginiRappresentative = new ArrayList<UploadedImageDV>();
|
||||
|
||||
/** The posizionamento scavo. */
|
||||
private LayerConcessioneDV posizionamentoScavo;
|
||||
|
||||
/** The piante fine scavo. */
|
||||
private List<LayerConcessioneDV> pianteFineScavo = new ArrayList<LayerConcessioneDV>();
|
||||
|
||||
/** The generic content. */
|
||||
private List<OtherContentDV> genericContent = new ArrayList<OtherContentDV>();
|
||||
|
||||
/**
|
||||
* Instantiates a new concessione.
|
||||
*/
|
||||
public ConcessioneDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the introduzione.
|
||||
*
|
||||
* @return the introduzione
|
||||
*/
|
||||
public String getIntroduzione() {
|
||||
return introduzione;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the introduzione.
|
||||
*
|
||||
* @param introduzione the new introduzione
|
||||
*/
|
||||
public void setIntroduzione(String introduzione) {
|
||||
this.introduzione = introduzione;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the descrizione contenuto.
|
||||
*
|
||||
* @return the descrizione contenuto
|
||||
*/
|
||||
public String getDescrizioneContenuto() {
|
||||
return descrizioneContenuto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the descrizione contenuto.
|
||||
*
|
||||
* @param descrizioneContenuto the new descrizione contenuto
|
||||
*/
|
||||
public void setDescrizioneContenuto(String descrizioneContenuto) {
|
||||
this.descrizioneContenuto = descrizioneContenuto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the authors.
|
||||
*
|
||||
* @return the authors
|
||||
*/
|
||||
public List<String> getAuthors() {
|
||||
return authors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the authors.
|
||||
*
|
||||
* @param authors the new authors
|
||||
*/
|
||||
public void setAuthors(List<String> authors) {
|
||||
this.authors = authors;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the contributore.
|
||||
*
|
||||
* @return the contributore
|
||||
*/
|
||||
public String getContributore() {
|
||||
return contributore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the contributore.
|
||||
*
|
||||
* @param contributore the new contributore
|
||||
*/
|
||||
public void setContributore(String contributore) {
|
||||
this.contributore = contributore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the titolari.
|
||||
*
|
||||
* @return the titolari
|
||||
*/
|
||||
public List<String> getTitolari() {
|
||||
return titolari;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the titolari.
|
||||
*
|
||||
* @param titolari the new titolari
|
||||
*/
|
||||
public void setTitolari(List<String> titolari) {
|
||||
this.titolari = titolari;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the responsabile.
|
||||
*
|
||||
* @return the responsabile
|
||||
*/
|
||||
public String getResponsabile() {
|
||||
return responsabile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the responsabile.
|
||||
*
|
||||
* @param responsabile the new responsabile
|
||||
*/
|
||||
public void setResponsabile(String responsabile) {
|
||||
this.responsabile = responsabile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the editore.
|
||||
*
|
||||
* @return the editore
|
||||
*/
|
||||
public String getEditore() {
|
||||
return editore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the editore.
|
||||
*
|
||||
* @param editore the new editore
|
||||
*/
|
||||
public void setEditore(String editore) {
|
||||
this.editore = editore;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the fonti finanziamento.
|
||||
*
|
||||
* @return the fonti finanziamento
|
||||
*/
|
||||
public List<String> getFontiFinanziamento() {
|
||||
return fontiFinanziamento;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the fonti finanziamento.
|
||||
*
|
||||
* @param fontiFinanziamento the new fonti finanziamento
|
||||
*/
|
||||
public void setFontiFinanziamento(List<String> fontiFinanziamento) {
|
||||
this.fontiFinanziamento = fontiFinanziamento;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the soggetto.
|
||||
*
|
||||
* @return the soggetto
|
||||
*/
|
||||
public List<String> getSoggetto() {
|
||||
return soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the soggetto.
|
||||
*
|
||||
* @param soggetto the new soggetto
|
||||
*/
|
||||
public void setSoggetto(List<String> soggetto) {
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the risorse correlate.
|
||||
*
|
||||
* @return the risorse correlate
|
||||
*/
|
||||
public List<String> getRisorseCorrelate() {
|
||||
return risorseCorrelate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the risorse correlate.
|
||||
*
|
||||
* @param risorseCorrelate the new risorse correlate
|
||||
*/
|
||||
public void setRisorseCorrelate(List<String> risorseCorrelate) {
|
||||
this.risorseCorrelate = risorseCorrelate;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data inizio progetto.
|
||||
*
|
||||
* @return the data inizio progetto
|
||||
*/
|
||||
public String getDataInizioProgetto() {
|
||||
return dataInizioProgetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data inizio progetto.
|
||||
*
|
||||
* @param dataInizioProgetto the new data inizio progetto
|
||||
*/
|
||||
public void setDataInizioProgetto(String dataInizioProgetto) {
|
||||
this.dataInizioProgetto = dataInizioProgetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data fine progetto.
|
||||
*
|
||||
* @return the data fine progetto
|
||||
*/
|
||||
public String getDataFineProgetto() {
|
||||
return dataFineProgetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the data fine progetto.
|
||||
*
|
||||
* @param dataFineProgetto the new data fine progetto
|
||||
*/
|
||||
public void setDataFineProgetto(String dataFineProgetto) {
|
||||
this.dataFineProgetto = dataFineProgetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the titolari licenza.
|
||||
*
|
||||
* @return the titolari licenza
|
||||
*/
|
||||
public List<String> getTitolariLicenza() {
|
||||
return titolariLicenza;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the titolari licenza.
|
||||
*
|
||||
* @param titolariLicenza the new titolari licenza
|
||||
*/
|
||||
public void setTitolariLicenza(List<String> titolariLicenza) {
|
||||
this.titolariLicenza = titolariLicenza;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the titolari copyright.
|
||||
*
|
||||
* @return the titolari copyright
|
||||
*/
|
||||
public List<String> getTitolariCopyright() {
|
||||
return titolariCopyright;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the titolari copyright.
|
||||
*
|
||||
* @param titolariCopyright the new titolari copyright
|
||||
*/
|
||||
public void setTitolariCopyright(List<String> titolariCopyright) {
|
||||
this.titolariCopyright = titolariCopyright;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parole chiave libere.
|
||||
*
|
||||
* @return the parole chiave libere
|
||||
*/
|
||||
public List<String> getParoleChiaveLibere() {
|
||||
return paroleChiaveLibere;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the parole chiave libere.
|
||||
*
|
||||
* @param paroleChiaveLibere the new parole chiave libere
|
||||
*/
|
||||
public void setParoleChiaveLibere(List<String> paroleChiaveLibere) {
|
||||
this.paroleChiaveLibere = paroleChiaveLibere;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the parole chiave ICCD.
|
||||
*
|
||||
* @return the parole chiave ICCD
|
||||
*/
|
||||
public List<String> getParoleChiaveICCD() {
|
||||
return paroleChiaveICCD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the parole chiave ICCD.
|
||||
*
|
||||
* @param paroleChiaveICCD the new parole chiave ICCD
|
||||
*/
|
||||
public void setParoleChiaveICCD(List<String> paroleChiaveICCD) {
|
||||
this.paroleChiaveICCD = paroleChiaveICCD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the centroid lat.
|
||||
*
|
||||
* @return the centroid lat
|
||||
*/
|
||||
public Double getCentroidLat() {
|
||||
return centroidLat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the centroid lat.
|
||||
*
|
||||
* @param centroidLat the new centroid lat
|
||||
*/
|
||||
public void setCentroidLat(Double centroidLat) {
|
||||
this.centroidLat = centroidLat;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the centroid long.
|
||||
*
|
||||
* @return the centroid long
|
||||
*/
|
||||
public Double getCentroidLong() {
|
||||
return centroidLong;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the centroid long.
|
||||
*
|
||||
* @param centroidLong the new centroid long
|
||||
*/
|
||||
public void setCentroidLong(Double centroidLong) {
|
||||
this.centroidLong = centroidLong;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the relazione scavo.
|
||||
*
|
||||
* @return the relazione scavo
|
||||
*/
|
||||
public RelazioneScavoDV getRelazioneScavo() {
|
||||
return relazioneScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the relazione scavo.
|
||||
*
|
||||
* @param relazioneScavo the new relazione scavo
|
||||
*/
|
||||
public void setRelazioneScavo(RelazioneScavoDV relazioneScavo) {
|
||||
this.relazioneScavo = relazioneScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the immagini rappresentative.
|
||||
*
|
||||
* @return the immagini rappresentative
|
||||
*/
|
||||
public List<UploadedImageDV> getImmaginiRappresentative() {
|
||||
return immaginiRappresentative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the immagini rappresentative.
|
||||
*
|
||||
* @param immaginiRappresentative the new immagini rappresentative
|
||||
*/
|
||||
public void setImmaginiRappresentative(List<UploadedImageDV> immaginiRappresentative) {
|
||||
this.immaginiRappresentative = immaginiRappresentative;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the posizionamento scavo.
|
||||
*
|
||||
* @return the posizionamento scavo
|
||||
*/
|
||||
public LayerConcessioneDV getPosizionamentoScavo() {
|
||||
return posizionamentoScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the posizionamento scavo.
|
||||
*
|
||||
* @param posizionamentoScavo the new posizionamento scavo
|
||||
*/
|
||||
public void setPosizionamentoScavo(LayerConcessioneDV posizionamentoScavo) {
|
||||
this.posizionamentoScavo = posizionamentoScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the piante fine scavo.
|
||||
*
|
||||
* @return the piante fine scavo
|
||||
*/
|
||||
public List<LayerConcessioneDV> getPianteFineScavo() {
|
||||
return pianteFineScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the piante fine scavo.
|
||||
*
|
||||
* @param pianteFineScavo the new piante fine scavo
|
||||
*/
|
||||
public void setPianteFineScavo(List<LayerConcessioneDV> pianteFineScavo) {
|
||||
this.pianteFineScavo = pianteFineScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the generic content.
|
||||
*
|
||||
* @return the generic content
|
||||
*/
|
||||
public List<OtherContentDV> getGenericContent() {
|
||||
return genericContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the generic content.
|
||||
*
|
||||
* @param genericContent the new generic content
|
||||
*/
|
||||
public void setGenericContent(List<OtherContentDV> genericContent) {
|
||||
this.genericContent = genericContent;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the abstract relazione scavo.
|
||||
*
|
||||
* @return the abstract relazione scavo
|
||||
*/
|
||||
public AbstractRelazioneScavoDV getAbstractRelazioneScavo() {
|
||||
return abstractRelazioneScavo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the abstract relazione scavo.
|
||||
*
|
||||
* @param abstractRelazioneScavo the new abstract relazione scavo
|
||||
*/
|
||||
public void setAbstractRelazioneScavo(AbstractRelazioneScavoDV abstractRelazioneScavo) {
|
||||
this.abstractRelazioneScavo = abstractRelazioneScavo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("ConcessioneDV [introduzione=");
|
||||
builder.append(introduzione);
|
||||
builder.append(", descrizioneContenuto=");
|
||||
builder.append(descrizioneContenuto);
|
||||
builder.append(", authors=");
|
||||
builder.append(authors);
|
||||
builder.append(", contributore=");
|
||||
builder.append(contributore);
|
||||
builder.append(", titolari=");
|
||||
builder.append(titolari);
|
||||
builder.append(", responsabile=");
|
||||
builder.append(responsabile);
|
||||
builder.append(", editore=");
|
||||
builder.append(editore);
|
||||
builder.append(", fontiFinanziamento=");
|
||||
builder.append(fontiFinanziamento);
|
||||
builder.append(", soggetto=");
|
||||
builder.append(soggetto);
|
||||
builder.append(", risorseCorrelate=");
|
||||
builder.append(risorseCorrelate);
|
||||
builder.append(", dataInizioProgetto=");
|
||||
builder.append(dataInizioProgetto);
|
||||
builder.append(", dataFineProgetto=");
|
||||
builder.append(dataFineProgetto);
|
||||
builder.append(", titolariLicenza=");
|
||||
builder.append(titolariLicenza);
|
||||
builder.append(", titolariCopyright=");
|
||||
builder.append(titolariCopyright);
|
||||
builder.append(", paroleChiaveLibere=");
|
||||
builder.append(paroleChiaveLibere);
|
||||
builder.append(", paroleChiaveICCD=");
|
||||
builder.append(paroleChiaveICCD);
|
||||
builder.append(", centroidLat=");
|
||||
builder.append(centroidLat);
|
||||
builder.append(", centroidLong=");
|
||||
builder.append(centroidLong);
|
||||
builder.append(", abstractRelazioneScavo=");
|
||||
builder.append(abstractRelazioneScavo);
|
||||
builder.append(", relazioneScavo=");
|
||||
builder.append(relazioneScavo);
|
||||
builder.append(", immaginiRappresentative=");
|
||||
builder.append(immaginiRappresentative);
|
||||
builder.append(", posizionamentoScavo=");
|
||||
builder.append(posizionamentoScavo);
|
||||
builder.append(", pianteFineScavo=");
|
||||
builder.append(pianteFineScavo);
|
||||
builder.append(", genericContent=");
|
||||
builder.append(genericContent);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,202 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.content;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.model.RecordDV;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
/**
|
||||
* The Class AssociatedContent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 2, 2020
|
||||
*/
|
||||
public abstract class AssociatedContentDV implements IsSerializable, Serializable{
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -3666420861504055117L;
|
||||
|
||||
/** The id. */
|
||||
private long id;
|
||||
|
||||
/** The policy. */
|
||||
private String policy;
|
||||
|
||||
/** The license ID. */
|
||||
private String licenseID;
|
||||
|
||||
/** The titolo. */
|
||||
private String titolo;
|
||||
|
||||
/** The creation time. */
|
||||
private String creationTime;
|
||||
|
||||
/** The record. */
|
||||
private RecordDV record;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new associated content.
|
||||
*/
|
||||
public AssociatedContentDV() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new associated content.
|
||||
*
|
||||
* @param id the id
|
||||
* @param policy the policy
|
||||
* @param licenseID the license ID
|
||||
* @param titolo the titolo
|
||||
* @param creationTime the creation time
|
||||
* @param record the record
|
||||
*/
|
||||
public AssociatedContentDV(long id, String policy, String licenseID, String titolo, String creationTime,
|
||||
RecordDV record) {
|
||||
super();
|
||||
this.id = id;
|
||||
this.policy = policy;
|
||||
this.licenseID = licenseID;
|
||||
this.titolo = titolo;
|
||||
this.creationTime = creationTime;
|
||||
this.record = record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the id.
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id.
|
||||
*
|
||||
* @param id the new id
|
||||
*/
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the policy.
|
||||
*
|
||||
* @return the policy
|
||||
*/
|
||||
public String getPolicy() {
|
||||
return policy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the policy.
|
||||
*
|
||||
* @param policy the new policy
|
||||
*/
|
||||
public void setPolicy(String policy) {
|
||||
this.policy = policy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the license ID.
|
||||
*
|
||||
* @return the license ID
|
||||
*/
|
||||
public String getLicenseID() {
|
||||
return licenseID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the license ID.
|
||||
*
|
||||
* @param licenseID the new license ID
|
||||
*/
|
||||
public void setLicenseID(String licenseID) {
|
||||
this.licenseID = licenseID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the titolo.
|
||||
*
|
||||
* @return the titolo
|
||||
*/
|
||||
public String getTitolo() {
|
||||
return titolo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the titolo.
|
||||
*
|
||||
* @param titolo the new titolo
|
||||
*/
|
||||
public void setTitolo(String titolo) {
|
||||
this.titolo = titolo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the creation time.
|
||||
*
|
||||
* @return the creation time
|
||||
*/
|
||||
public String getCreationTime() {
|
||||
return creationTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the creation time.
|
||||
*
|
||||
* @param creationTime the new creation time
|
||||
*/
|
||||
public void setCreationTime(String creationTime) {
|
||||
this.creationTime = creationTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the record.
|
||||
*
|
||||
* @return the record
|
||||
*/
|
||||
public RecordDV getRecord() {
|
||||
return record;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the record.
|
||||
*
|
||||
* @param record the new record
|
||||
*/
|
||||
public void setRecord(RecordDV record) {
|
||||
this.record = record;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("AssociatedContent [id=");
|
||||
builder.append(id);
|
||||
builder.append(", policy=");
|
||||
builder.append(policy);
|
||||
builder.append(", licenseID=");
|
||||
builder.append(licenseID);
|
||||
builder.append(", titolo=");
|
||||
builder.append(titolo);
|
||||
builder.append(", creationTime=");
|
||||
builder.append(creationTime);
|
||||
builder.append(", record=");
|
||||
builder.append(record);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,41 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.content;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* The Class OtherContent.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 2, 2020
|
||||
*/
|
||||
public class OtherContentDV extends AssociatedContentDV implements Serializable{
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -2550361768550673836L;
|
||||
|
||||
/**
|
||||
* Instantiates a new other content.
|
||||
*/
|
||||
public OtherContentDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("OtherContent [toString()=");
|
||||
builder.append(super.toString());
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,85 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.content;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
/**
|
||||
* The Class WorkspaceContentDV.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 5, 2020
|
||||
*/
|
||||
public class WorkspaceContentDV implements IsSerializable, Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -3919923007831416696L;
|
||||
|
||||
/** The mimetype. */
|
||||
private String mimetype;
|
||||
|
||||
/** The storage ID. */
|
||||
private String storageID;
|
||||
|
||||
/** The link. */
|
||||
private String link;
|
||||
|
||||
private Long id;
|
||||
|
||||
public WorkspaceContentDV() {
|
||||
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getMimetype() {
|
||||
return mimetype;
|
||||
}
|
||||
|
||||
public void setMimetype(String mimetype) {
|
||||
this.mimetype = mimetype;
|
||||
}
|
||||
|
||||
public String getStorageID() {
|
||||
return storageID;
|
||||
}
|
||||
|
||||
public void setStorageID(String storageID) {
|
||||
this.storageID = storageID;
|
||||
}
|
||||
|
||||
public String getLink() {
|
||||
return link;
|
||||
}
|
||||
|
||||
public void setLink(String link) {
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("WorkspaceContentDV [mimetype=");
|
||||
builder.append(mimetype);
|
||||
builder.append(", storageID=");
|
||||
builder.append(storageID);
|
||||
builder.append(", link=");
|
||||
builder.append(link);
|
||||
builder.append(", id=");
|
||||
builder.append(id);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,152 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.AssociatedContentDV;
|
||||
|
||||
|
||||
/**
|
||||
* The Class AbstractRelazioneScavoDV.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Dec 21, 2020
|
||||
*/
|
||||
public class AbstractRelazioneScavoDV extends AssociatedContentDV implements Serializable {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8768745863185590509L;
|
||||
|
||||
/** The abstract section. */
|
||||
private String abstractSectionIta;
|
||||
|
||||
private String abstractSectionEng;
|
||||
|
||||
/** The responsabili. */
|
||||
private List<String> responsabili;
|
||||
|
||||
/** The soggetto. */
|
||||
private List<String> soggetto;
|
||||
|
||||
/**
|
||||
* Instantiates a new abstract relazione scavo.
|
||||
*/
|
||||
public AbstractRelazioneScavoDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new abstract relazione scavo.
|
||||
*
|
||||
* @param abstractSectionIta the abstract section ita
|
||||
* @param abstractSectionEng the abstract section eng
|
||||
* @param responsabili the responsabili
|
||||
* @param soggetto the soggetto
|
||||
*/
|
||||
public AbstractRelazioneScavoDV(String abstractSectionIta, String abstractSectionEng, List<String> responsabili, List<String> soggetto) {
|
||||
super();
|
||||
this.abstractSectionIta = abstractSectionIta;
|
||||
this.abstractSectionEng = abstractSectionEng;
|
||||
this.responsabili = responsabili;
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the abstract section ita.
|
||||
*
|
||||
* @return the abstract section ita
|
||||
*/
|
||||
public String getAbstractSectionIta() {
|
||||
return abstractSectionIta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the abstract section ita.
|
||||
*
|
||||
* @param abstractSectionIta the new abstract section ita
|
||||
*/
|
||||
public void setAbstractSectionIta(String abstractSectionIta) {
|
||||
this.abstractSectionIta = abstractSectionIta;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the abstract section eng.
|
||||
*
|
||||
* @return the abstract section eng
|
||||
*/
|
||||
public String getAbstractSectionEng() {
|
||||
return abstractSectionEng;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the abstract section eng.
|
||||
*
|
||||
* @param abstractSectionEng the new abstract section eng
|
||||
*/
|
||||
public void setAbstractSectionEng(String abstractSectionEng) {
|
||||
this.abstractSectionEng = abstractSectionEng;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the responsabili.
|
||||
*
|
||||
* @return the responsabili
|
||||
*/
|
||||
public List<String> getResponsabili() {
|
||||
return responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the responsabili.
|
||||
*
|
||||
* @param responsabili the new responsabili
|
||||
*/
|
||||
public void setResponsabili(List<String> responsabili) {
|
||||
this.responsabili = responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the soggetto.
|
||||
*
|
||||
* @return the soggetto
|
||||
*/
|
||||
public List<String> getSoggetto() {
|
||||
return soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the soggetto.
|
||||
*
|
||||
* @param soggetto the new soggetto
|
||||
*/
|
||||
public void setSoggetto(List<String> soggetto) {
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("RelazioneScavoDV [abstractSectionIta=");
|
||||
builder.append(abstractSectionIta);
|
||||
builder.append(", abstractSectionEng=");
|
||||
builder.append(abstractSectionEng);
|
||||
builder.append(", responsabili=");
|
||||
builder.append(responsabili);
|
||||
builder.append(", soggetto=");
|
||||
builder.append(soggetto);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,135 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.BoundsMap;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
public class LayerConcessioneDV extends SDILayerDescriptorDV implements IsSerializable, Serializable{
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 2633250621043744245L;
|
||||
|
||||
// 1.Identificazione
|
||||
private String abstractSection;
|
||||
|
||||
// 2.Classificazione
|
||||
private String topicCategory;
|
||||
|
||||
// 3.Keyword
|
||||
private String subTopic;
|
||||
|
||||
// 4. Delimitazione geographica
|
||||
private BoundsMap bbox;
|
||||
|
||||
// 5. Temporal
|
||||
|
||||
// 6. Quality
|
||||
private String valutazioneQualita;
|
||||
|
||||
private String metodoRaccoltaDati;
|
||||
|
||||
private String scalaAcquisizione;
|
||||
|
||||
private List<String> authors;
|
||||
|
||||
public LayerConcessioneDV() {
|
||||
|
||||
}
|
||||
|
||||
public String getAbstractSection() {
|
||||
return abstractSection;
|
||||
}
|
||||
|
||||
public void setAbstractSection(String abstractSection) {
|
||||
this.abstractSection = abstractSection;
|
||||
}
|
||||
|
||||
public String getTopicCategory() {
|
||||
return topicCategory;
|
||||
}
|
||||
|
||||
public void setTopicCategory(String topicCategory) {
|
||||
this.topicCategory = topicCategory;
|
||||
}
|
||||
|
||||
public String getSubTopic() {
|
||||
return subTopic;
|
||||
}
|
||||
|
||||
public void setSubTopic(String subTopic) {
|
||||
this.subTopic = subTopic;
|
||||
}
|
||||
|
||||
public BoundsMap getBbox() {
|
||||
return bbox;
|
||||
}
|
||||
|
||||
public void setBbox(BoundsMap bbox) {
|
||||
this.bbox = bbox;
|
||||
}
|
||||
|
||||
public String getValutazioneQualita() {
|
||||
return valutazioneQualita;
|
||||
}
|
||||
|
||||
public void setValutazioneQualita(String valutazioneQualita) {
|
||||
this.valutazioneQualita = valutazioneQualita;
|
||||
}
|
||||
|
||||
public String getMetodoRaccoltaDati() {
|
||||
return metodoRaccoltaDati;
|
||||
}
|
||||
|
||||
public void setMetodoRaccoltaDati(String metodoRaccoltaDati) {
|
||||
this.metodoRaccoltaDati = metodoRaccoltaDati;
|
||||
}
|
||||
|
||||
public String getScalaAcquisizione() {
|
||||
return scalaAcquisizione;
|
||||
}
|
||||
|
||||
public void setScalaAcquisizione(String scalaAcquisizione) {
|
||||
this.scalaAcquisizione = scalaAcquisizione;
|
||||
}
|
||||
|
||||
public List<String> getAuthors() {
|
||||
return authors;
|
||||
}
|
||||
|
||||
public void setAuthors(List<String> authors) {
|
||||
this.authors = authors;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("LayerConcessione [abstractSection=");
|
||||
builder.append(abstractSection);
|
||||
builder.append(", topicCategory=");
|
||||
builder.append(topicCategory);
|
||||
builder.append(", subTopic=");
|
||||
builder.append(subTopic);
|
||||
builder.append(", bbox=");
|
||||
builder.append(bbox);
|
||||
builder.append(", valutazioneQualita=");
|
||||
builder.append(valutazioneQualita);
|
||||
builder.append(", metodoRaccoltaDati=");
|
||||
builder.append(metodoRaccoltaDati);
|
||||
builder.append(", scalaAcquisizione=");
|
||||
builder.append(scalaAcquisizione);
|
||||
builder.append(", authors=");
|
||||
builder.append(authors);
|
||||
builder.append(", wmsLink=");
|
||||
builder.append(super.getWmsLink());
|
||||
builder.append(", layerName=");
|
||||
builder.append(super.getLayerName());
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,291 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
/**
|
||||
* The Class Record.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 2, 2020
|
||||
*/
|
||||
public abstract class RecordDV implements Serializable, IsSerializable {
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 2913726613820175679L;
|
||||
|
||||
/** The id. */
|
||||
private Long id;
|
||||
|
||||
/** The record type. */
|
||||
private String recordType;
|
||||
|
||||
/** The version. */
|
||||
private String version = "1.0.0";
|
||||
|
||||
/** The licenza ID. */
|
||||
private String licenzaID;
|
||||
|
||||
private String policy;
|
||||
|
||||
/** The nome. */
|
||||
// Nome del progetto
|
||||
private String nome;
|
||||
|
||||
/** The folder id. */
|
||||
// Storage Info
|
||||
private String folderId;
|
||||
|
||||
/** The last update time. */
|
||||
// Accounting
|
||||
private String lastUpdateTime;
|
||||
|
||||
/** The last update user. */
|
||||
private String lastUpdateUser;
|
||||
|
||||
/** The creation time. */
|
||||
private String creationTime;
|
||||
|
||||
/** The creation user. */
|
||||
private String creationUser;
|
||||
|
||||
/**
|
||||
* Instantiates a new record.
|
||||
*/
|
||||
public RecordDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the id.
|
||||
*
|
||||
* @return the id
|
||||
*/
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the id.
|
||||
*
|
||||
* @param id the new id
|
||||
*/
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the record type.
|
||||
*
|
||||
* @return the record type
|
||||
*/
|
||||
public String getRecordType() {
|
||||
return recordType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the record type.
|
||||
*
|
||||
* @param recordType the new record type
|
||||
*/
|
||||
public void setRecordType(String recordType) {
|
||||
this.recordType = recordType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the version.
|
||||
*
|
||||
* @return the version
|
||||
*/
|
||||
public String getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the version.
|
||||
*
|
||||
* @param version the new version
|
||||
*/
|
||||
public void setVersion(String version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the licenza ID.
|
||||
*
|
||||
* @return the licenza ID
|
||||
*/
|
||||
public String getLicenzaID() {
|
||||
return licenzaID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the licenza ID.
|
||||
*
|
||||
* @param licenzaID the new licenza ID
|
||||
*/
|
||||
public void setLicenzaID(String licenzaID) {
|
||||
this.licenzaID = licenzaID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the accesso.
|
||||
*
|
||||
* @return the accesso
|
||||
*/
|
||||
public String getPolicy() {
|
||||
return policy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the accesso.
|
||||
*
|
||||
* @param policy the new policy
|
||||
*/
|
||||
public void setPolicy(String policy) {
|
||||
this.policy = policy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the nome.
|
||||
*
|
||||
* @return the nome
|
||||
*/
|
||||
public String getNome() {
|
||||
return nome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the nome.
|
||||
*
|
||||
* @param nome the new nome
|
||||
*/
|
||||
public void setNome(String nome) {
|
||||
this.nome = nome;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the folder id.
|
||||
*
|
||||
* @return the folder id
|
||||
*/
|
||||
public String getFolderId() {
|
||||
return folderId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the folder id.
|
||||
*
|
||||
* @param folderId the new folder id
|
||||
*/
|
||||
public void setFolderId(String folderId) {
|
||||
this.folderId = folderId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last update time.
|
||||
*
|
||||
* @return the last update time
|
||||
*/
|
||||
public String getLastUpdateTime() {
|
||||
return lastUpdateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the last update time.
|
||||
*
|
||||
* @param lastUpdateTime the new last update time
|
||||
*/
|
||||
public void setLastUpdateTime(String lastUpdateTime) {
|
||||
this.lastUpdateTime = lastUpdateTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the last update user.
|
||||
*
|
||||
* @return the last update user
|
||||
*/
|
||||
public String getLastUpdateUser() {
|
||||
return lastUpdateUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the last update user.
|
||||
*
|
||||
* @param lastUpdateUser the new last update user
|
||||
*/
|
||||
public void setLastUpdateUser(String lastUpdateUser) {
|
||||
this.lastUpdateUser = lastUpdateUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the creation time.
|
||||
*
|
||||
* @return the creation time
|
||||
*/
|
||||
public String getCreationTime() {
|
||||
return creationTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the creation time.
|
||||
*
|
||||
* @param creationTime the new creation time
|
||||
*/
|
||||
public void setCreationTime(String creationTime) {
|
||||
this.creationTime = creationTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the creation user.
|
||||
*
|
||||
* @return the creation user
|
||||
*/
|
||||
public String getCreationUser() {
|
||||
return creationUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the creation user.
|
||||
*
|
||||
* @param creationUser the new creation user
|
||||
*/
|
||||
public void setCreationUser(String creationUser) {
|
||||
this.creationUser = creationUser;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("RecordDV [id=");
|
||||
builder.append(id);
|
||||
builder.append(", recordType=");
|
||||
builder.append(recordType);
|
||||
builder.append(", version=");
|
||||
builder.append(version);
|
||||
builder.append(", licenzaID=");
|
||||
builder.append(licenzaID);
|
||||
builder.append(", policy=");
|
||||
builder.append(policy);
|
||||
builder.append(", nome=");
|
||||
builder.append(nome);
|
||||
builder.append(", folderId=");
|
||||
builder.append(folderId);
|
||||
builder.append(", lastUpdateTime=");
|
||||
builder.append(lastUpdateTime);
|
||||
builder.append(", lastUpdateUser=");
|
||||
builder.append(lastUpdateUser);
|
||||
builder.append(", creationTime=");
|
||||
builder.append(creationTime);
|
||||
builder.append(", creationUser=");
|
||||
builder.append(creationUser);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,125 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.AssociatedContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
|
||||
|
||||
/**
|
||||
* The Class RelazioneScavoDV.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Dec 21, 2020
|
||||
*/
|
||||
public class RelazioneScavoDV extends AssociatedContentDV implements Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 2456950567302197554L;
|
||||
|
||||
/** The responsabili. */
|
||||
private List<String> responsabili;
|
||||
|
||||
/** The soggetto. */
|
||||
private List<String> soggetto;
|
||||
|
||||
private List<WorkspaceContentDV> listWsContent;
|
||||
|
||||
/**
|
||||
* Instantiates a new relazione scavo DV.
|
||||
*/
|
||||
public RelazioneScavoDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new relazione scavo DV.
|
||||
*
|
||||
* @param responsabili the responsabili
|
||||
* @param soggetto the soggetto
|
||||
*/
|
||||
public RelazioneScavoDV(List<String> responsabili, List<String> soggetto) {
|
||||
super();
|
||||
this.responsabili = responsabili;
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the responsabili.
|
||||
*
|
||||
* @return the responsabili
|
||||
*/
|
||||
public List<String> getResponsabili() {
|
||||
return responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the responsabili.
|
||||
*
|
||||
* @param responsabili the new responsabili
|
||||
*/
|
||||
public void setResponsabili(List<String> responsabili) {
|
||||
this.responsabili = responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the soggetto.
|
||||
*
|
||||
* @return the soggetto
|
||||
*/
|
||||
public List<String> getSoggetto() {
|
||||
return soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the soggetto.
|
||||
*
|
||||
* @param soggetto the new soggetto
|
||||
*/
|
||||
public void setSoggetto(List<String> soggetto) {
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the list ws content.
|
||||
*
|
||||
* @return the list ws content
|
||||
*/
|
||||
public List<WorkspaceContentDV> getListWsContent() {
|
||||
return listWsContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the list ws content.
|
||||
*
|
||||
* @param listWsContent the new list ws content
|
||||
*/
|
||||
public void setListWsContent(List<WorkspaceContentDV> listWsContent) {
|
||||
this.listWsContent = listWsContent;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("RelazioneScavoDV [responsabili=");
|
||||
builder.append(responsabili);
|
||||
builder.append(", soggetto=");
|
||||
builder.append(soggetto);
|
||||
builder.append(", listWsContent=");
|
||||
builder.append(listWsContent);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -1,143 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.AssociatedContentDV;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
|
||||
/**
|
||||
* The Class SDILayerDescriptorDV.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 4, 2020
|
||||
*/
|
||||
public class SDILayerDescriptorDV extends AssociatedContentDV implements IsSerializable, Serializable {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6137246723753812015L;
|
||||
// meta
|
||||
private String layerUUID;
|
||||
private Long layerID;
|
||||
|
||||
// layer
|
||||
private String layerName;
|
||||
private String wmsLink;
|
||||
|
||||
/**
|
||||
* Instantiates a new SDI layer descriptor DV.
|
||||
*/
|
||||
public SDILayerDescriptorDV() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Instantiates a new SDI layer descriptor DV.
|
||||
*
|
||||
* @param layerUUID the layer UUID
|
||||
* @param layerID the layer ID
|
||||
* @param layerName the layer name
|
||||
* @param wmsLink the wms link
|
||||
*/
|
||||
public SDILayerDescriptorDV(String layerUUID, Long layerID, String layerName, String wmsLink) {
|
||||
super();
|
||||
this.layerUUID = layerUUID;
|
||||
this.layerID = layerID;
|
||||
this.layerName = layerName;
|
||||
this.wmsLink = wmsLink;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer UUID.
|
||||
*
|
||||
* @return the layer UUID
|
||||
*/
|
||||
public String getLayerUUID() {
|
||||
return layerUUID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the layer UUID.
|
||||
*
|
||||
* @param layerUUID the new layer UUID
|
||||
*/
|
||||
public void setLayerUUID(String layerUUID) {
|
||||
this.layerUUID = layerUUID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer ID.
|
||||
*
|
||||
* @return the layer ID
|
||||
*/
|
||||
public Long getLayerID() {
|
||||
return layerID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the layer ID.
|
||||
*
|
||||
* @param layerID the new layer ID
|
||||
*/
|
||||
public void setLayerID(Long layerID) {
|
||||
this.layerID = layerID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the layer name.
|
||||
*
|
||||
* @return the layer name
|
||||
*/
|
||||
public String getLayerName() {
|
||||
return layerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the layer name.
|
||||
*
|
||||
* @param layerName the new layer name
|
||||
*/
|
||||
public void setLayerName(String layerName) {
|
||||
this.layerName = layerName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the wms link.
|
||||
*
|
||||
* @return the wms link
|
||||
*/
|
||||
public String getWmsLink() {
|
||||
return wmsLink;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the wms link.
|
||||
*
|
||||
* @param wmsLink the new wms link
|
||||
*/
|
||||
public void setWmsLink(String wmsLink) {
|
||||
this.wmsLink = wmsLink;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.gcube.portlets.user.geoportaldataviewer.shared.products.content.AssociatedContentDV#toString()
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("SDILayerDescriptor [layerUUID=");
|
||||
builder.append(layerUUID);
|
||||
builder.append(", layerID=");
|
||||
builder.append(layerID);
|
||||
builder.append(", layerName=");
|
||||
builder.append(layerName);
|
||||
builder.append(", wmsLink=");
|
||||
builder.append(wmsLink);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,141 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer.shared.products.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.AssociatedContentDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.content.WorkspaceContentDV;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
|
||||
/**
|
||||
* The Class UploadedImage.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it)
|
||||
*
|
||||
* Nov 2, 2020
|
||||
*/
|
||||
public class UploadedImageDV extends AssociatedContentDV implements IsSerializable, Serializable {
|
||||
|
||||
/** The Constant serialVersionUID. */
|
||||
private static final long serialVersionUID = 809167060189883015L;
|
||||
|
||||
/** The didascalia. */
|
||||
private String didascalia;
|
||||
|
||||
/** The format. */
|
||||
private String format;
|
||||
|
||||
/** The responsabili. */
|
||||
private List<String> responsabili;
|
||||
|
||||
/** The soggetto. */
|
||||
private List<String> soggetto;
|
||||
|
||||
private List<WorkspaceContentDV> listWsContent;
|
||||
|
||||
/**
|
||||
* Instantiates a new uploaded image.
|
||||
*/
|
||||
public UploadedImageDV() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the didascalia.
|
||||
*
|
||||
* @return the didascalia
|
||||
*/
|
||||
public String getDidascalia() {
|
||||
return didascalia;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the didascalia.
|
||||
*
|
||||
* @param didascalia the new didascalia
|
||||
*/
|
||||
public void setDidascalia(String didascalia) {
|
||||
this.didascalia = didascalia;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the format.
|
||||
*
|
||||
* @return the format
|
||||
*/
|
||||
public String getFormat() {
|
||||
return format;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the format.
|
||||
*
|
||||
* @param format the new format
|
||||
*/
|
||||
public void setFormat(String format) {
|
||||
this.format = format;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the responsabili.
|
||||
*
|
||||
* @return the responsabili
|
||||
*/
|
||||
public List<String> getResponsabili() {
|
||||
return responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the responsabili.
|
||||
*
|
||||
* @param responsabili the new responsabili
|
||||
*/
|
||||
public void setResponsabili(List<String> responsabili) {
|
||||
this.responsabili = responsabili;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the soggetto.
|
||||
*
|
||||
* @return the soggetto
|
||||
*/
|
||||
public List<String> getSoggetto() {
|
||||
return soggetto;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the soggetto.
|
||||
*
|
||||
* @param soggetto the new soggetto
|
||||
*/
|
||||
public void setSoggetto(List<String> soggetto) {
|
||||
this.soggetto = soggetto;
|
||||
}
|
||||
|
||||
public List<WorkspaceContentDV> getListWsContent() {
|
||||
return listWsContent;
|
||||
}
|
||||
|
||||
public void setListWsContent(List<WorkspaceContentDV> listWsContent) {
|
||||
this.listWsContent = listWsContent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("UploadedImageDV [didascalia=");
|
||||
builder.append(didascalia);
|
||||
builder.append(", format=");
|
||||
builder.append(format);
|
||||
builder.append(", responsabili=");
|
||||
builder.append(responsabili);
|
||||
builder.append(", soggetto=");
|
||||
builder.append(soggetto);
|
||||
builder.append(", listWsContent=");
|
||||
builder.append(listWsContent);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -31,7 +31,7 @@ body {
|
|||
bottom: 12px;
|
||||
left: -50px;
|
||||
min-width: 280px;
|
||||
max-width: 350px;
|
||||
max-width: 500px;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
|
@ -94,12 +94,9 @@ body {
|
|||
padding-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
/* #page-view-details .page-header h1 {
|
||||
font-size: 28px;
|
||||
} */
|
||||
|
||||
|
||||
#page-view-details p {
|
||||
font-size: 14px;
|
||||
padding: 10px;
|
||||
|
@ -203,6 +200,7 @@ body {
|
|||
text-align: center;
|
||||
margin: 1px;
|
||||
}
|
||||
|
||||
.inner-toolbar .btn-link:hover, .inner-toolbar .btn-link:focus {
|
||||
background-color: #f3f3f3 !important;
|
||||
text-decoration: none;
|
||||
|
@ -232,10 +230,7 @@ body {
|
|||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** NanoGallery2 **/
|
||||
|
||||
.nGY2Viewer {
|
||||
background: rgba(4, 4, 4, .8) !important;
|
||||
}
|
||||
|
@ -244,7 +239,6 @@ body {
|
|||
background: rgba(4, 4, 4, .8) !important;
|
||||
}
|
||||
|
||||
|
||||
.nGY2 .toolbar .ngbt {
|
||||
font-size: 1em !important;
|
||||
padding: 12px 12px !important;
|
||||
|
@ -254,3 +248,32 @@ body {
|
|||
font-size: .9em !important;
|
||||
margin-bottom: 5px !important
|
||||
}
|
||||
|
||||
.nGY2 .nGY2GThumbnailIcon {
|
||||
Text-Shadow: none !important;
|
||||
color: #696969 !important;
|
||||
}
|
||||
|
||||
.nGY2 .nGY2GThumbnailAlbumTitle, .nGY2 .nGY2GThumbnailImageTitle {
|
||||
Text-Shadow: none !important;
|
||||
color: #696969 !important;
|
||||
font-family: arial !important;
|
||||
}
|
||||
|
||||
.table-feature {
|
||||
border: 1px solid #ddd;
|
||||
text-align: left;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
|
||||
.table-feature td {
|
||||
border: 1px solid #ddd;
|
||||
text-align: left;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.table-feature tr:first-child {
|
||||
font-weight: bold;
|
||||
}
|
|
@ -20,6 +20,10 @@
|
|||
href="//cdnjs.cloudflare.com/ajax/libs/nanogallery2/3.0.5/css/nanogallery2.min.css"
|
||||
rel="stylesheet" type="text/css">
|
||||
|
||||
<script
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.3.1/jspdf.umd.min.js"
|
||||
type="text/javascript"></script>
|
||||
|
||||
<!-- -->
|
||||
<!-- Consider inlining CSS to reduce the number of requested files -->
|
||||
<!-- -->
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer;
|
||||
|
||||
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni;
|
||||
|
||||
import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.application.geoportalcommon.ConvertToDataViewModel;
|
||||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
|
||||
public class ConcessioneReader {
|
||||
|
||||
private static final String YOUR_TOKEN = "";
|
||||
|
||||
public static String SCOPE = "/gcube/devsec/devVRE";
|
||||
public static String mongoConcessioneID = "6102c07002ad3d05b5f81ddc";
|
||||
|
||||
//@Before
|
||||
public void setEnviroment() {
|
||||
ScopeProvider.instance.set(SCOPE);
|
||||
SecurityTokenProvider.instance.set(YOUR_TOKEN);
|
||||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void readConcessione() throws Exception {
|
||||
System.out.println("getConcessioneForId " + mongoConcessioneID + "called");
|
||||
|
||||
ConcessioneDV concessionDV = null;
|
||||
|
||||
if (mongoConcessioneID == null)
|
||||
throw new Exception("Invalid parameter. The Id is null");
|
||||
|
||||
try {
|
||||
System.out.println("Trying to get record for id " + mongoConcessioneID);
|
||||
ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build();
|
||||
Concessione concessione = concessioniManager.getById(mongoConcessioneID);
|
||||
System.out.println("For id " + mongoConcessioneID + ", got concessione " + concessione);
|
||||
System.out.println("Immagini Rappresentative are: " + concessione.getImmaginiRappresentative());
|
||||
System.out.println("Relazione scavo: " + concessione.getRelazioneScavo());
|
||||
System.out.println("Pianta Fine scavo: " + concessione.getPianteFineScavo());
|
||||
System.out.println("Posizionamento scavo: " + concessione.getPosizionamentoScavo());
|
||||
|
||||
if (concessione != null) {
|
||||
concessionDV = ConvertToDataViewModel.toConcessione(concessione);
|
||||
}
|
||||
|
||||
if (concessionDV == null)
|
||||
throw new Exception("Concessione not retrieved");
|
||||
|
||||
System.out.println("Got concessione: " + concessionDV);
|
||||
|
||||
} catch (Exception e) {
|
||||
String erroMsg = Concessione.class.getSimpleName() + " with id " + mongoConcessioneID + " not available";
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer;
|
||||
|
||||
import org.gcube.application.geoportal.client.legacy.ConcessioniManager;
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.ConvertToDataViewModel;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.products.ConcessioneDV;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class GetConcessione {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(GetConcessione.class);
|
||||
|
||||
private static final String YOUR_TOKEN = "";
|
||||
|
||||
public static String SCOPE = "/gcube/devsec/devVRE";
|
||||
public static long concessioneId = 8;
|
||||
|
||||
public static ConcessioneDV getConcessioneForId(Long id) throws Exception{
|
||||
LOG.info("getConcessioneForId "+id+ "called");
|
||||
|
||||
ConcessioneDV concessionDV = null;
|
||||
|
||||
if(id==null)
|
||||
throw new Exception("Invalid parameter. The Id is null");
|
||||
|
||||
try {
|
||||
LOG.info("Trying to get record for id "+id);
|
||||
Concessione concessione = new ConcessioniManager().getById(id+"");
|
||||
LOG.info("For id "+id+", got concessione "+concessione);
|
||||
LOG.info("Immagini Rappresentative are: "+concessione.getImmaginiRappresentative());
|
||||
LOG.info("Relazione scavo: "+concessione.getRelazioneScavo());
|
||||
LOG.info("Pianta Fine scavo: "+concessione.getPianteFineScavo());
|
||||
LOG.info("Posizionamento scavo: "+concessione.getPosizionamentoScavo());
|
||||
|
||||
if(concessione !=null) {
|
||||
concessionDV = ConvertToDataViewModel.toConcessione(concessione);
|
||||
}
|
||||
|
||||
if(concessionDV==null)
|
||||
throw new Exception("Concessione not retrieved");
|
||||
|
||||
return concessionDV;
|
||||
|
||||
}catch (Exception e) {
|
||||
String erroMsg = Concessione.class.getSimpleName() +" with id "+id+" not available";
|
||||
LOG.error(erroMsg,e);
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
ScopeProvider.instance.set(SCOPE);
|
||||
SecurityTokenProvider.instance.set(YOUR_TOKEN);
|
||||
LOG.info("Trying to get record for id "+concessioneId);
|
||||
ConcessioneDV concessione = getConcessioneForId(concessioneId);
|
||||
LOG.info("Got record for id "+concessione);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package org.gcube.portlets.user.geoportaldataviewer;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.gcube.application.geoportal.common.model.legacy.Concessione;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.IAMClientCredentialsReader;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.mongoservice.accessidentity.IAMClientCredentials;
|
||||
import org.junit.Test;
|
||||
|
||||
public class IAMClient {
|
||||
|
||||
private static final String SCOPE = "/gcube/devsec/devVRE";
|
||||
private static final String MONGO_ITEM_ID = "614af6a502ad3d6128abd43f";
|
||||
|
||||
@Test
|
||||
public void readCredentials() {
|
||||
System.out.println("called readCredentials test");
|
||||
ScopeProvider.instance.set(SCOPE);
|
||||
IAMClientCredentials credentials = null;
|
||||
try {
|
||||
credentials = IAMClientCredentialsReader.getCredentials();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
System.out.println("Read credentials: " + credentials);
|
||||
Concessione concessione;
|
||||
try {
|
||||
// concessione = new ConcessioniMongoServiceIdentityProxy();
|
||||
|
||||
// System.out.println("Get concessione: " + concessione);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -7,9 +7,11 @@ import java.util.Arrays;
|
|||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.portlets.user.urlshortener.UrlShortener;
|
||||
|
||||
public class TestShortener {
|
||||
public class Shortener {
|
||||
|
||||
public static void main(String[] args) {
|
||||
//@Test
|
||||
public void availableInTheScope() {
|
||||
System.out.println("called availableInTheScope test");
|
||||
try {
|
||||
String toShort = "https://next.d4science.org/group/nextnext/geona-data-viewer";
|
||||
String[] splitted = toShort.split("\\?");
|
||||
|
@ -27,12 +29,12 @@ public class TestShortener {
|
|||
System.out.println("encodedQuery is: "+encodedQuery);
|
||||
link = String.format("%s?%s", splitted[0], encodedQuery);
|
||||
}
|
||||
ScopeProvider.instance.set("/gcube/devNext/NextNext");
|
||||
ScopeProvider.instance.set("/gcube/devsec/devVRE");
|
||||
UrlShortener shortener = new UrlShortener();
|
||||
System.out.println(shortener.shorten(link));
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue