diff --git a/pom.xml b/pom.xml
index 59b3836..32fcfb9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -49,31 +49,31 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -128,12 +128,6 @@
[1.1.0, 2.0.0-SNAPSHOT)
compile
-
-
-
-
-
-
org.gcube.common.portal
portal-manager
@@ -211,9 +205,9 @@
${gwt.version}
-
-
-
+
+
+
compile
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
index 8d01087..2eff654 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewer.java
@@ -247,6 +247,8 @@ public class GeoportalDataViewer implements EntryPoint {
@Override
public void onLayerRendered(AddedLayerToMapEvent addedLayerToMapEvent) {
GWT.log("Fired AddedLayerToMapEvent "+addedLayerToMapEvent.getLayerItem());
+
+ //the parameter gid has been passed in the query string
if(paramGeonaItemID!=null && mainPanel.getDisplyedRecord()!=null) {
RecordDV record = mainPanel.getDisplyedRecord();
GWT.log("record instanceof ConcessioneDV: " +(record instanceof ConcessioneDV));
@@ -256,7 +258,7 @@ public class GeoportalDataViewer implements EntryPoint {
Double y = concessioneDV.getCentroidLat();
Coordinate transfCoord = MapUtils.transformCoordiante(new Coordinate(x, y), GeoportalDataViewerConstants.EPSG_4326, GeoportalDataViewerConstants.EPSG_3857);
GeoQuery select = olMapMng.toDataPointQuery(transfCoord);
- layerManager.getLayerManagerBus().fireEvent(new QueryDataEvent(select, transfCoord));
+ layerManager.getLayerManagerBus().fireEvent(new QueryDataEvent(select, transfCoord, record.getId()));
}
}
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
index 0e27303..e9528ab 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/LayerManager.java
@@ -93,6 +93,8 @@ public class LayerManager {
if(queryEvent.getGeoQuery()!=null) {
GeoQuery selectDataInfo = queryEvent.getGeoQuery();
+ Long recordId = queryEvent.getRecordId();
+
GWT.log("("+selectDataInfo.getX1()+","+selectDataInfo.getY1()+")("+selectDataInfo.getX2()+","+selectDataInfo.getY2()+")");
for (LayerObject layerObj : layerObjects){
@@ -162,7 +164,29 @@ public class LayerManager {
//USING ONLY THE FIRST FEATURE IN THE LIST
if(features!=null && features.size()>0) {
- feature = features.get(0);
+
+ //I need to show exaclty the feature with produc_id == recordId
+ if(recordId!=null) {
+ for (FeatureRow fRow : features) {
+ List productIdLst = fRow.getMapProperties().get("product_id");
+ String thePID = productIdLst.get(0);
+ try {
+ long productId = Long.parseLong(thePID);
+ if(productId==recordId) {
+ feature = fRow;
+ GWT.log("Found recorId == product_id with id: "+productId);
+ break;
+ }
+ }catch (Exception e) {
+ // TODO: handle exception
+ }
+ }
+ }
+
+ //If recordId not passed, I'm using the first feature returned
+ if(feature==null)
+ feature = features.get(0);
+
Map> entries = feature.getMapProperties();
String nome = "";
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java
index 45a1fbd..50b45f1 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/OLMapManager.java
@@ -66,7 +66,7 @@ public class OLMapManager {
// }
GeoQuery select = toDataPointQuery(coordinate);
- layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate));
+ layerManagerBus.fireEvent(new QueryDataEvent(select, coordinate, null));
}
@@ -188,7 +188,7 @@ 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()));
+ layerManagerBus.fireEvent(new QueryDataEvent(select, endExt.getCenter(), null));
}
}
else if(zoomStart!=null && zoomEnd!=null) {
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/QueryDataEvent.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/QueryDataEvent.java
index eb205b1..d319f26 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/QueryDataEvent.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/events/QueryDataEvent.java
@@ -17,15 +17,16 @@ public class QueryDataEvent extends GwtEvent {
public static Type TYPE = new Type();
private GeoQuery select;
private Coordinate oLCoordinate;
+ private Long recordId;
/**
* Instantiates a new table row selected event.
* @param coordinate
*/
- public QueryDataEvent(GeoQuery select, Coordinate coordinate) {
+ public QueryDataEvent(GeoQuery select, Coordinate coordinate, Long recordId) {
this.select = select;
this.oLCoordinate = coordinate;
-
+ this.recordId = recordId;
}
/**
@@ -37,6 +38,16 @@ public class QueryDataEvent extends GwtEvent {
public Type getAssociatedType() {
return TYPE;
}
+
+
+ /**
+ * Gets the record id.
+ *
+ * @return the record id
+ */
+ public Long getRecordId() {
+ return recordId;
+ }
/**
* Dispatch.
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
index ca25210..3bceeb3 100644
--- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java
@@ -156,7 +156,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
}
}
geoDAO.setSourceLayerObject(layerObject);
- LOG.info("Fo 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");
@@ -173,9 +173,8 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
*/
@Override
public List getUploadedImagesForId(String itemType, Long id, int maxImages) throws Exception{
- LOG.info("getConcessioneForId "+id+ "called");
+ LOG.info("getUploadedImagesForId "+id+ " called");
-
if(itemType==null)
throw new Exception("Invalid parameter. The itemType is null");
@@ -185,27 +184,29 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
List listUI = null;
try {
- LOG.info("Trying to get record for id "+id);
- SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
- ConcessioniManager concessioniManager = new ConcessioniManager();
- Concessione record = concessioniManager.getById(id+"");
- //AbstractRecordManager abmRecord = ManagerFactory.getByRecordID(id);
- Concessione concessione = null;
- if (record != null) {
-
- concessione = (Concessione) record;
-
- List images = concessione.getImmaginiRappresentative();
-
- if (images != null) {
- listUI = new ArrayList();
- 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);
+ SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
+
+ if(itemType.equalsIgnoreCase("concessione")) {
+
+ LOG.info("Trying to get concessione for id "+id);
+ ConcessioniManager concessioniManager = new ConcessioniManager();
+ Concessione concessione = concessioniManager.getById(id+"");
+ if (concessione != null) {
+ LOG.info("For id "+id+", got concessione "+concessione.getNome() +" from service");
+ List images = concessione.getImmaginiRappresentative();
+
+ if (images != null) {
+ listUI = new ArrayList();
+ 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 "+id+", got "+listUI.size() +" image/s");
}
- }
+ }else
+ throw new Exception("Concessione with id: "+id +" not available");
}
@@ -257,7 +258,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
}
if(concessionDV==null)
- throw new Exception("Concessione not retrieved");
+ throw new Exception("Concessione with id: "+id +" not available");
return concessionDV;
diff --git a/src/test/java/org/gcube/portlets/user/geoportaldataviewer/GetConcessione.java b/src/test/java/org/gcube/portlets/user/geoportaldataviewer/GetConcessione.java
index dc77e42..cfd9cf8 100644
--- a/src/test/java/org/gcube/portlets/user/geoportaldataviewer/GetConcessione.java
+++ b/src/test/java/org/gcube/portlets/user/geoportaldataviewer/GetConcessione.java
@@ -29,7 +29,12 @@ public class GetConcessione {
try {
LOG.info("Trying to get record for id "+id);
Concessione concessione = new ConcessioniManager().getById(id+"");
- LOG.info("Got concessione for id "+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);
}