in progress
This commit is contained in:
parent
9b0d36f232
commit
18d3548c09
|
@ -311,7 +311,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
IndexLayerDV layer = toOpen.getIndexes().get(0);
|
||||
// Open Index Layer
|
||||
|
||||
layerManager.addIndexLayer(layer);
|
||||
layerManager.addIndexLayer(layer, toOpen.getUcd().getProfileID());
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
|
@ -8,12 +8,12 @@ import java.util.Collection;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV;
|
||||
import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
||||
import org.gcube.application.geoportalcommon.shared.products.content.WorkspaceContentDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.LayerType;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MAP_PROJECTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants.MapEventType;
|
||||
|
@ -80,16 +80,12 @@ public class LayerManager {
|
|||
/** The ol map. */
|
||||
private OpenLayerMap olMap;
|
||||
|
||||
private Map<String, LayerObject> mapDetailLayerObjects = new HashMap<String, LayerObject>();
|
||||
private Map<String, LayerObject> mapBaseLayerObjects = new HashMap<String, LayerObject>();
|
||||
private Map<String, LayerObject> mapOtherLayerObjects = new HashMap<String, LayerObject>();
|
||||
private Map<String, LayerObject> mapIndexLayerObjects = new HashMap<String, LayerObject>();
|
||||
|
||||
private HandlerManager layerManagerBus = new HandlerManager("");
|
||||
|
||||
private HandlerManager applicationBus;
|
||||
|
||||
private org.gcube.application.geoportalcommon.shared.LayerItem baseLayerFromISProfile;
|
||||
|
||||
private OverlayLayerManager overlayLayerManager;
|
||||
|
||||
/**
|
||||
|
@ -117,7 +113,7 @@ public class LayerManager {
|
|||
|
||||
if (queryEvent.getGeoQuery() != null) {
|
||||
GeoQuery selectDataInfo = queryEvent.getGeoQuery();
|
||||
String mongoItemId = queryEvent.getMongoItemId();
|
||||
final String productID = queryEvent.getProductID();
|
||||
|
||||
GWT.log("(" + selectDataInfo.getX1() + "," + selectDataInfo.getY1() + ")(" + selectDataInfo.getX2()
|
||||
+ "," + selectDataInfo.getY2() + ")");
|
||||
|
@ -149,11 +145,11 @@ public class LayerManager {
|
|||
|
||||
List<LayerObject> listLO = new ArrayList<LayerObject>();
|
||||
// for querying base layers
|
||||
listLO.addAll(mapBaseLayerObjects.values());
|
||||
listLO.addAll(mapIndexLayerObjects.values());
|
||||
|
||||
// for querying detail layers only in this case
|
||||
if (olMap.getCurrentResolution() < OLMapManager.LAYER_DETAIL_MAX_RESOLUTION) {
|
||||
Collection<LayerObject> collLO = mapDetailLayerObjects.values();
|
||||
Collection<LayerObject> collLO = mapOtherLayerObjects.values();
|
||||
listLO.addAll(collLO);
|
||||
|
||||
ArrayList<LayerObject> layerVisibility = new ArrayList<LayerObject>(collLO.size());
|
||||
|
@ -221,7 +217,7 @@ public class LayerManager {
|
|||
if (features != null && features.size() > 0) {
|
||||
String theProductId = null;
|
||||
for (FeatureRow fRow : features) {
|
||||
List<String> productIdLst = fRow.getMapProperties().get("product_id");
|
||||
List<String> productIdLst = fRow.getMapProperties().get("projectid");
|
||||
if (productIdLst != null) {
|
||||
theProductId = productIdLst.get(0);
|
||||
if (theProductId != null) {
|
||||
|
@ -245,11 +241,11 @@ public class LayerManager {
|
|||
if (features != null && features.size() > 0) {
|
||||
|
||||
// I need to show exactly the feature with produc_id == recordId
|
||||
if (mongoItemId != null) {
|
||||
GWT.log("MongoItemId is not null: " + mongoItemId);
|
||||
if (productID != null) {
|
||||
GWT.log("productID is not null: " + productID);
|
||||
// Searching mongoItemId in the list of product
|
||||
theFeatures = listUniqueProducts.get(mongoItemId);
|
||||
GWT.log("Loaded mongoItemId == product_id with id: " + mongoItemId
|
||||
theFeatures = listUniqueProducts.get(productID);
|
||||
GWT.log("Loaded productid == product_id with id: " + productID
|
||||
+ ", the features are: " + theFeatures);
|
||||
|
||||
// the recordId/mongoItemId to show has been passed but not found into
|
||||
|
@ -261,8 +257,8 @@ public class LayerManager {
|
|||
}
|
||||
|
||||
// If mongoItemId not passed
|
||||
if (mongoItemId == null) {
|
||||
GWT.log("MongoItemId is null");
|
||||
if (productID == null) {
|
||||
GWT.log("productID is null");
|
||||
// Checking if the features returned belonging to detail layers (not
|
||||
// centroids).
|
||||
if (listUniqueProducts.isEmpty()) {
|
||||
|
@ -314,7 +310,8 @@ public class LayerManager {
|
|||
// is >
|
||||
// QUERY_MIN_ZOOM_LEVEL
|
||||
|
||||
final String theProfileID = "?????";
|
||||
final String theProfileID = geoNaDataObject.getSourceLayerObject()
|
||||
.getProfileID();
|
||||
|
||||
GeoportalDataViewerServiceAsync.Util.getInstance().getLayersForId(
|
||||
theProfileID, theProductID,
|
||||
|
@ -412,7 +409,7 @@ public class LayerManager {
|
|||
* Removes the all detail layers.
|
||||
*/
|
||||
public void removeAllDetailLayers() {
|
||||
mapDetailLayerObjects.clear();
|
||||
mapOtherLayerObjects.clear();
|
||||
olMap.removeAllDetailLayers();
|
||||
overlayLayerManager.resetLayers();
|
||||
}
|
||||
|
@ -428,7 +425,7 @@ public class LayerManager {
|
|||
if (fRow == null)
|
||||
return null;
|
||||
|
||||
List<String> productIds = fRow.getMapProperties().get("product_id");
|
||||
List<String> productIds = fRow.getMapProperties().get("projectid");
|
||||
if (productIds != null && productIds.size() > 0) {
|
||||
String productId = productIds.get(0);
|
||||
String itemName = "Dettagli Prodotto";
|
||||
|
@ -438,8 +435,8 @@ public class LayerManager {
|
|||
}
|
||||
|
||||
LayerObjectType layerObjectType = layerObject.getType();
|
||||
return new ShowDetailsEvent(layerObjectType != null ? layerObjectType.name() : null, layerObject.getUcid(),
|
||||
productId, itemName, fRow);
|
||||
return new ShowDetailsEvent(layerObjectType != null ? layerObjectType.name() : null,
|
||||
layerObject.getProfileID(), productId, itemName, fRow);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
@ -490,18 +487,10 @@ public class LayerManager {
|
|||
*/
|
||||
public void addLayer(final LayerObjectType lot, 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, String profileID,
|
||||
String projectID) {
|
||||
|
||||
// final LayoutContainer westPanel = (LayoutContainer) layersPanel.getParent();
|
||||
//
|
||||
// if(layersPanel.getLayerItems().size()==0)
|
||||
// westPanel.mask("Adding..."+layerName, "x-mask-loading");
|
||||
// else
|
||||
// layersPanel.mask("Adding..."+layerName, "x-mask-loading");
|
||||
final boolean asDetailLayer, Double minResolution, Double maxResolution, final String profileID,
|
||||
final String projectID) {
|
||||
|
||||
final LayerType featureType = isBase ? LayerType.RASTER_BASELAYER : LayerType.FEATURE_TYPE;
|
||||
// Info.display("Adding Layer", layerName);
|
||||
|
||||
if (wmsLink == null || wmsLink.isEmpty()) {
|
||||
GeoportalDataViewerConstants.printJs("Skipping add layer for wmsLink as null or empty");
|
||||
|
@ -536,37 +525,61 @@ public class LayerManager {
|
|||
LayerObject lo = new LayerObject();
|
||||
lo.setLayerItem(layerItem);
|
||||
lo.setType(lot);
|
||||
lo.setProjectId(projectID);
|
||||
lo.setProjectID(projectID);
|
||||
lo.setProfileID(profileID);
|
||||
|
||||
switch (lot) {
|
||||
String layerNameKey = layerItem.getName();
|
||||
|
||||
LayerObject theLo;
|
||||
switch (lo.getType()) {
|
||||
case INDEX_LAYER:
|
||||
|
||||
theLo = mapIndexLayerObjects.get(layerNameKey);
|
||||
if (theLo == null) {
|
||||
theLo = lo;
|
||||
mapIndexLayerObjects.put(layerNameKey, theLo);
|
||||
GWT.log("mapIndexLayerObjects is: " + mapIndexLayerObjects);
|
||||
olMap.addWMSLayer(layerItem);
|
||||
} else {
|
||||
GWT.log("Skipping " + lo.getType() + " layer " + theLo.getLayerItem().getName()
|
||||
+ " already added to Map");
|
||||
}
|
||||
break;
|
||||
case PROJECT_LAYER:
|
||||
theLo = mapOtherLayerObjects.get(layerNameKey);
|
||||
if (theLo == null) {
|
||||
theLo = lo;
|
||||
mapOtherLayerObjects.put(layerNameKey, theLo);
|
||||
GWT.log("mapOtherLayerObjects is: " + mapIndexLayerObjects);
|
||||
olMap.addWMSDetailLayer(layerItem);
|
||||
} else {
|
||||
GWT.log("Skipping " + lo.getType() + " layer " + theLo.getLayerItem().getName()
|
||||
+ " already added to Map");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
String key = layerItem.getName(); // should be unique //
|
||||
// layerObjects.put(key, lo);
|
||||
|
||||
if (!asDetailLayer) { // is a base layer LayerObject blo =
|
||||
LayerObject blo = mapBaseLayerObjects.get(key);
|
||||
if (blo == null) {
|
||||
olMap.addWMSLayer(layerItem);
|
||||
mapBaseLayerObjects.put(key, lo);
|
||||
} else {
|
||||
GWT.log("Skipping base layer " + key + " already added to Map");
|
||||
}
|
||||
} else {
|
||||
LayerObject dlo = mapDetailLayerObjects.get(key);
|
||||
if (dlo == null) {
|
||||
mapDetailLayerObjects.put(key, lo);
|
||||
olMap.addWMSDetailLayer(layerItem);
|
||||
overlayLayerManager.addLayerItem(lo); // overlayLayerManager.show(); } else {
|
||||
GWT.log("Skipping detail layer " + key + " already added to Map");
|
||||
}
|
||||
}
|
||||
// String key = layerItem.getName(); // should be unique //
|
||||
// // layerObjects.put(key, lo);
|
||||
//
|
||||
// if (!asDetailLayer) { // is a base layer LayerObject blo =
|
||||
// LayerObject blo = mapIndexLayerObjects.get(key);
|
||||
// if (blo == null) {
|
||||
// olMap.addWMSLayer(layerItem);
|
||||
// mapIndexLayerObjects.put(key, lo);
|
||||
// } else {
|
||||
// GWT.log("Skipping base layer " + key + " already added to Map");
|
||||
// }
|
||||
// } else {
|
||||
// LayerObject dlo = mapOtherLayerObjects.get(key);
|
||||
// if (dlo == null) {
|
||||
// mapOtherLayerObjects.put(key, lo);
|
||||
// olMap.addWMSDetailLayer(layerItem);
|
||||
// overlayLayerManager.addLayerItem(lo); // overlayLayerManager.show(); } else {
|
||||
// GWT.log("Skipping detail layer " + key + " already added to Map");
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -577,10 +590,12 @@ public class LayerManager {
|
|||
*
|
||||
* @param layer the layer
|
||||
*/
|
||||
public void addIndexLayer(IndexLayerDV layer) {
|
||||
|
||||
addLayer(LayerObjectType.INDEX_LAYER, null, null, layer.getLayer().getOgcLinks().get("wms"), false, false, null,
|
||||
false, null, null, null, null);
|
||||
public void addIndexLayer(IndexLayerDV layer, String profileID) {
|
||||
GWT.log("Adding index layer: " + layer);
|
||||
String wmsLink = layer.getLayer().getOgcLinks().get("wms");
|
||||
GWT.log("index layer wmsLink: " + wmsLink);
|
||||
addLayer(LayerObjectType.INDEX_LAYER, null, null, wmsLink, false, false, null, false, null, null, profileID,
|
||||
null);
|
||||
|
||||
}
|
||||
|
||||
|
@ -675,7 +690,8 @@ public class LayerManager {
|
|||
* @param queryClick the query click
|
||||
*/
|
||||
public void showPopupInfoForLayer(List<GeoNaSpatialQueryResult> listGeoNaDataObject, ExtentWrapped queryClick) {
|
||||
|
||||
GWT.log("showPopupInfoForLayer called for "+listGeoNaDataObject);
|
||||
|
||||
ScrollPanel scrollPanel = new ScrollPanel();
|
||||
final FlowPanel flowPanel = new FlowPanel();
|
||||
flowPanel.getElement().getStyle().setProperty("maxHeight", "600px");
|
||||
|
@ -726,7 +742,8 @@ public class LayerManager {
|
|||
String prevConcessioneName = "";
|
||||
for (GeoNaSpatialQueryResult geoNaSpatialQueryResult : listGeoNaDataObject) {
|
||||
try {
|
||||
GWT.log("baseLayerFromISProfile.getName() :" + baseLayerFromISProfile.getName());
|
||||
|
||||
Set<String> indexLayers = mapIndexLayerObjects.keySet();
|
||||
LayerObject lo = geoNaSpatialQueryResult.getSourceLayerObject();
|
||||
LayerItem sourceLI = lo.getLayerItem();
|
||||
|
||||
|
@ -734,7 +751,7 @@ public class LayerManager {
|
|||
|
||||
// skipping centroid layer
|
||||
if (layerSourceName == null
|
||||
|| layerSourceName.compareToIgnoreCase(baseLayerFromISProfile.getName()) == 0) {
|
||||
|| indexLayers.contains(layerSourceName)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -745,80 +762,80 @@ public class LayerManager {
|
|||
}
|
||||
|
||||
GWT.log("showPopupInfoForLayer must be REVISITED");
|
||||
/*
|
||||
* String nomeConcessione = lo.getSourceConcessione().getNome(); if
|
||||
* (prevConcessioneName.compareTo(nomeConcessione) != 0) { String
|
||||
* concessioneIntro = nomeConcessione.length() > 100 ?
|
||||
* StringUtil.ellipsize(nomeConcessione, 100) : nomeConcessione; Heading heading
|
||||
* = new Heading(4, concessioneIntro); heading.setTitle(nomeConcessione);
|
||||
* heading.getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
* flowPanel.add(heading);
|
||||
*
|
||||
* Button buttOpenProject = new Button("Open Project"); final String buttId =
|
||||
* "open-details-" + Random.nextInt(); Element bEl =
|
||||
* buttOpenProject.getElement(); bEl.setId(buttId);
|
||||
* bEl.getStyle().setPaddingLeft(0, Unit.PX);
|
||||
* buttOpenProject.setType(ButtonType.LINK);
|
||||
*
|
||||
* if (buttOpenProject != null) { flowPanel.add(buttOpenProject);
|
||||
* buttOpenProject.setType(ButtonType.LINK);
|
||||
* Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
*
|
||||
* @Override public void execute() { Element buttonElement =
|
||||
* DOM.getElementById(buttId); Event.sinkEvents(buttonElement, Event.ONCLICK);
|
||||
* Event.setEventListener(buttonElement, new EventListener() {
|
||||
*
|
||||
* @Override public void onBrowserEvent(Event event) { if (Event.ONCLICK ==
|
||||
* event.getTypeInt()) { applicationBus.fireEvent(new
|
||||
* ShowDetailsEvent("concessione", lo.getSourceConcessione().getItemId(),
|
||||
* nomeConcessione, null));
|
||||
*
|
||||
* } } }); } }); } listOpenProject.add(buttOpenProject);
|
||||
*
|
||||
* HTML subText = new HTML(
|
||||
* "<p style=\"color:#999; font-size:14px; margin:5px 0 5px 0;\">Layers and Properties</p>"
|
||||
* ); flowPanel.add(subText); }
|
||||
*
|
||||
* prevConcessioneName = nomeConcessione;
|
||||
*
|
||||
* Label layerLabel = new Label(); layerLabel.setType(LabelType.INFO);
|
||||
*
|
||||
* String layerName = StringUtil.fullNameToLayerName(layerSourceName, ":");
|
||||
* layerLabel.setText(layerName); layerLabel.setTitle(layerSourceName);
|
||||
* layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||
* layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX);
|
||||
* flowPanel.add(layerLabel);
|
||||
*
|
||||
* 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());
|
||||
*
|
||||
* int i = 0; for (FeatureRow feature : features) {
|
||||
*
|
||||
* intFlex.setHTML(i + 1, 0, new HTML(feature.getId()).toString());
|
||||
*
|
||||
* // Showing properties belonging to concessioni layer Map<String,
|
||||
* List<String>> entries = feature.getMapProperties();
|
||||
*
|
||||
* if (entries.size() == 0) { // Adding this row to show "no property" for
|
||||
* feature // intFlex.setHTML(i + 1, 1, new
|
||||
* HTML("<i>No property</i>").toString()); } int j = 0; for (String key :
|
||||
* entries.keySet()) { List<String> 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++; } flowPanel.add(intFlex);
|
||||
*
|
||||
*/
|
||||
//
|
||||
// String nomeConcessione = lo.getProjectLayer().getNome(); if
|
||||
// (prevConcessioneName.compareTo(nomeConcessione) != 0) { String
|
||||
// concessioneIntro = nomeConcessione.length() > 100 ?
|
||||
// StringUtil.ellipsize(nomeConcessione, 100) : nomeConcessione; Heading heading
|
||||
// = new Heading(4, concessioneIntro); heading.setTitle(nomeConcessione);
|
||||
// heading.getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
// flowPanel.add(heading);
|
||||
//
|
||||
// Button buttOpenProject = new Button("Open Project"); final String buttId =
|
||||
// "open-details-" + Random.nextInt(); Element bEl =
|
||||
// buttOpenProject.getElement(); bEl.setId(buttId);
|
||||
// bEl.getStyle().setPaddingLeft(0, Unit.PX);
|
||||
// buttOpenProject.setType(ButtonType.LINK);
|
||||
//
|
||||
// if (buttOpenProject != null) { flowPanel.add(buttOpenProject);
|
||||
// buttOpenProject.setType(ButtonType.LINK);
|
||||
// Scheduler.get().scheduleDeferred(new ScheduledCommand() {
|
||||
//
|
||||
// @Override public void execute() { Element buttonElement =
|
||||
// DOM.getElementById(buttId); Event.sinkEvents(buttonElement, Event.ONCLICK);
|
||||
// Event.setEventListener(buttonElement, new EventListener() {
|
||||
//
|
||||
// @Override public void onBrowserEvent(Event event) { if (Event.ONCLICK ==
|
||||
// event.getTypeInt()) { applicationBus.fireEvent(new
|
||||
// ShowDetailsEvent("concessione", lo.getSourceConcessione().getItemId(),
|
||||
// nomeConcessione, null));
|
||||
//
|
||||
// } } }); } }); } listOpenProject.add(buttOpenProject);
|
||||
//
|
||||
// HTML subText = new HTML(
|
||||
// "<p style=\"color:#999; font-size:14px; margin:5px 0 5px 0;\">Layers and Properties</p>"
|
||||
// ); flowPanel.add(subText); }
|
||||
//
|
||||
// prevConcessioneName = nomeConcessione;
|
||||
//
|
||||
// Label layerLabel = new Label(); layerLabel.setType(LabelType.INFO);
|
||||
//
|
||||
// String layerName = StringUtil.fullNameToLayerName(layerSourceName, ":");
|
||||
// layerLabel.setText(layerName); layerLabel.setTitle(layerSourceName);
|
||||
// layerLabel.getElement().getStyle().setMarginTop(10, Unit.PX);
|
||||
// layerLabel.getElement().getStyle().setMarginBottom(5, Unit.PX);
|
||||
// flowPanel.add(layerLabel);
|
||||
//
|
||||
// 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());
|
||||
//
|
||||
// int i = 0; for (FeatureRow feature : features) {
|
||||
//
|
||||
// intFlex.setHTML(i + 1, 0, new HTML(feature.getId()).toString());
|
||||
//
|
||||
// // Showing properties belonging to concessioni layer Map<String,
|
||||
// List<String>> entries = feature.getMapProperties();
|
||||
//
|
||||
// if (entries.size() == 0) { // Adding this row to show "no property" for
|
||||
// feature // intFlex.setHTML(i + 1, 1, new
|
||||
// HTML("<i>No property</i>").toString()); } int j = 0; for (String key :
|
||||
// entries.keySet()) { List<String> 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++; } flowPanel.add(intFlex);
|
||||
//
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
GeoportalDataViewerConstants.printJs("Error: " + e.getMessage());
|
||||
|
@ -839,6 +856,8 @@ public class LayerManager {
|
|||
public void showPopupInfoForCentroidLayer(GeoNaSpatialQueryResult geoNaDataObject, FeatureRow feature,
|
||||
Coordinate onFailureCenterTo) {
|
||||
|
||||
GWT.log("showPopupInfoForCentroidLayer must be revisited");
|
||||
|
||||
FlexTable flex = new FlexTable();
|
||||
flex.setCellPadding(1);
|
||||
flex.setCellSpacing(1);
|
||||
|
@ -886,13 +905,12 @@ public class LayerManager {
|
|||
|
||||
if (geoNaDataObject.getMapImages() != null) {
|
||||
for (String key : geoNaDataObject.getMapImages().keySet()) {
|
||||
List<UploadedImageDV> listUI = geoNaDataObject.getMapImages().get(key);
|
||||
List<PayloadDV> listUI = geoNaDataObject.getMapImages().get(key);
|
||||
GWT.log("Adding images: " + listUI);
|
||||
if (listUI != null && listUI.size() > 0) {
|
||||
UploadedImageDV img = listUI.get(0);
|
||||
if (img != null && img.getListWsContent() != null) {
|
||||
WorkspaceContentDV wsContent = img.getListWsContent().get(img.getListWsContent().size() - 1);
|
||||
String theImgHTML = "<img src=\"" + wsContent.getLink() + "\"></img>";
|
||||
PayloadDV img = listUI.get(0);
|
||||
if (img != null && img.getLink() != null) {
|
||||
String theImgHTML = "<img src=\"" + img.getLink()+ "\"></img>";
|
||||
GWT.log("theImgHTML: " + theImgHTML);
|
||||
// GeoportalDataViewerConstants.print("The row are:
|
||||
// "+flex.getRowCount());
|
||||
|
@ -1020,24 +1038,6 @@ public class LayerManager {
|
|||
return layerManagerBus;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the base layer from is profile.
|
||||
*
|
||||
* @param layerItem the new base layer from is profile
|
||||
*/
|
||||
public void setBaseLayerFromIsProfile(org.gcube.application.geoportalcommon.shared.LayerItem layerItem) {
|
||||
this.baseLayerFromISProfile = layerItem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the base layer from IS proile.
|
||||
*
|
||||
* @return the base layer from IS proile
|
||||
*/
|
||||
public org.gcube.application.geoportalcommon.shared.LayerItem getBaseLayerFromISProile() {
|
||||
return baseLayerFromISProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the overlay layer manager.
|
||||
*
|
||||
|
|
|
@ -17,7 +17,7 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
public static Type<QueryDataEventHandler> TYPE = new Type<QueryDataEventHandler>();
|
||||
private GeoQuery select;
|
||||
private ExtentWrapped queryClickExtent;
|
||||
private String mongoItemId;
|
||||
private String productID;
|
||||
private boolean onInit;
|
||||
private MapEventType sourceMapEventType;
|
||||
|
||||
|
@ -26,15 +26,15 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
*
|
||||
* @param select the select
|
||||
* @param onFailureCenterTo the on failure center to
|
||||
* @param mongoItemId the mongo item id
|
||||
* @param productID the mongo item id
|
||||
* @param onInit the on init
|
||||
* @param mapEventType the map event type
|
||||
*/
|
||||
public QueryDataEvent(GeoQuery select, ExtentWrapped queryClickExtent, String mongoItemId, boolean onInit,
|
||||
public QueryDataEvent(GeoQuery select, ExtentWrapped queryClickExtent, String productID, boolean onInit,
|
||||
MapEventType mapEventType) {
|
||||
this.select = select;
|
||||
this.queryClickExtent = queryClickExtent;
|
||||
this.mongoItemId = mongoItemId;
|
||||
this.productID = productID;
|
||||
this.onInit = onInit;
|
||||
this.sourceMapEventType = mapEventType;
|
||||
}
|
||||
|
@ -49,13 +49,8 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
return TYPE;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the mongo item id.
|
||||
*
|
||||
* @return the mongo item id
|
||||
*/
|
||||
public String getMongoItemId() {
|
||||
return mongoItemId;
|
||||
public String getProductID() {
|
||||
return productID;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -107,8 +102,8 @@ public class QueryDataEvent extends GwtEvent<QueryDataEventHandler> {
|
|||
builder.append(select);
|
||||
builder.append(", queryClickExtent=");
|
||||
builder.append(queryClickExtent);
|
||||
builder.append(", mongoItemId=");
|
||||
builder.append(mongoItemId);
|
||||
builder.append(", productID=");
|
||||
builder.append(productID);
|
||||
builder.append(", onInit=");
|
||||
builder.append(onInit);
|
||||
builder.append(", sourceMapEventType=");
|
||||
|
|
|
@ -17,18 +17,18 @@ public class ShowPopupOnCentroiEvent extends GwtEvent<ShowPopupOnCentroiEventHan
|
|||
private RecordDV record;
|
||||
|
||||
|
||||
/**
|
||||
* Instantiates a new show details event.
|
||||
*
|
||||
* @param geonaItemType the geona item type
|
||||
* @param geonaMongoID the geona mongo ID
|
||||
* @param itemName the item name
|
||||
* @param featureRow the feature row
|
||||
*/
|
||||
public ShowPopupOnCentroiEvent(RecordDV record) {
|
||||
this.record = record;
|
||||
|
||||
}
|
||||
// /**
|
||||
// * Instantiates a new show details event.
|
||||
// *
|
||||
// * @param geonaItemType the geona item type
|
||||
// * @param geonaMongoID the geona mongo ID
|
||||
// * @param itemName the item name
|
||||
// * @param featureRow the feature row
|
||||
// */
|
||||
// public ShowPopupOnCentroiEvent(RecordDV record) {
|
||||
// this.record = record;
|
||||
//
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
|
|
|
@ -509,7 +509,8 @@ public class GeonaDataViewMainPanel extends Composite {
|
|||
openCollectionPanel.add(checkbox);
|
||||
}
|
||||
|
||||
if(collection!=null && collection.size()==1) {
|
||||
//Open the first collection as default
|
||||
if(collection!=null && collection.size()>0) {
|
||||
CheckBox checkbox = (CheckBox) openCollectionPanel.getWidget(0);
|
||||
checkbox.setValue(true, true);
|
||||
String collectionID = checkbox.getId().replace("gcubeCollectionSelector_", "");
|
||||
|
|
|
@ -40,6 +40,7 @@ import org.gcube.application.geoportalcommon.shared.geoportal.ResultDocumentDV;
|
|||
import org.gcube.application.geoportalcommon.shared.geoportal.config.ItemFieldDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
|
||||
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_DATA_HANDLER;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.ucd.HandlerDeclarationDV;
|
||||
|
@ -230,59 +231,6 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data result.
|
||||
*
|
||||
* @param layerObjects the layer objects
|
||||
* @param mapSrsName the map srs name
|
||||
* @param selectBBOX the select BBOX
|
||||
* @param maxWFSFeature the max WFS feature
|
||||
* @param zoomLevel the zoom level
|
||||
* @return the data result
|
||||
*/
|
||||
@Override
|
||||
public List<GeoNaSpatialQueryResult> getDataResult(List<LayerObject> layerObjects, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel) {
|
||||
LOG.info("getDataResult called");
|
||||
|
||||
List<GeoNaSpatialQueryResult> listDAO = new ArrayList<GeoNaSpatialQueryResult>(layerObjects.size());
|
||||
|
||||
for (LayerObject layerObject : layerObjects) {
|
||||
GeoNaSpatialQueryResult geoDAO = new GeoNaSpatialQueryResult();
|
||||
List<FeatureRow> features = FeatureParser.getWFSFeatures(layerObject.getLayerItem(), mapSrsName, selectBBOX,
|
||||
maxWFSFeature);
|
||||
LOG.debug("For layer name: " + layerObject.getLayerItem().getName() + " got features: " + features);
|
||||
geoDAO.setFeatures(features);
|
||||
|
||||
// Getting the concessioneId from WFS features
|
||||
for (FeatureRow fRow : features) {
|
||||
if (fRow.getMapProperties() != null) {
|
||||
List<String> concessioneIds = fRow.getMapProperties().get("product_id");
|
||||
if (concessioneIds != null && concessioneIds.size() > 0) {
|
||||
String cId = concessioneIds.get(0);
|
||||
try {
|
||||
UploadedImageDV uplImg = sessionloadPreviewImageForConcessione(this.getThreadLocalRequest(),
|
||||
"Concessione", cId);
|
||||
// List<UploadedImageDV> listUI = getUploadedImagesForId("Concessione", cId, 1);
|
||||
Map<String, List<UploadedImageDV>> mapImages = new LinkedHashMap<String, List<UploadedImageDV>>();
|
||||
mapImages.put(cId, Arrays.asList(uplImg));
|
||||
// mapImages.put(cId, listUI);
|
||||
geoDAO.setMapImages(mapImages);
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error on loading uploaded images for concessione: " + cId, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
geoDAO.setSourceLayerObject(layerObject);
|
||||
LOG.info("For layer name: " + layerObject.getLayerItem().getName() + " got " + features.size()
|
||||
+ " feature/s");
|
||||
listDAO.add(geoDAO);
|
||||
}
|
||||
LOG.info("returning " + listDAO + " geona data objects");
|
||||
return listDAO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the uploaded images for id.
|
||||
*
|
||||
|
@ -1029,10 +977,11 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
String jsonDocument = theProject.getTheDocument().toJson();
|
||||
LOG.trace("JSON Project is: " + jsonDocument);
|
||||
|
||||
String materializationJSONPath = String.format("%s.%s.%s", Geoportal_JSON_Mapper.JSON_$_POINTER,
|
||||
Geoportal_JSON_Mapper.FILESET, Geoportal_JSON_Mapper._MATERIALIZATIONS);
|
||||
String materializationParentJSONPath = String.format("%s..%s", Geoportal_JSON_Mapper.JSON_$_POINTER,
|
||||
Geoportal_JSON_Mapper.FILESET);
|
||||
|
||||
listLayers = Geoportal_JSON_Mapper.readGcubeSDILayersForFileset(materializationJSONPath, jsonDocument);
|
||||
listLayers = Geoportal_JSON_Mapper.readGcubeSDILayersForFileset(materializationParentJSONPath,
|
||||
jsonDocument);
|
||||
|
||||
LOG.info("For projectID " + projectID + ", returning " + listLayers.size() + " layer/s");
|
||||
return listLayers;
|
||||
|
@ -1045,6 +994,48 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
|
||||
}
|
||||
|
||||
protected List<PayloadDV> getImagesForId(String profileID, String projectID) throws Exception {
|
||||
LOG.info("getImagesForId [profileID: " + profileID + ", projectID: " + projectID + "] called");
|
||||
|
||||
if (profileID == null)
|
||||
throw new Exception("Invalid parameter. The profileID is null");
|
||||
|
||||
if (projectID == null)
|
||||
throw new Exception("Invalid parameter. The projectID is null");
|
||||
|
||||
List<PayloadDV> listImages = null;
|
||||
|
||||
try {
|
||||
|
||||
SessionUtil.getCurrentContext(this.getThreadLocalRequest(), true);
|
||||
try {
|
||||
SessionUtil.getCurrentUser(this.getThreadLocalRequest()).getUsername();
|
||||
} catch (Exception e) {
|
||||
LOG.info("User not found in session, the userName for cecking policy will be null");
|
||||
}
|
||||
|
||||
LOG.info("Trying to get project for id " + profileID);
|
||||
|
||||
new GeoportalServiceIdentityProxy(this.getThreadLocalRequest());
|
||||
Project theProject = GeoportalClientCaller.projects().getProjectByID(profileID, projectID);
|
||||
String jsonDocument = theProject.getTheDocument().toJson();
|
||||
LOG.trace("JSON Project is: " + jsonDocument);
|
||||
|
||||
String filesetJSONPath = String.format("%s..%s", Geoportal_JSON_Mapper.JSON_$_POINTER, Geoportal_JSON_Mapper.FILESET);
|
||||
|
||||
listImages = Geoportal_JSON_Mapper.readImagesForFileset(filesetJSONPath, jsonDocument);
|
||||
|
||||
LOG.info("For projectID " + projectID + ", returning " + listImages.size() + " image/s");
|
||||
return listImages;
|
||||
|
||||
} catch (Exception e) {
|
||||
String erroMsg = "Images are not available for profileID " + profileID + " with projectID " + projectID;
|
||||
LOG.error(erroMsg, e);
|
||||
throw new Exception(erroMsg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the project view for id.
|
||||
*
|
||||
|
@ -1097,4 +1088,77 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the data result.
|
||||
*
|
||||
* @param layerObjects the layer objects
|
||||
* @param mapSrsName the map srs name
|
||||
* @param selectBBOX the select BBOX
|
||||
* @param maxWFSFeature the max WFS feature
|
||||
* @param zoomLevel the zoom level
|
||||
* @return the data result
|
||||
*/
|
||||
@Override
|
||||
public List<GeoNaSpatialQueryResult> getDataResult(List<LayerObject> layerObjects, String mapSrsName,
|
||||
BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel) {
|
||||
LOG.info("getDataResult called for layerObjects: " + layerObjects);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.info("getDataResult parmeters layerObjects: " + layerObjects,
|
||||
", mapSrsName: " + mapSrsName + ", selectBBOX: " + selectBBOX + ", maxWFSFeature: " + maxWFSFeature
|
||||
+ ", zoomLevel: " + zoomLevel);
|
||||
}
|
||||
|
||||
List<GeoNaSpatialQueryResult> listDAO = new ArrayList<GeoNaSpatialQueryResult>(layerObjects.size());
|
||||
|
||||
for (LayerObject layerObject : layerObjects) {
|
||||
GeoNaSpatialQueryResult geoDAO = new GeoNaSpatialQueryResult();
|
||||
List<FeatureRow> features = FeatureParser.getWFSFeatures(layerObject.getLayerItem(), mapSrsName, selectBBOX,
|
||||
maxWFSFeature);
|
||||
LOG.debug("For layer name: " + layerObject.getLayerItem().getName() + " got features: " + features);
|
||||
geoDAO.setFeatures(features);
|
||||
|
||||
// Getting the projectid from WFS features
|
||||
for (FeatureRow fRow : features) {
|
||||
if (fRow.getMapProperties() != null) {
|
||||
List<String> productIDs = fRow.getMapProperties().get("projectid");
|
||||
if (productIDs != null && productIDs.size() > 0) {
|
||||
String projectID = productIDs.get(0);
|
||||
try {
|
||||
LOG.debug("Found the projectID : " + projectID + " into properties of feature id: "
|
||||
+ fRow.getId());
|
||||
String profileID = layerObject.getProfileID();
|
||||
LOG.debug("Read the profileID from layerObject : " + profileID);
|
||||
if (profileID != null) {
|
||||
Project theProject = GeoportalClientCaller.projects().getProjectByID(profileID,
|
||||
projectID);
|
||||
ProjectDVBuilder projectBuilder = ProjectDVBuilder.newBuilder().fullDocumentMap(false);
|
||||
ProjectDV projectDV = ConvertToDataValueObjectModel.toProjectDV(theProject,
|
||||
projectBuilder);
|
||||
geoDAO.setProjectDV(projectDV);
|
||||
|
||||
List<PayloadDV> images = getImagesForId(profileID, projectID);
|
||||
|
||||
Map<String, List<PayloadDV>> mapImages = new LinkedHashMap<String, List<PayloadDV>>();
|
||||
mapImages.put(projectID, images);
|
||||
// mapImages.put(cId, listUI);
|
||||
geoDAO.setMapImages(mapImages);
|
||||
|
||||
} else {
|
||||
LOG.warn("ProfileID is null for: " + layerObject);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error on loading images for project: " + projectID, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
geoDAO.setSourceLayerObject(layerObject);
|
||||
LOG.info("For layer name: " + layerObject.getLayerItem().getName() + " got " + features.size()
|
||||
+ " feature/s");
|
||||
listDAO.add(geoDAO);
|
||||
}
|
||||
LOG.info("returning " + listDAO + " geona data objects");
|
||||
return listDAO;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ public class Geoportal_JSON_Mapper {
|
|||
|
||||
public static final String FILESET = "fileset";
|
||||
|
||||
public static final String _OGC_LINKS_WMS = "_ogcLinks.wms";
|
||||
public static final String _OGC_LINKS = "_ogcLinks";
|
||||
|
||||
public static final String _BBOX = "_bbox";
|
||||
|
||||
|
@ -306,6 +306,40 @@ public class Geoportal_JSON_Mapper {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Read images for fileset.
|
||||
*
|
||||
* @param parentJSONPath the parent JSON path
|
||||
* @param sectionJSONDocument the section JSON document
|
||||
* @return the list
|
||||
*/
|
||||
public static List<PayloadDV> readImagesForFileset(String parentJSONPath, String sectionJSONDocument) {
|
||||
LOG.debug("readImagesForFileset called");
|
||||
|
||||
List<PayloadDV> listImages = new ArrayList<PayloadDV>();
|
||||
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.info("Reading sectionPath {} into section document {}", filesetJSONPath, sectionJSONDocument);
|
||||
JsonPath theSectionPolycJsonPath = JsonPath.compile(filesetJSONPath);
|
||||
Object _filesets = theSectionPolycJsonPath.read(sectionJSONDocument, config);
|
||||
|
||||
List<Payload> payloads = new ArrayList<Payload>();
|
||||
List<Payload> 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);
|
||||
}
|
||||
}
|
||||
|
||||
LOG.debug("readImagesForFileset returning listOfImages: "+listImages);
|
||||
return listImages;
|
||||
|
||||
}
|
||||
|
||||
public static List<GCubeSDIViewerLayerDV> readGcubeSDILayersForFileset(String materializationParentJSONPath,
|
||||
String sectionJSONDocument) {
|
||||
LOG.debug("readGcubeSDILayersForFileset called");
|
||||
|
@ -357,6 +391,45 @@ public class Geoportal_JSON_Mapper {
|
|||
return listSDILayers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read payloads for fileset.
|
||||
*
|
||||
* @param filesetJSONPath the fileset JSON path
|
||||
* @param sectionJSONDocument the section JSON document
|
||||
* @return the list
|
||||
*/
|
||||
public static List<Payload> recursiveFetchingPayloads(com.jayway.jsonpath.Configuration config, Object objectJSON,
|
||||
List<Payload> 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++) {
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
// TODO THIS PART SHOULD BE REVISITED/OPTIMIZED
|
||||
private static GCubeSDIViewerLayerDV converLayer(com.jayway.jsonpath.Configuration config,
|
||||
JSONObject thJsonObject) {
|
||||
|
@ -381,19 +454,19 @@ public class Geoportal_JSON_Mapper {
|
|||
LOG.warn(jsonPath + " error: ", e);
|
||||
}
|
||||
try {
|
||||
jsonPath = String.format("%s.%s", JSON_$_POINTER, _OGC_LINKS_WMS);
|
||||
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_WMS + " are: " + map);
|
||||
LOG.debug(_OGC_LINKS + " are: " + map);
|
||||
} catch (Exception e) {
|
||||
LOG.warn(jsonPath + " error: ", e);
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
String wmsLink = gsdiLayer.getWMSLink();
|
||||
if(wmsLink!=null) {
|
||||
if (wmsLink != null) {
|
||||
String layerName = URLParserUtil.extractValueOfParameterFromURL("layers", wmsLink);
|
||||
gsdiLayer.setLayerName(layerName);
|
||||
}
|
||||
|
@ -401,7 +474,6 @@ public class Geoportal_JSON_Mapper {
|
|||
LOG.warn(jsonPath + " error: ", e);
|
||||
}
|
||||
|
||||
|
||||
LOG.debug("converLayer returning: " + gsdiLayer);
|
||||
return gsdiLayer;
|
||||
}
|
||||
|
|
|
@ -4,17 +4,17 @@ import java.io.Serializable;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.innerobject.PayloadDV;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.project.ProjectDV;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureRow;
|
||||
|
||||
|
||||
/**
|
||||
* The Class GeoNaSpatialQueryResult.
|
||||
*
|
||||
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
||||
*
|
||||
* Jul 30, 2021
|
||||
* Jul 30, 2021
|
||||
*/
|
||||
public class GeoNaSpatialQueryResult implements Serializable {
|
||||
|
||||
|
@ -24,8 +24,10 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
private static final long serialVersionUID = 3513120677727206958L;
|
||||
private List<FeatureRow> features;
|
||||
private LayerObject sourceLayerObject;
|
||||
// Map with couple (mongoId concessione, list of uploaded GNAImages for the concessione)
|
||||
private Map<String, List<UploadedImageDV>> mapImages = null;
|
||||
// Map with couple (mongoId concessione, list of uploaded GNAImages for the
|
||||
// concessione)
|
||||
private Map<String, List<PayloadDV>> mapImages = null;
|
||||
private ProjectDV projectDV;
|
||||
|
||||
/**
|
||||
* Instantiates a new geo na data object.
|
||||
|
@ -34,6 +36,15 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
|
||||
}
|
||||
|
||||
public void setProjectDV(ProjectDV projectDV) {
|
||||
this.projectDV = projectDV;
|
||||
|
||||
}
|
||||
|
||||
public ProjectDV getProjectDV() {
|
||||
return projectDV;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the features.
|
||||
*
|
||||
|
@ -75,7 +86,7 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
*
|
||||
* @return the map images
|
||||
*/
|
||||
public Map<String, List<UploadedImageDV>> getMapImages() {
|
||||
public Map<String, List<PayloadDV>> getMapImages() {
|
||||
return mapImages;
|
||||
}
|
||||
|
||||
|
@ -84,15 +95,10 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
*
|
||||
* @param mapImages the map images
|
||||
*/
|
||||
public void setMapImages(Map<String, List<UploadedImageDV>> mapImages) {
|
||||
public void setMapImages(Map<String, List<PayloadDV>> mapImages) {
|
||||
this.mapImages = mapImages;
|
||||
}
|
||||
|
||||
/**
|
||||
* To string.
|
||||
*
|
||||
* @return the string
|
||||
*/
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
@ -102,6 +108,8 @@ public class GeoNaSpatialQueryResult implements Serializable {
|
|||
builder.append(sourceLayerObject);
|
||||
builder.append(", mapImages=");
|
||||
builder.append(mapImages);
|
||||
builder.append(", projectDV=");
|
||||
builder.append(projectDV);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
|
@ -5,10 +5,9 @@ import java.io.Serializable;
|
|||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDILayer;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.IndexLayerDV;
|
||||
|
||||
|
||||
/**
|
||||
* Represents a layer,
|
||||
* holds the layer item and the related Collection info if existing
|
||||
* Represents a layer, holds the layer item and the related Collection info if
|
||||
* existing
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
@ -18,14 +17,13 @@ public class LayerObject implements Serializable {
|
|||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -2282478701630148774L;
|
||||
|
||||
|
||||
|
||||
private LayerObjectType type;
|
||||
|
||||
private IndexLayerDV indexLayer; // expected for INDEX_LAYER type
|
||||
private String ucid; // expected for collection layers
|
||||
private GCubeSDILayer projectLayer; // expected for PROJECT_LAYER
|
||||
private String projectId; // expected for PROJECT_LAYER
|
||||
|
||||
private IndexLayerDV indexLayer; // expected for INDEX_LAYER type
|
||||
private String profileID; // expected for collection layers
|
||||
private GCubeSDILayer projectLayer; // expected for PROJECT_LAYER
|
||||
private String projectID; // expected for PROJECT_LAYER
|
||||
|
||||
private LayerItem layerItem;
|
||||
|
||||
|
@ -33,81 +31,68 @@ public class LayerObject implements Serializable {
|
|||
super();
|
||||
}
|
||||
|
||||
public LayerObject(LayerObjectType type,LayerItem item) {
|
||||
public LayerObject(LayerObjectType type, LayerItem item) {
|
||||
this.setType(type);
|
||||
this.setLayerItem(item);
|
||||
}
|
||||
|
||||
|
||||
public LayerObject(String ucid, IndexLayerDV indexLayer, LayerItem item) {
|
||||
this(LayerObjectType.INDEX_LAYER,item);
|
||||
this.ucid=ucid;
|
||||
this.indexLayer=indexLayer;
|
||||
|
||||
public LayerObject(String profileID, IndexLayerDV indexLayer, LayerItem item) {
|
||||
this(LayerObjectType.INDEX_LAYER, item);
|
||||
this.profileID = profileID;
|
||||
this.indexLayer = indexLayer;
|
||||
}
|
||||
|
||||
public LayerObject(String ucid, String projectId, GCubeSDILayer projectLayer, LayerItem item) {
|
||||
this(LayerObjectType.PROJECT_LAYER,item);
|
||||
this.ucid=ucid;
|
||||
this.projectId=projectId;
|
||||
|
||||
public LayerObject(String profileID, String projectID, GCubeSDILayer projectLayer, LayerItem item) {
|
||||
this(LayerObjectType.PROJECT_LAYER, item);
|
||||
this.profileID = profileID;
|
||||
this.projectID = projectID;
|
||||
this.projectLayer = projectLayer;
|
||||
}
|
||||
|
||||
|
||||
public LayerObjectType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
|
||||
public void setType(LayerObjectType type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
|
||||
public IndexLayerDV getIndexLayer() {
|
||||
return indexLayer;
|
||||
}
|
||||
|
||||
|
||||
public void setIndexLayer(IndexLayerDV indexLayer) {
|
||||
this.indexLayer = indexLayer;
|
||||
}
|
||||
|
||||
|
||||
public String getUcid() {
|
||||
return ucid;
|
||||
public String getProfileID() {
|
||||
return profileID;
|
||||
}
|
||||
|
||||
|
||||
public void setUcid(String ucid) {
|
||||
this.ucid = ucid;
|
||||
public void setProfileID(String profileID) {
|
||||
this.profileID = profileID;
|
||||
}
|
||||
|
||||
|
||||
public GCubeSDILayer getProjectLayer() {
|
||||
return projectLayer;
|
||||
}
|
||||
|
||||
|
||||
public void setProjectLayer(GCubeSDILayer projectLayer) {
|
||||
this.projectLayer = projectLayer;
|
||||
}
|
||||
|
||||
|
||||
public String getProjectId() {
|
||||
return projectId;
|
||||
public String getProjectID() {
|
||||
return projectID;
|
||||
}
|
||||
|
||||
|
||||
public void setProjectId(String projectId) {
|
||||
this.projectId = projectId;
|
||||
public void setProjectID(String projectId) {
|
||||
this.projectID = projectId;
|
||||
}
|
||||
|
||||
|
||||
public LayerItem getLayerItem() {
|
||||
return layerItem;
|
||||
}
|
||||
|
||||
|
||||
public void setLayerItem(LayerItem layerItem) {
|
||||
this.layerItem = layerItem;
|
||||
}
|
||||
|
@ -119,17 +104,16 @@ public class LayerObject implements Serializable {
|
|||
builder.append(type);
|
||||
builder.append(", indexLayer=");
|
||||
builder.append(indexLayer);
|
||||
builder.append(", ucid=");
|
||||
builder.append(ucid);
|
||||
builder.append(", profileID=");
|
||||
builder.append(profileID);
|
||||
builder.append(", projectLayer=");
|
||||
builder.append(projectLayer);
|
||||
builder.append(", projectId=");
|
||||
builder.append(projectId);
|
||||
builder.append(", projectID=");
|
||||
builder.append(projectID);
|
||||
builder.append(", layerItem=");
|
||||
builder.append(layerItem);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -9,6 +9,8 @@ import org.gcube.application.geoportalcommon.geoportal.GeoportalClientCaller;
|
|||
import org.gcube.application.geoportalcommon.geoportal.ProjectsCaller;
|
||||
import org.gcube.application.geoportalcommon.geoportal.UseCaseDescriptorCaller;
|
||||
import org.gcube.application.geoportalcommon.shared.geoportal.materialization.GCubeSDIViewerLayerDV;
|
||||
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.view.ProjectView;
|
||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
|
@ -37,7 +39,7 @@ public class GeoportalViewer_Tests {
|
|||
private static String TOKEN = "c41a00c0-7897-48d2-a67a-05190d6ce5e6-98187548"; // devVRE
|
||||
|
||||
private static String PROFILE_ID = "profiledConcessioni";
|
||||
private static String PROJECT_ID = "6311d408900dde90e44d9265";
|
||||
private static String PROJECT_ID = "634fc41ecd343e6571ed3db0";
|
||||
|
||||
private static String USERNAME = "francesco.mangiacrapa";
|
||||
|
||||
|
@ -55,7 +57,7 @@ public class GeoportalViewer_Tests {
|
|||
clientProjects = GeoportalClientCaller.projects();
|
||||
}
|
||||
|
||||
//@Test
|
||||
// @Test
|
||||
public void getProjectViewForID() {
|
||||
|
||||
try {
|
||||
|
@ -75,7 +77,7 @@ public class GeoportalViewer_Tests {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
// @Test
|
||||
public void getLayersForId() {
|
||||
System.out.println("getLayersForId [profileID: " + PROFILE_ID + ", projectID: " + PROJECT_ID + "] called");
|
||||
|
||||
|
@ -92,7 +94,8 @@ public class GeoportalViewer_Tests {
|
|||
String materializationParentJSONPath = String.format("%s..%s", Geoportal_JSON_Mapper.JSON_$_POINTER,
|
||||
Geoportal_JSON_Mapper.FILESET);
|
||||
|
||||
listLayers = Geoportal_JSON_Mapper.readGcubeSDILayersForFileset(materializationParentJSONPath, jsonDocument);
|
||||
listLayers = Geoportal_JSON_Mapper.readGcubeSDILayersForFileset(materializationParentJSONPath,
|
||||
jsonDocument);
|
||||
|
||||
listLayers.stream().forEach(s -> System.out.println(s));
|
||||
|
||||
|
@ -104,4 +107,31 @@ public class GeoportalViewer_Tests {
|
|||
|
||||
}
|
||||
|
||||
//@Test
|
||||
public void getImagesForId() {
|
||||
System.out.println("getImagesForId [profileID: " + PROFILE_ID + ", projectID: " + PROJECT_ID + "] called");
|
||||
|
||||
List<PayloadDV> listImages = null;
|
||||
|
||||
try {
|
||||
|
||||
ScopeProvider.instance.set(CONTEXT);
|
||||
SecurityTokenProvider.instance.set(TOKEN);
|
||||
Project project = clientProjects.getProjectByID(PROFILE_ID, PROJECT_ID);
|
||||
String jsonDocument = project.getTheDocument().toJson();
|
||||
System.out.println("JSON Project is: " + jsonDocument);
|
||||
|
||||
String filesetJSONPath = String.format("%s..%s", Geoportal_JSON_Mapper.JSON_$_POINTER, Geoportal_JSON_Mapper.FILESET);
|
||||
listImages = Geoportal_JSON_Mapper.readImagesForFileset(filesetJSONPath, jsonDocument);
|
||||
|
||||
listImages.stream().forEach(s -> System.out.println("Image: " + s));
|
||||
|
||||
} catch (Exception e) {
|
||||
String erroMsg = "Images are not available for profileID " + PROFILE_ID + " with projectID " + PROJECT_ID;
|
||||
System.out.println(erroMsg);
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue