From fb1ee8456f9415a7c91094e068706b2a0629cc67 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Thu, 9 Sep 2021 15:55:33 +0200 Subject: [PATCH] improvement display features --- .../client/GeoportalDataViewerConstants.java | 2 +- .../client/LayerManager.java | 341 ++++++++++++------ .../server/ConcessioneImageUtil.java | 10 +- .../server/ConcessioniMongoService.java | 49 +++ .../GeoportalDataViewerServiceImpl.java | 38 +- ...ssUtil.java => CheckAccessPolicyUtil.java} | 11 +- 6 files changed, 305 insertions(+), 146 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioniMongoService.java rename src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/{CheckAccessUtil.java => CheckAccessPolicyUtil.java} (87%) diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java index c0b87b4..e1117c0 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/GeoportalDataViewerConstants.java @@ -42,7 +42,7 @@ public class GeoportalDataViewerConstants { public static DateTimeFormat DT_FORMAT = DateTimeFormat.getFormat(ConvertToDataViewModel.DATE_FORMAT); - public static final int MAX_WFS_FEATURES = 3; // zero for no limit + public static final int MAX_WFS_FEATURES = 10; // zero for no limit public static final String NEW_LINE_BR = "
"; 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 5a5e2e6..bcf91c2 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 @@ -57,6 +57,7 @@ import com.google.gwt.user.client.EventListener; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlexTable; +import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.VerticalPanel; @@ -147,16 +148,15 @@ public class LayerManager { GWT.log("MAX_WFS_FEATURES is: " + GeoportalDataViewerConstants.MAX_WFS_FEATURES); // GeoportalDataViewerConstants.print("calling getDataResult"); - List listLO = new ArrayList(); - //for querying base layers + // for querying base layers listLO.addAll(mapBaseLayerObjects.values()); - - //for querying detail layers only in this case - if(olMap.getCurrentResolution()>() { @@ -171,7 +171,7 @@ public class LayerManager { public void onSuccess(List listGeonaDataObjects) { GWT.log("GeoNaDataObject's is/are " + listGeonaDataObjects.size()); - //GWT.log("GeoNaDataObject's: " + listGeonaDataObjects); + // GWT.log("GeoNaDataObject's: " + listGeonaDataObjects); // GeoportalDataViewerConstants.print("GeoNaDataObject's: // "+listGeonaDataObjects); @@ -179,7 +179,7 @@ public class LayerManager { return; FeatureRow feature = null; - + MapEventType sourceEvent = queryEvent.getSourceMapEventType(); // TODO SWTCH FOR EARCH ITEM TYPE @@ -223,11 +223,10 @@ public class LayerManager { // to a record/concessione (not centroid layer), // so calling show popuup info on detail layers if the // following events are true. - if (sourceEvent - .equals(MapEventType.MOUSE_CLICK) - && olMap.getCurrentZoomLevel() > OLMapManager.QUERY_MIN_ZOOM_LEVEL) { - - //Here I need to pass only the visible layers + if (sourceEvent.equals(MapEventType.MOUSE_CLICK) && olMap + .getCurrentZoomLevel() > OLMapManager.QUERY_MIN_ZOOM_LEVEL) { + + // Here I need to pass only the visible layers showPopupInfoForLayer(listGeonaDataObjects, queryEvent.getQueryClickExtent()); } @@ -244,8 +243,8 @@ public class LayerManager { GWT.log("the product id is: " + theProductId); // Displaying popup info for centroid layer - if (sourceEvent - .equals(MapEventType.MOUSE_CLICK) || sourceEvent.equals(MapEventType.ADDED_CENTROID_LAYER_TO_MAP)){ + if (sourceEvent.equals(MapEventType.MOUSE_CLICK) + || sourceEvent.equals(MapEventType.ADDED_CENTROID_LAYER_TO_MAP)) { showPopupInfoForCentroidLayer(geoNaDataObject, feature, queryEvent.getQueryClickExtent().getCenter()); } @@ -271,7 +270,8 @@ public class LayerManager { layer.getLayerName(), layer.getWmsLink(), false, false, layer.getLayerUUID(), true, OLMapManager.LAYER_DETAIL_MIN_RESOLUTION, - OLMapManager.LAYER_DETAIL_MAX_RESOLUTION,layer.getRefersTo()); + OLMapManager.LAYER_DETAIL_MAX_RESOLUTION, + layer.getRefersTo()); } } @@ -308,7 +308,7 @@ public class LayerManager { } }); } - + public void removeAllDetailLayers() { mapDetailLayerObjects.clear(); olMap.removeAllDetailLayers(); @@ -343,21 +343,22 @@ public class LayerManager { /** * Adds the layer. * - * @param geonaItemType the geona item type - * @param layerTitle the layer title - * @param layerName the layer name - * @param wmsLink the wms link - * @param isBase the is base - * @param displayInLayerSwitcher the display in layer switcher - * @param UUID the uuid - * @param asDetailLayer the as detail layer - * @param minResolution the min resolution - * @param maxResolution the max resolution + * @param geonaItemType the geona item type + * @param layerTitle the layer title + * @param layerName the layer name + * @param wmsLink the wms link + * @param isBase the is base + * @param displayInLayerSwitcher the display in layer switcher + * @param UUID the uuid + * @param asDetailLayer the as detail layer + * @param minResolution the min resolution + * @param maxResolution the max resolution * @param refersToBaseConcessione the refers to base concessione */ public void addLayer(final String geonaItemType, final String layerTitle, final String layerName, final String wmsLink, final boolean isBase, final boolean displayInLayerSwitcher, final String UUID, - final boolean asDetailLayer, Double minResolution, Double maxResolution, BaseConcessioneDV refersToBaseConcessione) { + final boolean asDetailLayer, Double minResolution, Double maxResolution, + BaseConcessioneDV refersToBaseConcessione) { // final LayoutContainer westPanel = (LayoutContainer) layersPanel.getParent(); // @@ -398,30 +399,30 @@ public class LayerManager { displayInLayerSwitcher, (ArrayList) geoInfoWMS.getStyles().getGeoStyles(), geoInfoWMS.getWmsRequest(), false, geoInfoWMS.getMapWMSNoStandard(), geoInfoWMS.isNcWMS(), UUID, geoInfoWMS.getZAxis(), minResolution, maxResolution); - + LayerObject lo = new LayerObject(); lo.setLayerItem(layerItem); lo.setItemType(geonaItemType); lo.setSourceConcessione(refersToBaseConcessione); - String key = layerItem.getName(); //should be unique - //layerObjects.put(key, lo); - - if(!asDetailLayer) { - //is a base layer + String key = layerItem.getName(); // should be unique + // layerObjects.put(key, lo); + + if (!asDetailLayer) { + // is a base layer LayerObject blo = mapBaseLayerObjects.get(key); - if(blo==null) { + if (blo == null) { olMap.addWMSLayer(layerItem); mapBaseLayerObjects.put(key, lo); - }else { + } else { GWT.log("Skipping base layer " + key + " already added to Map"); } - }else { + } else { LayerObject dlo = mapDetailLayerObjects.get(key); - if(dlo==null) { + if (dlo == null) { mapDetailLayerObjects.put(key, lo); olMap.addWMSDetailLayer(layerItem); - }else { + } else { GWT.log("Skipping detail layer " + key + " already added to Map"); } } @@ -520,98 +521,210 @@ public class LayerManager { * @param feature the feature * @param onFailureCenterTo the on failure center to */ - public void showPopupInfoForLayer(List listGeoNaDataObject, - ExtentWrapped queryClick) { - + public void showPopupInfoForLayer(List listGeoNaDataObject, ExtentWrapped queryClick) { + ScrollPanel scrollPanel = new ScrollPanel(); - VerticalPanel vpPanel = new VerticalPanel(); - scrollPanel.add(vpPanel); - + FlowPanel flowPanel = new FlowPanel(); + scrollPanel.add(flowPanel); + String prevConcessioneName = ""; for (GeoNaSpatialQueryResult geoNaSpatialQueryResult : listGeoNaDataObject) { - - GWT.log("baseLayerFromISProfile.getName() :"+baseLayerFromISProfile.getName()); - LayerObject lo = geoNaSpatialQueryResult.getSourceLayerObject(); - LayerItem sourceLI = lo.getLayerItem(); - - String layerSourceName = sourceLI.getName(); - - //skipping centroid layer - if(layerSourceName==null || layerSourceName.compareToIgnoreCase(baseLayerFromISProfile.getName())==0) { - continue; - } - - String nomeConcessione = lo.getSourceConcessione().getNome(); - if(prevConcessioneName.compareTo(nomeConcessione)!=0) { - String concessioneIntro = StringUtil.ellipsize(lo.getSourceConcessione().getNome(), 40); - Heading heading = new Heading(4, concessioneIntro); - heading.getElement().getStyle().setMarginBottom(10, Unit.PX); - vpPanel.add(heading); - HTML subText = new HTML("

Layers and Properties

"); - vpPanel.add(subText); - } - - prevConcessioneName = nomeConcessione; - - Label layerLabel = new Label(); - layerLabel.setType(LabelType.INFO); - - layerLabel.setText(layerSourceName); - layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX); - layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX); - vpPanel.add(layerLabel); - - List features = geoNaSpatialQueryResult.getFeatures(); - - if (features == null || features.isEmpty()) { - FlexTable flex = new FlexTable(); - flex.setCellPadding(1); - flex.setCellSpacing(1); - flex.getElement().addClassName("table-feature"); - flex.setHTML(0, 0, new HTML("No data available").toString()); - vpPanel.add(flex); - continue; - //olMap.showPopup(vpPanel.toString(), onFailureCenterTo); - } - - for (FeatureRow feature : features) { + try { + GWT.log("baseLayerFromISProfile.getName() :" + baseLayerFromISProfile.getName()); + LayerObject lo = geoNaSpatialQueryResult.getSourceLayerObject(); + LayerItem sourceLI = lo.getLayerItem(); + + String layerSourceName = sourceLI.getName(); + + // skipping centroid layer + if (layerSourceName == null + || layerSourceName.compareToIgnoreCase(baseLayerFromISProfile.getName()) == 0) { + continue; + } + + String nomeConcessione = lo.getSourceConcessione().getNome(); + if (prevConcessioneName.compareTo(nomeConcessione) != 0) { + String concessioneIntro = StringUtil.ellipsize(lo.getSourceConcessione().getNome(), 40); + Heading heading = new Heading(4, concessioneIntro); + heading.getElement().getStyle().setMarginBottom(10, Unit.PX); + flowPanel.add(heading); + HTML subText = new HTML( + "

Layers and Properties

"); + flowPanel.add(subText); + } + + prevConcessioneName = nomeConcessione; + + Label layerLabel = new Label(); + layerLabel.setType(LabelType.INFO); + + layerLabel.setText(layerSourceName); + layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX); + layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX); + flowPanel.add(layerLabel); + + List features = geoNaSpatialQueryResult.getFeatures(); + if (features == null || features.isEmpty()) { + FlexTable flex = new FlexTable(); + flex.setCellPadding(1); + flex.setCellSpacing(1); + flex.getElement().addClassName("table-feature"); + flex.setHTML(0, 0, new HTML("No data available").toString()); + flowPanel.add(flex); + continue; + // olMap.showPopup(vpPanel.toString(), onFailureCenterTo); + } + + GWT.log("Displaying "+features.size() + " features"); FlexTable intFlex = new FlexTable(); intFlex.setCellPadding(1); intFlex.setCellSpacing(1); intFlex.getElement().addClassName("table-feature"); - intFlex.setHTML(0, 0, new HTML("Feature Id").toString()); - intFlex.setHTML(1, 0, new HTML(feature.getId()).toString()); - - // Showing properties belonging to concessioni centroid layer - Map> entries = feature.getMapProperties(); - - if (entries.size() == 0) { - intFlex.setHTML(1, 1, new HTML("No property available").toString()); - } - int j = 1; - for (String key : entries.keySet()) { - List theValues = entries.get(key); - String valueToDisplay = ""; - for (String value : theValues) { - valueToDisplay+=value+", "; - + + int i = 0; + for (FeatureRow feature : features) { + + intFlex.setHTML(i + 1, 0, new HTML(feature.getId()).toString()); + + // Showing properties belonging to concessioni layer + Map> entries = feature.getMapProperties(); + + if (entries.size() == 0) { + //Adding this row to show "no property" for feature + //intFlex.setHTML(i + 1, 1, new HTML("No property").toString()); } - valueToDisplay = valueToDisplay.substring(0,valueToDisplay.length()-2); - intFlex.setHTML(0, j, new HTML(key).toString()); - intFlex.setHTML(1, j, new HTML(valueToDisplay).toString()); - j++; - + int j = 0; + for (String key : entries.keySet()) { + List theValues = entries.get(key); + String valueToDisplay = ""; + for (String value : theValues) { + valueToDisplay += value + ", "; + + } + valueToDisplay = valueToDisplay.substring(0, valueToDisplay.length() - 2); + + // adding the keys only of first feature row. They are equal for all features + // (beloning to same layer). + if (i == 0) + intFlex.setHTML(0, j + 1, new HTML(key).toString()); + + intFlex.setHTML(i + 1, j + 1, new HTML(valueToDisplay).toString()); + j++; + + } + i++; } - - vpPanel.add(intFlex); + flowPanel.add(intFlex); + } catch (Exception e) { + GeoportalDataViewerConstants.printJs("Error: "+e.getMessage()); } } olMap.showPopup(scrollPanel.toString(), queryClick.getCenter()); } + +// /** +// * Show popup info for layer. +// * +// * @param geoNaDataObject the geo na data object +// * @param feature the feature +// * @param onFailureCenterTo the on failure center to +// */ +// public void showPopupInfoForLayer(List listGeoNaDataObject, +// ExtentWrapped queryClick) { +// +// ScrollPanel scrollPanel = new ScrollPanel(); +// VerticalPanel vpPanel = new VerticalPanel(); +// scrollPanel.add(vpPanel); +// +// String prevConcessioneName = ""; +// for (GeoNaSpatialQueryResult geoNaSpatialQueryResult : listGeoNaDataObject) { +// +// GWT.log("baseLayerFromISProfile.getName() :"+baseLayerFromISProfile.getName()); +// LayerObject lo = geoNaSpatialQueryResult.getSourceLayerObject(); +// LayerItem sourceLI = lo.getLayerItem(); +// +// String layerSourceName = sourceLI.getName(); +// +// //skipping centroid layer +// if(layerSourceName==null || layerSourceName.compareToIgnoreCase(baseLayerFromISProfile.getName())==0) { +// continue; +// } +// +// String nomeConcessione = lo.getSourceConcessione().getNome(); +// if(prevConcessioneName.compareTo(nomeConcessione)!=0) { +// String concessioneIntro = StringUtil.ellipsize(lo.getSourceConcessione().getNome(), 40); +// Heading heading = new Heading(4, concessioneIntro); +// heading.getElement().getStyle().setMarginBottom(10, Unit.PX); +// vpPanel.add(heading); +// HTML subText = new HTML("

Layers and Properties

"); +// vpPanel.add(subText); +// } +// +// prevConcessioneName = nomeConcessione; +// +// Label layerLabel = new Label(); +// layerLabel.setType(LabelType.INFO); +// +// layerLabel.setText(layerSourceName); +// layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX); +// layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX); +// vpPanel.add(layerLabel); +// +// List features = geoNaSpatialQueryResult.getFeatures(); +// +// if (features == null || features.isEmpty()) { +// FlexTable flex = new FlexTable(); +// flex.setCellPadding(1); +// flex.setCellSpacing(1); +// flex.getElement().addClassName("table-feature"); +// flex.setHTML(0, 0, new HTML("No data available").toString()); +// vpPanel.add(flex); +// continue; +// //olMap.showPopup(vpPanel.toString(), onFailureCenterTo); +// } +// +// for (FeatureRow feature : features) { +// +// FlexTable intFlex = new FlexTable(); +// intFlex.setCellPadding(1); +// intFlex.setCellSpacing(1); +// intFlex.getElement().addClassName("table-feature"); +// +// intFlex.setHTML(0, 0, new HTML("Feature Id").toString()); +// intFlex.setHTML(1, 0, new HTML(feature.getId()).toString()); +// +// // Showing properties belonging to concessioni centroid layer +// Map> entries = feature.getMapProperties(); +// +// if (entries.size() == 0) { +// intFlex.setHTML(1, 1, new HTML("No property available").toString()); +// } +// int j = 1; +// for (String key : entries.keySet()) { +// List theValues = entries.get(key); +// String valueToDisplay = ""; +// for (String value : theValues) { +// valueToDisplay+=value+", "; +// +// } +// valueToDisplay = valueToDisplay.substring(0,valueToDisplay.length()-2); +// intFlex.setHTML(0, j, new HTML(key).toString()); +// intFlex.setHTML(1, j, new HTML(valueToDisplay).toString()); +// j++; +// +// } +// +// vpPanel.add(intFlex); +// } +// } +// +// olMap.showPopup(scrollPanel.toString(), queryClick.getCenter()); +// +// } /** * Show popup info for centroid layer. diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioneImageUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioneImageUtil.java index 0fefc04..6e52f6a 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioneImageUtil.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioneImageUtil.java @@ -1,18 +1,14 @@ package org.gcube.portlets.user.geoportaldataviewer.server; -import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni; - import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; -import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.model.legacy.UploadedImage; import org.gcube.application.geoportalcommon.ConvertToDataViewModel; import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV; -import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,10 +50,8 @@ public class ConcessioneImageUtil { if (itemType.equalsIgnoreCase("concessione")) { LOG.info("Trying to get concessione for id " + itemId); - SessionUtil.getCurrentContext(httpServletRequest, true); - SessionUtil.getCurrentToken(httpServletRequest, true); - ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build(); - Concessione concessione = concessioniManager.getById(itemId); + ConcessioniMongoService cms = new ConcessioniMongoService(); + Concessione concessione = cms.getItemById(httpServletRequest, itemId); if (concessione != null) { LOG.info("For id " + itemId + ", got concessione " + concessione.getNome() + " from service"); List images = concessione.getImmaginiRappresentative(); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioniMongoService.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioniMongoService.java new file mode 100644 index 0000000..c3317db --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/ConcessioniMongoService.java @@ -0,0 +1,49 @@ +package org.gcube.portlets.user.geoportaldataviewer.server; + +import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni; + +import javax.servlet.http.HttpServletRequest; + +import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; +import org.gcube.application.geoportal.common.model.legacy.Concessione; +import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil; + + +/** + * The Class ConcessioniMongoService. + * + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it + * + * Sep 9, 2021 + */ +public class ConcessioniMongoService { + + + /** + * Instantiates a new concessioni mongo service, interface for client statefulMongoConcessioni. + */ + public ConcessioniMongoService() { + } + + + /** + * Gets the item by id. + * + * @param request the request + * @param mongoItemId the mongo item id + * @return the item by id + * @throws Exception the exception + */ + Concessione getItemById(HttpServletRequest request, String mongoItemId) throws Exception{ + SessionUtil.getCurrentContext(request, true); + SessionUtil.getCurrentToken(request, true); + //Obtain the client + ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build(); + //Returning item by Id + return concessioniManager.getById(mongoItemId); + } + + + + +} 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 ef37f91..a302db0 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 @@ -1,7 +1,5 @@ package org.gcube.portlets.user.geoportaldataviewer.server; -import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.statefulMongoConcessioni; - import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -9,7 +7,6 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import org.gcube.application.geoportal.client.legacy.ConcessioniManagerI; import org.gcube.application.geoportal.common.model.legacy.Concessione; import org.gcube.application.geoportal.common.model.legacy.LayerConcessione; import org.gcube.application.geoportalcommon.ConvertToDataViewModel; @@ -29,7 +26,7 @@ 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.util.CheckAccessUtil; +import org.gcube.portlets.user.geoportaldataviewer.server.util.CheckAccessPolicyUtil; import org.gcube.portlets.user.geoportaldataviewer.server.util.SessionUtil; import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult; import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject; @@ -145,6 +142,8 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme 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) { List concessioneIds = fRow.getMapProperties().get("product_id"); @@ -218,10 +217,9 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme if (itemType.equalsIgnoreCase("concessione")) { LOG.info("Trying to get concessione for id " + itemId); - SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); - SessionUtil.getCurrentToken(this.getThreadLocalRequest(), true); - ConcessioniManagerI concessioniManager = statefulMongoConcessioni().build(); - Concessione concessione = concessioniManager.getById(itemId); + ConcessioniMongoService cms = new ConcessioniMongoService(); + Concessione concessione = cms.getItemById(this.getThreadLocalRequest(), itemId); + BaseConcessioneDV baseConcessione = ConvertToDataViewModel.toBaseConcessione(concessione); if (concessione != null) { LOG.info("For id " + itemId + ", got concessione " + concessione.getNome() + " from service"); @@ -272,11 +270,15 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme try { LOG.info("Trying to get record for id " + mongoId); - SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); - SessionUtil.getCurrentToken(this.getThreadLocalRequest(), true); - // Obtain the client - ConcessioniManagerI manager = statefulMongoConcessioni().build(); - Concessione concessione = manager.getById(mongoId); +// SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true); +// SessionUtil.getCurrentToken(this.getThreadLocalRequest(), true); +// // Obtain the client +// ConcessioniManagerI manager = statefulMongoConcessioni().build(); +// Concessione concessione = manager.getById(mongoId); + + ConcessioniMongoService cms = new ConcessioniMongoService(); + Concessione concessione = cms.getItemById(this.getThreadLocalRequest(), mongoId); + LOG.info("Got concessione for mongoId: " + mongoId); if (concessione != null) { concessionDV = ConvertToDataViewModel.toConcessione(concessione); @@ -292,7 +294,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme LOG.info("Applying access policies for concessione " + mongoId + " returned by service"); LayerConcessioneDV layerPosizionamento = concessionDV.getPosizionamentoScavo(); if (layerPosizionamento != null) { - if (!CheckAccessUtil.isAccessible(layerPosizionamento.getPolicy(), userName)) { + if (!CheckAccessPolicyUtil.isAccessible(layerPosizionamento.getPolicy(), userName)) { concessionDV.setPosizionamentoScavo(null); } } @@ -301,7 +303,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme if (listLayersDV != null) { List accessibleListLayersDV = new ArrayList(); for (LayerConcessioneDV layerDV : listLayersDV) { - if (CheckAccessUtil.isAccessible(layerDV.getPolicy(), userName)) { + if (CheckAccessPolicyUtil.isAccessible(layerDV.getPolicy(), userName)) { accessibleListLayersDV.add(layerDV); } } @@ -310,14 +312,14 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme AbstractRelazioneScavoDV abstractRS = concessionDV.getAbstractRelazioneScavo(); if (abstractRS != null) { - if (!CheckAccessUtil.isAccessible(abstractRS.getPolicy(), userName)) { + if (!CheckAccessPolicyUtil.isAccessible(abstractRS.getPolicy(), userName)) { concessionDV.setAbstractRelazioneScavo(null); } } RelazioneScavoDV relazioneScavo = concessionDV.getRelazioneScavo(); if (relazioneScavo != null) { - if (!CheckAccessUtil.isAccessible(relazioneScavo.getPolicy(), userName)) { + if (!CheckAccessPolicyUtil.isAccessible(relazioneScavo.getPolicy(), userName)) { concessionDV.setRelazioneScavo(null); } } @@ -329,7 +331,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme // SHOWING ACESSIBLE IMAGES for (UploadedImageDV uploadedImageDV : immagini) { - if (CheckAccessUtil.isAccessible(uploadedImageDV.getPolicy(), userName)) { + if (CheckAccessPolicyUtil.isAccessible(uploadedImageDV.getPolicy(), userName)) { accessibleListImages.add(uploadedImageDV); } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessUtil.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessPolicyUtil.java similarity index 87% rename from src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessUtil.java rename to src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessPolicyUtil.java index 545528c..f4416d5 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessUtil.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/util/CheckAccessPolicyUtil.java @@ -1,13 +1,14 @@ package org.gcube.portlets.user.geoportaldataviewer.server.util; + /** - * The Class CheckAccessUtil. + * The Class CheckAccessPolicyUtil. * - * @author Francesco Mangiacrapa at ISTI-CNR (francesco.mangiacrapa@isti.cnr.it) + * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it * - * Sep 8, 2021 + * Sep 9, 2021 */ -public class CheckAccessUtil { +public class CheckAccessPolicyUtil { /** * The Enum ACCESS_POLICY. @@ -51,7 +52,7 @@ public class CheckAccessUtil { } /** - * Checks if is accessible. + * Checks if is accessible accoding to access policies * * @param policy the policy * @param myLogin the my login