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); }