diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LayerOrder.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LayerOrder.java index 472aaf5..5b325c0 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LayerOrder.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/LayerOrder.java @@ -28,8 +28,8 @@ public class LayerOrder { LAYER_OFFSET.put(LAYER_TYPE.BASE_MAP, 0); //Base OL or MapBox LAYER_OFFSET.put(LAYER_TYPE.CUSTOM_WMS_DETAIL, 70); //WMS custom Overlay. Es. Layer "Limiti Amministrativi" - LAYER_OFFSET.put(LAYER_TYPE.BASE_WMS, 140); // Index layers (i.e. centroids for UCD) - LAYER_OFFSET.put(LAYER_TYPE.WMS_DETAIL, 210); //Layer/s belonging to a Project (materialized layers. Ex. "Posizionamento Scavo") + LAYER_OFFSET.put(LAYER_TYPE.BASE_WMS, 210); // Index layers (i.e. centroids for UCD) + LAYER_OFFSET.put(LAYER_TYPE.WMS_DETAIL, 140); //Layer/s belonging to a Project (materialized layers. Ex. "Posizionamento Scavo") LAYER_OFFSET.put(LAYER_TYPE.VECTOR, 320); //Vector layer to show other info. Ex. Pointer with coordinates (x,y) in the Light OL Map. } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java index ef64d80..95fcbae 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/gis/OpenLayerMap.java @@ -1199,7 +1199,7 @@ public abstract class OpenLayerMap { public void fitToExtent(ol.Extent extent) { ViewFitOptions opt = new ViewFitOptions(); opt.setMaxZoom(16); - opt.setDuration(SET_CENTER_ANIMATED_DURATION*4); + opt.setDuration(SET_CENTER_ANIMATED_DURATION*5); map.getView().fit(extent, opt); } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java index 4cbc711..05efc6a 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/GeonaDataViewMainPanel.java @@ -210,14 +210,6 @@ public class GeonaDataViewMainPanel extends Composite { navListSearch.getElement().getFirstChildElement().setAttribute("disabled", "disabled"); -// List listUCDs = new ArrayList(); -// -// for (ItemFieldsResponse itemFieldsResponse : itemFieldsReponse) { -// listUCDs.add(itemFieldsResponse.getUseCaseDescriptorDV()); -// } -// -// Collections.sort(listUCDs); - for (final ItemFieldsResponse itemFieldResp : itemFieldsReponse) { UseCaseDescriptorDV ucd = itemFieldResp.getUseCaseDescriptorDV(); @@ -282,7 +274,9 @@ public class GeonaDataViewMainPanel extends Composite { @Override public void execute() { - searchFacilityPanel.getElement().getParentElement().getStyle().setOpacity(0.9); + searchFacilityPanel.getElement().getParentElement().addClassName("opacity-09"); + panelCustomOverlayLayers.getElement().getParentElement().addClassName("opacity-09"); + panelCrossFilteringLayers.getElement().getParentElement().addClassName("opacity-09"); } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/crossfiltering/CrossFilteringLayerPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/crossfiltering/CrossFilteringLayerPanel.java index 8ae6a78..5f3a8b2 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/crossfiltering/CrossFilteringLayerPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/client/ui/crossfiltering/CrossFilteringLayerPanel.java @@ -43,10 +43,6 @@ import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.HandlerManager; import com.google.gwt.http.client.URL; -import com.google.gwt.json.client.JSONArray; -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.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -57,10 +53,9 @@ import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Widget; import jsinterop.base.JsPropertyMap; -import ol.Coordinate; import ol.Extent; import ol.Feature; -import ol.OLFactory; +import ol.source.Vector; /** * The Class CrossFilteringLayerPanel. @@ -71,6 +66,8 @@ import ol.OLFactory; */ public class CrossFilteringLayerPanel extends Composite { + private static final double BBOX_OFFESET_ON_FEATURES = 18000.0; + private static final String ITEM_LABEL = "centroid"; public static String COLORSCALERANGE = "COLORSCALERANGE"; @@ -473,19 +470,19 @@ public class CrossFilteringLayerPanel extends Composite { @Override public void onSuccess(String response) { Feature[] features = OLGeoJSONUtil.readGeoJsonFeatures(MAP_PROJECTION.EPSG_4326, response); - + if (features != null) { int dataCount = features.length; panelResults.clear(); panelResults.add(new HTML("
")); - + FlexTable flexTable = new FlexTable(); String message = ""; if (dataCount <= 0) { - message = "No "+ITEM_LABEL+" found"; + message = "No " + ITEM_LABEL + " found"; } else { message = "Found " + dataCount; @@ -496,53 +493,46 @@ public class CrossFilteringLayerPanel extends Composite { resultMessage.setHTML(message); flexTable.setWidget(0, 0, resultMessage.asWidget()); panelResults.add(flexTable); - + try { - JSONObject jObject = (JSONObject) JSONParser.parseStrict(response); - JSONArray bbox = (JSONArray) jObject.get("bbox"); - double[] coords = new double[bbox.size()]; - for (int i = 0; i < bbox.size(); i++) { - JSONValue coord = bbox.get(i); - coords[i] = Double.parseDouble(coord.toString()); - } - - //Inverting coordinate to lat/long for EPSG:3857 Pseudo-Mercator - Coordinate lower = OLFactory.createCoordinate(coords[1], coords[0]); - Coordinate lowerCoord = MapUtils.transformCoordiante(lower, MAP_PROJECTION.EPSG_4326.getName(), - MAP_PROJECTION.EPSG_3857.getName()); - - Coordinate upper = OLFactory.createCoordinate(coords[3], coords[2]); - Coordinate upperCoord = MapUtils.transformCoordiante(upper, MAP_PROJECTION.EPSG_4326.getName(), - MAP_PROJECTION.EPSG_3857.getName()); - - final Extent transfExtent = new ExtentWrapped(lowerCoord.getX(), lowerCoord.getY(), upperCoord.getX(), upperCoord.getY()); - GWT.log("Zoom to selected - transf extent: "+transfExtent); - - - Button selectTo = new Button("Zoom to selected"); - selectTo.setType(ButtonType.DEFAULT); - selectTo.addClickHandler(new ClickHandler() { + if (features.length > 0) { + // Calculating Extend of the selected Features + Vector vector = new Vector(); + vector.addFeatures(features); + Extent theExtent = vector.getExtent(); + GWT.log("Extent from features is: " + theExtent); + theExtent = MapUtils.transformExtent(theExtent, MAP_PROJECTION.EPSG_4326.getName(), + MAP_PROJECTION.EPSG_3857.getName()); - @Override - public void onClick(ClickEvent event) { - applicationBus.fireEvent(new FitMapToExtentEvent(transfExtent)); - - } - }); - flexTable.setWidget(1,0,selectTo); - //panelResults.add(selectTo); - - }catch (Exception e) { + double bboxOffset = features.length>1?BBOX_OFFESET_ON_FEATURES:0; + + final Extent transfExtent = new ExtentWrapped(theExtent.getLowerLeftX() - bboxOffset, + theExtent.getLowerLeftY() - bboxOffset, theExtent.getUpperRightX() + bboxOffset, + theExtent.getUpperRightY() + bboxOffset); + GWT.log("Zoom to selected - transf extent: " + transfExtent); + + Button selectTo = new Button("Zoom to selected"); + selectTo.setTitle("Zoom to select centroids..."); + selectTo.setType(ButtonType.DEFAULT); + selectTo.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + applicationBus.fireEvent(new FitMapToExtentEvent(transfExtent)); + + } + }); + flexTable.setWidget(1, 0, selectTo); + } + + } catch (Exception e) { // TODO: handle exception } } - - - } }); } - + public static final BBOXDV fromGeoJSON(double[] coords) { BBOXDV toReturn = new BBOXDV(); toReturn.setMaxX(coords[0]); @@ -561,7 +551,6 @@ public class CrossFilteringLayerPanel extends Composite { return toReturn; } - /** * Load inner level. * diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/Geoportal_JSON_Mapper.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/Geoportal_JSON_Mapper.java deleted file mode 100644 index 70343ad..0000000 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/Geoportal_JSON_Mapper.java +++ /dev/null @@ -1,1032 +0,0 @@ -//package org.gcube.portlets.user.geoportaldataviewer.server; -// -//import java.util.ArrayList; -//import java.util.HashMap; -//import java.util.LinkedHashMap; -//import java.util.List; -//import java.util.function.Function; -// -//import org.bson.Document; -//import org.gcube.application.geoportal.client.utils.Serialization; -//import org.gcube.application.geoportal.common.model.document.access.Access; -//import org.gcube.application.geoportal.common.model.document.access.AccessPolicy; -//import org.gcube.application.geoportalcommon.ConvertToDataValueObjectModel; -//import org.gcube.application.geoportalcommon.geoportal.access.GeportalCheckAccessPolicy; -//import org.gcube.application.geoportalcommon.geoportal.serdes.Payload; -//import org.gcube.application.geoportalcommon.shared.geoportal.config.FilePathDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.config.GcubeProfileDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.BBOXDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.FilesetDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV; -//import org.gcube.application.geoportalcommon.shared.geoportal.ucd.GEOPORTAL_CONFIGURATION_TYPE; -//import org.gcube.application.geoportalcommon.shared.geoportal.view.ProjectView; -//import org.gcube.application.geoportalcommon.shared.geoportal.view.SectionView; -//import org.gcube.application.geoportalcommon.shared.geoportal.view.SubDocumentView; -//import org.gcube.portlets.user.geoportaldataviewer.server.GeoportalDataViewerServiceImpl.ImageDetector; -//import org.gcube.portlets.user.geoportaldataviewer.server.util.URLParserUtil; -//import org.gcube.portlets.user.geoportaldataviewer.shared.MetaDataProfileBeanExt; -//import org.gcube.portlets.user.geoportaldataviewer.shared.ProjectEdit; -//import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetaDataProfileBean; -//import org.gcube.portlets.widgets.mpformbuilder.shared.metadata.MetadataFieldWrapper; -//import org.json.JSONArray; -//import org.json.JSONObject; -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -// -//import com.google.gson.Gson; -//import com.google.gson.GsonBuilder; -//import com.google.gson.JsonObject; -//import com.google.gson.JsonParser; -//import com.jayway.jsonpath.JsonPath; -//import com.jayway.jsonpath.spi.json.JsonOrgJsonProvider; -// -///** -// * The Class Geoportal_JSON_Mapper. -// * -// * @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it -// * -// * Oct 24, 2022 -// */ -//public class Geoportal_JSON_Mapper { -// -// public static final String _PAYLOADS = "_payloads"; -// -// public static final String _MATERIALIZATIONS = "_materializations"; -// -// public static final String _TYPE_GCUBE_SDI_LAYER = "gcube-sdi-layer"; -// -// private static final Logger LOG = LoggerFactory.getLogger(Geoportal_JSON_Mapper.class); -// -// public static final String FILESET = "fileset"; -// -// public static final String _OGC_LINKS = "_ogcLinks"; -// -// public static final String _BBOX = "_bbox"; -// -// public static final String _TYPE = "_type"; -// -// public static final String JSON_$_POINTER = "$"; -// -// public static final String _THEDOCUMENT = "_theDocument"; -// -// public static ProjectEdit loadProjectEdit(ProjectDV theProjectDV, String scope, String username) throws Exception { -// -// String theWholeProjectAsJSON = theProjectDV.getTheDocument().getDocumentAsJSON(); -// -// LOG.debug("theProjectDV as JSON: " + theWholeProjectAsJSON); -// LOG.debug("theProjectDV as MAP: " + theProjectDV.getTheDocument().getDocumentAsMap()); -// -// ProjectEdit projectView = new ProjectEdit(); -// projectView.setTheProjectDV(theProjectDV); -// -// LinkedHashMap> linkedMap_UCDId_gCubeProfiles = GcubeProfilesPerUCDIdCache -// .get(scope); -// -// // NO UCD defined, applying default -// if (linkedMap_UCDId_gCubeProfiles.size() == 0) { -// LOG.warn("No " + GEOPORTAL_CONFIGURATION_TYPE.gcube_profiles + " found in the UCD"); -// LOG.info("Applying default business logic to display the project"); -// SectionView sectionView = new SectionView(); -// sectionView.setSectionTitle("Document"); -// Document sectionDoc = Document.parse(theProjectDV.getTheDocument().getDocumentAsJSON()); -// -// // Creating one Project with one SectionView and SubDocumentView -// String wholeSectionDoc = sectionDoc.toJson(); -// -// List listFiles = new ArrayList(); -// -// // Reading Fileset _payloads -// String filesetJSONPath = String.format("%s.%s", JSON_$_POINTER, FILESET); -// List listPayloads = readPayloadsForFileset(filesetJSONPath, wholeSectionDoc); -// FilesetDV filesetDV = new FilesetDV(); -// filesetDV.setGcubeProfileFieldName(FILESET); -// for (Payload payload : listPayloads) { -// PayloadDV payloadDV = ConvertToDataValueObjectModel.toPayloadDV(payload); -// filesetDV.addPayloadDV(payloadDV); -// listFiles.add(filesetDV); -// } -// } -// -// List listProfilesBean = linkedMap_UCDId_gCubeProfiles -// .get(theProjectDV.getProfileID()); -// -// com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// -// // LinkedHashMap mapOfProfilesBeanExt = new -// // LinkedHashMap(); -// -// ArrayList listOfProfilesBeanExt = new ArrayList(); -// -// // Reading the Project according to list of Profile defined in the UCD -// for (GcubeProfilesMetadataForUCD gcubeProfileMetaForUCD : listProfilesBean) { -// -// GcubeProfileDV gcubeProfileDV = gcubeProfileMetaForUCD.getGcubeProfile(); -//// SectionView sectionView = new SectionView(); -//// sectionView.setSectionTitle(gcubeProfileDV.getSectionTitle()); -// -// System.out.println("\n\n##### Sto creando la sezione: " + gcubeProfileDV.getSectionTitle()); -// LOG.debug("\n\nThe profile is: " + gcubeProfileDV); -// // Building JSON/section full PATH and section name -// String sectionJSONPath = ""; -// String parentPathFromProfile = gcubeProfileDV.getParentName() == null ? "" : gcubeProfileDV.getParentName(); -// String theSectionName = gcubeProfileDV.getSectionName(); -// -// if (theSectionName.compareTo(JSON_$_POINTER) == 0 || theSectionName.compareTo(JSON_$_POINTER + ".") == 0) { -// sectionJSONPath = JSON_$_POINTER; -// theSectionName = ""; -// } else { -// sectionJSONPath = String.format("%s%s", -// parentPathFromProfile.endsWith(".") ? parentPathFromProfile : parentPathFromProfile + ".", -// theSectionName); -// } -// -// LOG.debug("The sectionJSONPath is: " + sectionJSONPath); -// -// JsonPath theSectionJsonPath = null; -// Object data = null; -// try { -// theSectionJsonPath = JsonPath.compile(sectionJSONPath); -// data = theSectionJsonPath.read(theWholeProjectAsJSON, configuration); -// } catch (Exception e) { -// LOG.warn("Error on searching the section " + sectionJSONPath + " in the JSON Project: " -// + theWholeProjectAsJSON); -// continue; -// } -// -// LOG.debug("Data is instace of: " + data.getClass()); -// LOG.debug("data to string: " + data.toString()); -// -// // Splitting the General Document in bson.Document according to list of -// // GcubeProfiles -// List listBSONDocument = new ArrayList(); -// if (data instanceof org.json.JSONObject) { -// String jsonString = data.toString(); -// LOG.debug("the JSON to string: " + jsonString); -// Document sectionDoc = Document.parse(jsonString); -// listBSONDocument.add(sectionDoc); -// -// } else if (data instanceof org.json.JSONArray) { -// org.json.JSONArray dataArray = (org.json.JSONArray) data; -// for (int i = 0; i < dataArray.length(); i++) { -// String jsonString = dataArray.get(i).toString(); -// LOG.debug("the array " + i + " JSON to string: " + jsonString); -// Document sectionDoc = Document.parse(jsonString); -// listBSONDocument.add(sectionDoc); -// } -// } -// -// LOG.debug("Result for " + gcubeProfileDV.getSectionName() + " is: " + listBSONDocument); -// List theProfileBeans = gcubeProfileMetaForUCD.getListMetadataProfileBean(); -// MetaDataProfileBean theProfileBean = theProfileBeans.get(0); -// -// // For each bson.Document filling the MetaDataProfileBean and its file -// for (int i = 0; i < listBSONDocument.size(); i++) { -// -// System.out.println("DOCUMENT number " + i + " of the section: " + theProfileBean.getTitle()); -// MetaDataProfileBeanExt theProfileBeanExt = new MetaDataProfileBeanExt(); -// theProfileBeanExt.setCategories(theProfileBean.getCategories()); -// theProfileBeanExt.setTitle(theProfileBean.getTitle()); -// theProfileBeanExt.setType(theProfileBean.getType()); -// -//// System.out.println("\nPRINTING PROJECT VIEW ON START: "); -//// for (int j = 0; j < listOfProfilesBeanExt.size(); j++) { -//// MetaDataProfileBeanExt metaDataProfileBeanExt = listOfProfilesBeanExt.get(j); -//// System.out.println("MetaDataProfileBeanExt index: " + j + " "+metaDataProfileBeanExt.getType() +" "+metaDataProfileBeanExt.hashCode()); -//// int z = 0; -//// for (MetadataFieldWrapper mfw : metaDataProfileBeanExt.getMetadataFields()) { -//// System.out.println("\t MetadataFieldWrapper index: " + z++ + " " + mfw); -//// } -//// } -// -// Document fromSectionDoc = listBSONDocument.get(i); -// LOG.debug("\n\nNew section DOC for index " + i + " is: " -// + new JSONObject(fromSectionDoc.toJson()).toString(2)); -// // Creating the corresponding MetaDataProfileBeanExt for each section -// -// // Reading policy and license statically -// // eg. "_access":{"_policy":"OPEN","_license":"CC0-1.0"}} -// Document docAccess = null; -// Access access = null; -// try { -// docAccess = fromSectionDoc.get("_access", Document.class); -// System.out.println("docAccess is: " + docAccess); -// access = new Access(); -// access.setPolicy(AccessPolicy.valueOf(docAccess.getString("_policy"))); -// access.setLicense(docAccess.getString("_license")); -// // Access. access.get("_policy"); -// // access.get("_license"); -// System.out.println("access is: " + access); -// } catch (Exception e) { -// e.printStackTrace(); -// } -// -// // List copyOfMetadataFields = new -// // ArrayList(theProfileBean.getMetadataFields()); -// // int forIndex = 0; -// -// List cloneListOfMFW = cloneList(theProfileBean.getMetadataFields()); -// -// for (MetadataFieldWrapper metadataField : cloneListOfMFW) { -// -// String theFieldName = metadataField.getFieldId() != null ? metadataField.getFieldId() -// : metadataField.getFieldName(); -// LOG.debug("reading theFieldName: " + theFieldName); -// Object theOBJFieldValue = fromSectionDoc.get(theFieldName); -// metadataField.setCurrentValue(theOBJFieldValue + ""); -// -// if (access != null) { -// if (theFieldName.equalsIgnoreCase("policy")) { -// metadataField.setCurrentValue(access.getPolicy().name()); -// } else if (theFieldName.equalsIgnoreCase("licenseID")) { -// metadataField.setCurrentValue(access.getLicense()); -// } -// } -// // copyOfMetadataFields.set(forIndex++, metadataField); -// } -// -// LOG.debug("Before assigning it Metadata fields are: " + cloneListOfMFW); -// -// theProfileBeanExt.setMetadataFields(new ArrayList(cloneListOfMFW)); -// LOG.debug("Metadata fields are: " + theProfileBeanExt.getMetadataFields()); -// -// // Reading filePaths -// List filePaths = gcubeProfileDV.getFilePaths(); -// List listLayers = new ArrayList(); -// -// // READING fileset* field ACCORDING TO filePaths OF THE 'gcubeProfiles' CONFIG -// if (filePaths != null) { -// String fromSectionDocJSON = fromSectionDoc.toJson(); -// List listFiles = new ArrayList(); -//// List listLayers = new ArrayList(); -// for (FilePathDV filePath : filePaths) { -// -// // Reading Fileset _payloads -// String filesetJSONPath = String.format("%s.%s", JSON_$_POINTER, filePath.getFieldName()); -// List listPayloads = readPayloadsForFileset(filesetJSONPath, fromSectionDocJSON); -// FilesetDV filesetDV = new FilesetDV(); -// filesetDV.setGcubeProfileFieldName(filePath.getGcubeProfileFieldName()); -// for (Payload payload : listPayloads) { -// PayloadDV payloadDV = ConvertToDataValueObjectModel.toPayloadDV(payload); -// filesetDV.addPayloadDV(payloadDV); -// -// } -// listFiles.add(filesetDV); -// -// // Reading Fileset _materializations -// // listLayers = readGcubeSDILayersForFileset(filesetJSONPath, -// // fromSectionDocJSON); -// // theProfileBeanExt.set -// -// } -// -// theProfileBeanExt.setListFileset(listFiles); -// } -// -// System.out.println("\nputting theProfileBeanExt: " + theProfileBeanExt); -// listOfProfilesBeanExt.add(theProfileBeanExt); -// -//// System.out.println("\nPRINTING PROJECT VIEW ON END: "); -//// for (int j = 0; j < listOfProfilesBeanExt.size(); j++) { -//// MetaDataProfileBeanExt metaDataProfileBeanExt = listOfProfilesBeanExt.get(j); -//// System.out.println("MetaDataProfileBeanExt index: " + j + " "+metaDataProfileBeanExt.getType() +" "+metaDataProfileBeanExt.hashCode()); -//// int z = 0; -//// for (MetadataFieldWrapper mfw : metaDataProfileBeanExt.getMetadataFields()) { -//// System.out.println("\t MetadataFieldWrapper index: " + z++ + " " + mfw); -//// } -//// } -//// -//// System.out.println(listProfileBeansExt.get(listProfileBeansExt.size()-1)); -// // Geoportal_JSON_Mapper.prettyPrintProjectEdit(projectView); -// } -// -// } -// -// projectView.setTheProfileBeans(listOfProfilesBeanExt); -// -// // Geoportal_JSON_Mapper.prettyPrintProjectEdit(projectView); -// -// return projectView; -// } -// -// public static List cloneList(List list) { -// List listCloned = new ArrayList(list.size()); -// -// Function cloneWrapper = (mfw) -> { -// -// MetadataFieldWrapper newMfw = new MetadataFieldWrapper(); -// newMfw.setAsGroup(mfw.getAsGroup()); -// newMfw.setAsTag(mfw.getAsTag()); -// newMfw.setCurrentValue(mfw.getCurrentValue()); -// newMfw.setDefaultValue(mfw.getDefaultValue()); -// newMfw.setFieldId(mfw.getFieldId()); -// newMfw.setFieldName(mfw.getFieldName()); -// newMfw.setFieldNameFromCategory(mfw.getFieldNameFromCategory()); -// newMfw.setMandatory(mfw.getMandatory()); -// newMfw.setMaxOccurs(mfw.getMaxOccurs()); -// newMfw.setMultiSelection(mfw.isMultiSelection()); -// newMfw.setNote(mfw.getNote()); -// newMfw.setOwnerCategory(mfw.getOwnerCategory()); -// newMfw.setType(mfw.getType()); -// newMfw.setValidator(mfw.getValidator()); -// newMfw.setVocabulary(mfw.getVocabulary()); -// -// return newMfw; -// -// }; -// -// for (MetadataFieldWrapper item : list) { -// MetadataFieldWrapper cloned = cloneWrapper.apply(item); -// listCloned.add(cloned); -// } -// return listCloned; -// } -// -// /** -// * Load project view. -// * -// * @param theProjectDV the the project DV -// * @param scope the scope -// * @param username the username -// * @return the project view -// * @throws Exception the exception -// */ -// public static ProjectView loadProjectView(ProjectDV theProjectDV, String scope, String username) throws Exception { -// -// String theWholeProjectAsJSON = theProjectDV.getTheDocument().getDocumentAsJSON(); -// -// LOG.debug("theProjectDV as JSON: " + theWholeProjectAsJSON); -// LOG.debug("theProjectDV as MAP: " + theProjectDV.getTheDocument().getDocumentAsMap()); -// -// ProjectView projectView = new ProjectView(); -// projectView.setTheProjectDV(theProjectDV); -// -// LinkedHashMap> linkedMap_UCDId_gCubeProfiles = GcubeProfilesPerUCDIdCache -// .get(scope); -// -// // NO UCD defined, applying default -// if (linkedMap_UCDId_gCubeProfiles.size() == 0) { -// LOG.warn("No " + GEOPORTAL_CONFIGURATION_TYPE.gcube_profiles + " found in the UCD"); -// LOG.info("Applying default business logic to display the project"); -// SectionView sectionView = new SectionView(); -// sectionView.setSectionTitle("Document"); -// SubDocumentView subDocumentView = new SubDocumentView(); -// -// Document sectionDoc = Document.parse(theProjectDV.getTheDocument().getDocumentAsJSON()); -// boolean isAccessibleSection = isAccessibleSectionAccordingToPolicy(sectionDoc, JSON_$_POINTER, username); -// -// // If is accessible -// if (isAccessibleSection) { -// -// // Creating one Project with one SectionView and SubDocumentView -// String wholeSectionDoc = sectionDoc.toJson(); -// subDocumentView.setMetadataAsJSON(wholeSectionDoc); -// -// List listFiles = new ArrayList(); -// List listImages = new ArrayList(); -// List listLayers = new ArrayList(); -// -// // Reading Fileset _payloads -// String filesetJSONPath = String.format("%s.%s", JSON_$_POINTER, FILESET); -// List listPayloads = readPayloadsForFileset(filesetJSONPath, wholeSectionDoc); -// FilesetDV filesetDV = new FilesetDV(); -// filesetDV.setGcubeProfileFieldName(FILESET); -// for (Payload payload : listPayloads) { -// PayloadDV payloadDV = ConvertToDataValueObjectModel.toPayloadDV(payload); -// filesetDV.addPayloadDV(payloadDV); -// boolean isImage = ImageDetector.isImage(payload.getMimetype()); -// -// if (isImage) { -// listImages.add(filesetDV); -// } else { -// listFiles.add(filesetDV); -// } -// } -// -// subDocumentView.setListImages(listImages); -// subDocumentView.setListFiles(listFiles); -// -// // Reading Fileset _materializations / layers -// listLayers = readGcubeSDILayersForFileset(filesetJSONPath, wholeSectionDoc); -// -// subDocumentView.setListLayers(listLayers); -// sectionView.addSubDocument(subDocumentView); -// projectView.addSectionView(sectionView); -// -// } -// -// } -// -// List listProfilesBean = linkedMap_UCDId_gCubeProfiles -// .get(theProjectDV.getProfileID()); -// -// com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// -// // Reading the Project according to list of Profile defined in the UCD -// for (GcubeProfilesMetadataForUCD gcubeProfileMetaForUCD : listProfilesBean) { -// -// GcubeProfileDV gcubeProfileDV = gcubeProfileMetaForUCD.getGcubeProfile(); -// SectionView sectionView = new SectionView(); -// sectionView.setSectionTitle(gcubeProfileDV.getSectionTitle()); -// LOG.debug("\n\nThe profile is: " + gcubeProfileDV); -// // Building JSON/section full PATH and section name -// String sectionJSONPath = ""; -// String parentPathFromProfile = gcubeProfileDV.getParentName() == null ? "" : gcubeProfileDV.getParentName(); -// String theSectionName = gcubeProfileDV.getSectionName(); -// -// if (theSectionName.compareTo(JSON_$_POINTER) == 0 || theSectionName.compareTo(JSON_$_POINTER + ".") == 0) { -// sectionJSONPath = JSON_$_POINTER; -// theSectionName = ""; -// } else { -// sectionJSONPath = String.format("%s%s", -// parentPathFromProfile.endsWith(".") ? parentPathFromProfile : parentPathFromProfile + ".", -// theSectionName); -// } -// -// LOG.debug("The sectionJSONPath is: " + sectionJSONPath); -// -// JsonPath theSectionJsonPath = null; -// Object data = null; -// try { -// theSectionJsonPath = JsonPath.compile(sectionJSONPath); -// data = theSectionJsonPath.read(theWholeProjectAsJSON, configuration); -// } catch (Exception e) { -// LOG.warn("Error on searching the section " + sectionJSONPath + " in the JSON Project: " -// + theWholeProjectAsJSON); -// continue; -// } -// -// LOG.debug("Data is instace of: " + data.getClass()); -// LOG.debug("data to string: " + data.toString()); -// -// // Splitting the General Document in bson.Document according to list of -// // GcubeProfiles -// List listBSONDocument = new ArrayList(); -// if (data instanceof org.json.JSONObject) { -// String jsonString = data.toString(); -// LOG.debug("the JSON to string: " + jsonString); -// Document sectionDoc = Document.parse(jsonString); -// boolean isAccessibleSection = isAccessibleSectionAccordingToPolicy(sectionDoc, sectionJSONPath, -// username); -// if (isAccessibleSection) { -// listBSONDocument.add(sectionDoc); -// } -// -// } else if (data instanceof org.json.JSONArray) { -// org.json.JSONArray dataArray = (org.json.JSONArray) data; -// for (int i = 0; i < dataArray.length(); i++) { -// String jsonString = dataArray.get(i).toString(); -// LOG.debug("the array " + i + " JSON to string: " + jsonString); -// Document sectionDoc = Document.parse(jsonString); -// boolean isAccessibleSection = isAccessibleSectionAccordingToPolicy(sectionDoc, sectionJSONPath, -// username); -// if (isAccessibleSection) { -// listBSONDocument.add(sectionDoc); -// } -// -// } -// } -// -// LOG.debug("Result for " + gcubeProfileDV.getSectionName() + " is: " + listBSONDocument); -// List theProfileBeans = gcubeProfileMetaForUCD.getListMetadataProfileBean(); -// MetaDataProfileBean theProfileBean = theProfileBeans.get(0); -// -// // For each bson.Document creating the SubDocumentView -// for (int i = 0; i < listBSONDocument.size(); i++) { -// Document fromSectionDoc = listBSONDocument.get(i); -// SubDocumentView subDocumentView = new SubDocumentView(); -// Document toSectionDoc = new Document(); -// // Filling the SubDocumentView metadata with the metadataField.getFieldName() -// // read from the Profile -// for (MetadataFieldWrapper metadataField : theProfileBean.getMetadataFields()) { -// -// String theFieldName = metadataField.getFieldId() != null ? metadataField.getFieldId() -// : metadataField.getFieldName(); -// LOG.debug("reading theFieldName: " + theFieldName); -// Object theOBJFieldValue = fromSectionDoc.get(theFieldName); -// -// // NB: Using ALWAYS THE metadataField.getFieldName() as LABEL -// toSectionDoc = sanitizeDocumentValue(toSectionDoc, metadataField.getFieldName(), theOBJFieldValue); -// -// } -// String subToJSON = toSectionDoc.toJson(); -// LOG.debug("theSubSetionDoc is: " + subToJSON); -// subDocumentView.setMetadataAsJSON(toSectionDoc.toJson()); -// -// // Reading filePaths -// List filePaths = gcubeProfileDV.getFilePaths(); -// -// // READING fileset* field ACCORDING TO filePaths OF THE 'gcubeProfiles' CONFIG -// if (filePaths != null) { -// String fromSectionDocJSON = fromSectionDoc.toJson(); -// List listFiles = new ArrayList(); -// List listImages = new ArrayList(); -// List listLayers = new ArrayList(); -// for (FilePathDV filePath : filePaths) { -// -// // Reading Fileset _payloads -// String filesetJSONPath = String.format("%s.%s", JSON_$_POINTER, filePath.getFieldName()); -// List listPayloads = readPayloadsForFileset(filesetJSONPath, fromSectionDocJSON); -// if(LOG.isDebugEnabled()) { -// for (Payload payload : listPayloads) { -// LOG.debug("read payload: " + payload); -// } -// } -// -// FilesetDV filesetImages = new FilesetDV(); -// FilesetDV filesetFiles = new FilesetDV(); -// -// for (Payload payload : listPayloads) { -// PayloadDV payloadDV = ConvertToDataValueObjectModel.toPayloadDV(payload); -// //filesetDV.addPayloadDV(payloadDV); -// boolean isImage = ImageDetector.isImage(payload.getMimetype()); -// -// if (isImage) { -// filesetImages.setGcubeProfileFieldName(filePath.getGcubeProfileFieldName()); -// filesetImages.addPayloadDV(payloadDV); -// } else { -// filesetFiles.addPayloadDV(payloadDV); -// filesetFiles.setGcubeProfileFieldName(filePath.getGcubeProfileFieldName()); -// } -// } -// -// //Setting only if one element exists -// if(filesetImages.getListPayload()!=null && filesetImages.getListPayload().size()>0) { -// listImages.add(filesetImages); -// } -// if(filesetFiles.getListPayload()!=null && filesetFiles.getListPayload().size()>0) { -// listFiles.add(filesetFiles); -// } -// -// // Reading Fileset _materializations -// listLayers = readGcubeSDILayersForFileset(filesetJSONPath, fromSectionDocJSON); -// -// } -// subDocumentView.setListFiles(listFiles); -// subDocumentView.setListImages(listImages); -// subDocumentView.setListLayers(listLayers); -// } -// -// sectionView.addSubDocument(subDocumentView); -// -// } -// -// projectView.addSectionView(sectionView); -// } -// -// LOG.debug("returning the projectView: " + projectView); -// return projectView; -// } -// -// /** -// * Read payloads for fileset. -// * -// * @param filesetJSONPath the fileset JSON path -// * @param sectionJSONDocument the section JSON document -// * @return the list -// */ -// public static List readPayloadsForFileset(String filesetJSONPath, String sectionJSONDocument) { -// LOG.debug("readPayloadsForFileset called"); -// -// List listPayloads = new ArrayList(); -// String _payloadsJSONPath = String.format("%s.%s", filesetJSONPath, _PAYLOADS); -// try { -// com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// -// LOG.debug("Reading sectionPath at {} into section document {}", _payloadsJSONPath, sectionJSONDocument); -// JsonPath theSectionPolycJsonPath = JsonPath.compile(_payloadsJSONPath); -// Object _payloads = theSectionPolycJsonPath.read(sectionJSONDocument, configuration).toString(); -// -// if (_payloads instanceof String) { -// String toStringPayloads = (String) _payloads; -// LOG.trace("The _payloads is a String {}", toStringPayloads); -// JSONArray jsonArray = new JSONArray(toStringPayloads); -// for (int i = 0; i < jsonArray.length(); i++) { -// Payload payloadDV = Serialization.read(jsonArray.getJSONObject(i).toString(), Payload.class); -// listPayloads.add(payloadDV); -// } -// } -// -// LOG.info("returning list of payloads {}", listPayloads); -// } catch (Exception e) { -// LOG.warn("Error on reading the JSON Path " + _payloadsJSONPath + " in the doc " + sectionJSONDocument, e); -// } -// -// return listPayloads; -// -// } -// -// /** -// * Read images for fileset. -// * -// * @param parentJSONPath the parent JSON path -// * @param sectionJSONDocument the section JSON document -// * @param limitToFirstOneFound the limit to first one found -// * @return the list -// */ -// public static List readImagesForFileset(String parentJSONPath, String sectionJSONDocument, -// boolean limitToFirstOneFound) { -// LOG.info("readImagesForFileset called"); -// -// List listImages = new ArrayList(); -// com.jayway.jsonpath.Configuration config = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// // Reading Fileset _payloads -// String filesetJSONPath = String.format("%s.%s", parentJSONPath, _PAYLOADS); -// LOG.debug("Reading sectionPath {} into section document {}", filesetJSONPath, sectionJSONDocument); -// JsonPath theSectionPolycJsonPath = JsonPath.compile(filesetJSONPath); -// Object _filesets = theSectionPolycJsonPath.read(sectionJSONDocument, config); -// -// List payloads = new ArrayList(); -// List listPayloads = recursiveFetchingPayloads(config, _filesets, payloads); -// for (Payload payload : listPayloads) { -// boolean isImage = ImageDetector.isImage(payload.getMimetype()); -// if (isImage) { -// PayloadDV payloadDV = ConvertToDataValueObjectModel.toPayloadDV(payload); -// listImages.add(payloadDV); -// if (limitToFirstOneFound && listImages.size() == 1) -// return listImages; -// } -// } -// -// LOG.debug("readImagesForFileset returning listOfImages: " + listImages); -// return listImages; -// -// } -// -// /** -// * Read gcube SDI layers for fileset. -// * -// * @param materializationParentJSONPath the materialization parent JSON path -// * @param sectionJSONDocument the section JSON document -// * @return the list -// */ -// public static List readGcubeSDILayersForFileset(String materializationParentJSONPath, -// String sectionJSONDocument) { -// LOG.info("readGcubeSDILayersForFileset called"); -// -// List listSDILayers = new ArrayList(); -// // _materializations AT THE MOMENT ARE ONLY OF TYPE gcube-sdi-layer. I'm adding -// // the filtering "_type": "gcube-sdi-layer" to be sure of reading SDI layer -// String _materializationsJSONPath = String.format("%s.%s[?(@._type=='%s')]", materializationParentJSONPath, -// _MATERIALIZATIONS, _TYPE_GCUBE_SDI_LAYER); -// // [?(@._access._policy=='%s')] -// -// try { -// com.jayway.jsonpath.Configuration configurationJSONSmart = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// -// LOG.debug("GcubeSDILayers Reading sectionPath {} into section document {}", _materializationsJSONPath, -// sectionJSONDocument); -// -// JsonPath theSectionMaterializationJsonPath = JsonPath.compile(_materializationsJSONPath); -// Object _materializations = theSectionMaterializationJsonPath.read(sectionJSONDocument, -// configurationJSONSmart); -// -// LOG.trace("_materializations.class(): " + _materializations.getClass()); -// -// listSDILayers = recursiveFetchingLayers(configurationJSONSmart, _materializations, listSDILayers); -// -// } catch (Exception e) { -// LOG.debug("Error on reading the JSON Path " + _materializationsJSONPath + " in the doc " -// + sectionJSONDocument, e); -// } -// LOG.info("returning list of layers {}", listSDILayers); -// return listSDILayers; -// -// } -// -// /** -// * Recursive fetching layers. -// * -// * @param config the config -// * @param objectJSON the object JSON -// * @param listSDILayers the list SDI layers -// * @return the list -// */ -// private static List recursiveFetchingLayers(com.jayway.jsonpath.Configuration config, -// Object objectJSON, List listSDILayers) { -// -// if (objectJSON == null) -// return listSDILayers; -// -// if (objectJSON instanceof JSONArray) { -// JSONArray theJsonArray = (JSONArray) objectJSON; -// LOG.debug("jsonArray: " + theJsonArray.toString(3)); -// -// for (int i = 0; i < theJsonArray.length(); i++) { -// recursiveFetchingLayers(config, theJsonArray.get(i), listSDILayers); -// } -// } else if (objectJSON instanceof JSONObject) { -// JSONObject theJsonObject = (JSONObject) objectJSON; -// LOG.debug("theJSONObject: " + theJsonObject.toString(3)); -// GCubeSDIViewerLayerDV gsdiLayer = converLayer(config, theJsonObject); -// listSDILayers.add(gsdiLayer); -// } -// -// return listSDILayers; -// } -// -// /** -// * Recursive fetching payloads. -// * -// * @param config the config -// * @param objectJSON the object JSON -// * @param payloads the payloads -// * @return the list -// */ -// public static List recursiveFetchingPayloads(com.jayway.jsonpath.Configuration config, Object objectJSON, -// List payloads) { -// LOG.debug("recursiveFetchingPayloads called"); -// -// if (objectJSON == null) -// return payloads; -// -// if (objectJSON instanceof JSONArray) { -// JSONArray theJsonArray = (JSONArray) objectJSON; -// LOG.trace("jsonArray: " + theJsonArray.toString(3)); -// -// for (int i = 0; i < theJsonArray.length(); i++) { -// payloads = recursiveFetchingPayloads(config, theJsonArray.get(i), payloads); -// } -// } else if (objectJSON instanceof JSONObject) { -// JSONObject toStringPayloads = (JSONObject) objectJSON; -// LOG.trace("The _payloads is a String {}", toStringPayloads.toString(3)); -// Payload payload; -// try { -// payload = Serialization.read(toStringPayloads.toString(), Payload.class); -// payloads.add(payload); -// } catch (Exception e) { -// LOG.warn("Error on converting the JSON Boject " + toStringPayloads + "as " -// + Payload.class.getSimpleName() + e.getMessage()); -// } -// -// } -// -// return payloads; -// -// } -// -// /** -// * Conver layer. -// * -// * @param config the config -// * @param thJsonObject the th json object -// * @return the g cube SDI viewer layer DV -// */ -// // TODO THIS PART SHOULD BE REVISITED/OPTIMIZED -// private static GCubeSDIViewerLayerDV converLayer(com.jayway.jsonpath.Configuration config, -// JSONObject thJsonObject) { -// LOG.debug("converLayer called for " + thJsonObject); -// -// GCubeSDIViewerLayerDV gsdiLayer = new GCubeSDIViewerLayerDV(); -// try { -// String theType = thJsonObject.getString(_TYPE); -// gsdiLayer.setType(theType); -// LOG.debug(_TYPE + " is: " + theType); -// } catch (Exception e) { -// LOG.warn("No " + _TYPE + " found", e); -// } -// String toSerializeJSONOBJ = thJsonObject.toString(); -// String jsonPath = null; -// try { -// jsonPath = String.format("%s.%s", JSON_$_POINTER, _BBOX); -// HashMap bbox = JsonPath.using(config).parse(toSerializeJSONOBJ).read(jsonPath, -// HashMap.class); -// BBOXDV bboxDV = new BBOXDV(bbox); -// gsdiLayer.setBbox(bboxDV); -// LOG.debug(_BBOX + " is: " + bboxDV); -// } catch (Exception e) { -// LOG.warn(jsonPath + " error: ", e); -// } -// try { -// jsonPath = String.format("%s.%s", JSON_$_POINTER, _OGC_LINKS); -// String jsonString = JsonPath.using(config).parse(toSerializeJSONOBJ).read(jsonPath).toString(); -// Gson gson = new Gson(); -// HashMap map = gson.fromJson(jsonString, HashMap.class); -// gsdiLayer.setOgcLinks(map); -// LOG.debug(_OGC_LINKS + " are: " + map); -// } catch (Exception e) { -// LOG.warn(jsonPath + " error: ", e); -// } -// -// try { -// String wmsLink = gsdiLayer.getWMSLink(); -// if (wmsLink != null) { -// String layerName = URLParserUtil.extractValueOfParameterFromURL("layers", wmsLink); -// gsdiLayer.setLayerName(layerName); -// } -// } catch (Exception e) { -// LOG.warn(jsonPath + " error: ", e); -// } -// -// LOG.debug("converLayer returning: " + gsdiLayer); -// return gsdiLayer; -// } -// -// /** -// * Checks if is accessible section according to policy. -// * -// * @param section the section -// * @param sectionJSONPath the section JSON path -// * @param myLogin the my login -// * @return true, if is accessible section according to policy -// */ -// public static boolean isAccessibleSectionAccordingToPolicy(Document section, String sectionJSONPath, -// String myLogin) { -// LOG.debug("isAccessibleSectionAccordingToPolicy called"); -// boolean isAccessible = true; -// -// // Skipping the root, going to check the access_policy of subsections -// if (sectionJSONPath.compareTo(JSON_$_POINTER) != 0) { -// isAccessible = checkAccessPolicy(section.toJson(), myLogin); -// } -// -// return isAccessible; -// } -// -// /** -// * Check access policy. -// * -// * @param sectionDocumentJSON the section document JSON -// * @param myLogin the my login -// * @return true, if successful -// */ -// private static boolean checkAccessPolicy(String sectionDocumentJSON, String myLogin) { -// LOG.info("checkAccessPolicy called"); -// // CHECKING THE POLICY -// // see ticket #24390 -// // First reading the access policy from the fileset -// String accessPolicyPath = JSON_$_POINTER + ".fileset._access._policy"; -// boolean isAccessible = true; -// try { -// com.jayway.jsonpath.Configuration configuration = com.jayway.jsonpath.Configuration.builder() -// .jsonProvider(new JsonOrgJsonProvider()).build(); -// -// LOG.debug("Reading access policy at {} into section document {}", accessPolicyPath, sectionDocumentJSON); -// String _policy = null; -// try { -// JsonPath theSectionPolycJsonPath = JsonPath.compile(accessPolicyPath); -// _policy = theSectionPolycJsonPath.read(sectionDocumentJSON, configuration).toString(); -// -// if (_policy == null) -// throw new Exception("Policy is null"); -// -// } catch (Exception e) { -// LOG.debug("Access policy not found in: " + accessPolicyPath); -// } -// -// // If policy does not exist into fileset, reading from the parent section -// if (_policy == null) { -// accessPolicyPath = JSON_$_POINTER + "._access._policy"; -// LOG.debug("Reading access policy at {} into section document {}", accessPolicyPath, -// sectionDocumentJSON); -// try { -// JsonPath theSectionPolycJsonPath = JsonPath.compile(accessPolicyPath); -// _policy = theSectionPolycJsonPath.read(sectionDocumentJSON, configuration).toString(); -// -// if (_policy == null) -// throw new Exception("Policy is null"); -// -// } catch (Exception e) { -// LOG.debug("Access policy not found in: " + accessPolicyPath); -// } -// } -// -// LOG.debug("The section {} has policy {}", accessPolicyPath, _policy); -// isAccessible = GeportalCheckAccessPolicy.isAccessible(_policy, myLogin); -// } catch (Exception e) { -// LOG.error(accessPolicyPath + " not found. Check OK"); -// } -// LOG.info("It is {} accessible the section {} accessible? {}", isAccessible, sectionDocumentJSON); -// return isAccessible; -// } -// -// /** -// * Sanitize document value. -// * -// * @param toDoc the to doc -// * @param fieldLabel the field label -// * @param theObjectFieldValue the the object field value -// * @return the document -// */ -// private static Document sanitizeDocumentValue(Document toDoc, String fieldLabel, Object theObjectFieldValue) { -// -// if (theObjectFieldValue != null) { -// if (theObjectFieldValue instanceof String) { -// String toString = (String) theObjectFieldValue; -// if (toString != null && !toString.isEmpty()) { -// toDoc.append(fieldLabel, toString.trim()); -// } else { -// LOG.debug("Skipping String field " + fieldLabel + " its value is null or empty"); -// } -// -// } else if (theObjectFieldValue instanceof ArrayList) { -// ArrayList toArrayList = (ArrayList) theObjectFieldValue; -// if (toArrayList != null && !toArrayList.isEmpty()) { -// toDoc.append(fieldLabel, theObjectFieldValue); -// } else { -// LOG.debug("Skipping ArrayList field " + fieldLabel + " its value is null or empty"); -// } -// } else { -// toDoc.append(fieldLabel, theObjectFieldValue); -// } -// } else { -// LOG.debug("Skipping field " + fieldLabel + " its value is null or empty"); -// } -// -// return toDoc; -// } -// -// /** -// * Pretty print JSON. -// * -// * @param jsonString the json string -// * @return the string -// */ -// private static String prettyPrintJSON(String jsonString) { -// -// Gson gson = new GsonBuilder().setPrettyPrinting().create(); -// JsonObject jsonObject = new JsonParser().parse(jsonString).getAsJsonObject(); -// return gson.toJson(jsonObject); -// } -// -// /** -// * Pretty print project view. -// * -// * @param projectView the project view -// */ -// public static void prettyPrintProjectView(ProjectView projectView) { -// -// for (SectionView section : projectView.getListSections()) { -// System.out.println("\n\n###### Section Title: " + section.getSectionTitle() + " ######"); -// int i = 1; -// for (SubDocumentView subDocument : section.getListSubDocuments()) { -// System.out.println("## " + SubDocumentView.class.getSimpleName() + " n." + i); -// System.out.println("***** Metadata"); -// System.out.println(prettyPrintJSON(subDocument.getMetadataAsJSON())); -// System.out.println("***** Files"); -// if (subDocument.getListFiles() != null) { -// for (FilesetDV filesetDV : subDocument.getListFiles()) { -// System.out.println("******* File Fileset name: " + filesetDV.getGcubeProfileFieldName()); -// for (PayloadDV payload : filesetDV.getListPayload()) { -// System.out.println("********* Payload: " + payload); -// } -// } -// } -// System.out.println("***** Images"); -// if (subDocument.getListImages() != null) { -// for (FilesetDV filesetDV : subDocument.getListImages()) { -// System.out.println("******* Image Fileset name: " + filesetDV.getGcubeProfileFieldName()); -// for (PayloadDV payload : filesetDV.getListPayload()) { -// System.out.println("********* Payload: " + payload); -// } -// } -// } -// System.out.println("***** Layers"); -// if (subDocument.getListLayers() != null) { -// for (GCubeSDIViewerLayerDV layer : subDocument.getListLayers()) { -// System.out.println("******* Layer type: " + layer.getType()); -// System.out.println("******* Layer: " + layer); -// } -// } -// i++; -// } -// -// } -// } -// -// /** -// * Pretty print project view. -// * -// * @param projectView the project view -// */ -// public static void prettyPrintProjectEdit(ProjectEdit projectEdit) { -// -// for (MetaDataProfileBeanExt mpb : projectEdit.getTheProfileBeans()) { -// System.out.println("\n\n###### Title: " + mpb.getTitle() + " - Type: " + mpb.getType() + " ######"); -// int i = 1; -// for (MetadataFieldWrapper fieldWrapper : mpb.getMetadataFields()) { -// System.out.println("## " + MetadataFieldWrapper.class.getSimpleName() + " n." + i); -// System.out.println("***** Metadata"); -// // System.out.println(mfw); -// System.out.println("\tfieldId: " + fieldWrapper.getFieldId() + ", fieldName: " -// + fieldWrapper.getFieldName() + ", CurrentValue: " + fieldWrapper.getCurrentValue()); -// i++; -// } -// i = 1; -// System.out.println("***** Files"); -// for (FilesetDV fileSet : mpb.getListFileset()) { -// System.out.println("## " + FilesetDV.class.getSimpleName() + " n." + i); -// System.out.println(fileSet); -// i++; -// } -// -// } -// } -// -//} diff --git a/src/main/webapp/GeoportalDataViewer.css b/src/main/webapp/GeoportalDataViewer.css index d4a1751..b6c6545 100644 --- a/src/main/webapp/GeoportalDataViewer.css +++ b/src/main/webapp/GeoportalDataViewer.css @@ -892,4 +892,8 @@ RESPONSIVE .filter-panel-style label { font-weight: bold; } +/* END CUSTOM OVERLAY UI */ +.opacity-09 { + opacity: 0.9; +}