Fixed WFS on layers
This commit is contained in:
parent
0900cd46c5
commit
05196b2294
|
@ -562,7 +562,7 @@ public class GeoportalDataViewer implements EntryPoint {
|
|||
List<? extends DocumentDV> result = searchPerformedEvent.getData();
|
||||
|
||||
if (result != null && result.size() > 0) {
|
||||
String cqlFilter = "product_id IN(";
|
||||
String cqlFilter = GeoportalDataViewerConstants.PROJECT_ID_KEY_FEATURE+" IN(";
|
||||
for (DocumentDV documentDV : result) {
|
||||
cqlFilter += "'" + documentDV.getProjectID() + "',";
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ public class GeoportalDataViewerConstants {
|
|||
public static enum MapEventType {
|
||||
MOUSE_CLICK, MAP_ZOOM_END, MOVE_END, ADDED_CENTROID_LAYER_TO_MAP
|
||||
}
|
||||
|
||||
public static final String PROJECT_ID_KEY_FEATURE = "projectid";
|
||||
|
||||
/**
|
||||
* The Enum LayerType.
|
||||
|
|
|
@ -30,6 +30,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.gis.ExtentWrapped;
|
|||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.MapUtils;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.gis.OpenLayerMap;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.ModalWindow;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.ProjectUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.URLUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.GeoNaSpatialQueryResult;
|
||||
|
@ -756,13 +757,13 @@ public class LayerManager {
|
|||
//
|
||||
ProjectDV projectDV = lo.getProjectDV();
|
||||
Entry<String, Object> firstEntry = projectDV.getTheDocument().getFirstEntryOfMap();
|
||||
String htmlMsg = firstEntry.getKey()+": " +firstEntry.getValue();
|
||||
String htmlMsg = ProjectUtil.toHMLCode(projectDV.getTheDocument());
|
||||
|
||||
String projectIntro = htmlMsg.length() > 100 ? StringUtil.ellipsize(htmlMsg, 100)
|
||||
: htmlMsg;
|
||||
|
||||
Heading heading = new Heading(4, lo.getProjectDV().getProfileName());
|
||||
heading.setTitle("Project ID:"+newProjectID);
|
||||
heading.setTitle("Project ID: "+newProjectID);
|
||||
heading.getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
flowPanel.add(heading);
|
||||
flowPanel.add(new HTML(projectIntro));
|
||||
|
|
|
@ -9,6 +9,9 @@ public class ProjectUtil {
|
|||
public static <T extends DocumentDV> String toHMLCode(T document, String projectID) {
|
||||
String htmlCode = "";
|
||||
|
||||
if (document == null)
|
||||
return htmlCode;
|
||||
|
||||
Entry<String, Object> firstEntrySet = document.getFirstEntryOfMap();
|
||||
if (firstEntrySet != null) {
|
||||
htmlCode += firstEntrySet.getKey() + ": <b>" + firstEntrySet.getValue() + "</b>";
|
||||
|
@ -21,4 +24,18 @@ public class ProjectUtil {
|
|||
return htmlCode;
|
||||
}
|
||||
|
||||
public static <T extends DocumentDV> String toHMLCode(T document) {
|
||||
String htmlCode = "";
|
||||
|
||||
if (document == null)
|
||||
return htmlCode;
|
||||
|
||||
Entry<String, Object> firstEntrySet = document.getFirstEntryOfMap();
|
||||
if (firstEntrySet != null) {
|
||||
htmlCode += firstEntrySet.getKey() + ": <b>" + firstEntrySet.getValue() + "</b>";
|
||||
}
|
||||
|
||||
return htmlCode;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetai
|
|||
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.DO_LAYER_ACTION;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.events.DoActionOnDetailLayersEvent.SwapLayer;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.resources.GNAImages;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.ui.cms.project.ProjectUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.util.StringUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerItem;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.LayerObject;
|
||||
|
@ -58,11 +59,18 @@ public class DragDropLayer extends FlowPanel {
|
|||
this.labelLayerName = new Label(layerName);
|
||||
this.labelLayerName.setTitle(layerItem.getName());
|
||||
this.labelLayerName.setType(LabelType.INFO);
|
||||
|
||||
String referProject = null;
|
||||
GWT.log("DragDropLayer for projectDV: "+ layerObject.getProjectDV());
|
||||
if(layerObject.getProjectDV()!=null && layerObject.getProjectDV().getTheDocument()!=null) {
|
||||
referProject = ProjectUtil.toHMLCode(layerObject.getProjectDV().getTheDocument());
|
||||
}
|
||||
|
||||
LayerItem refConcessione = layerObject.getLayerItem();
|
||||
String nameConcessione = StringUtil.ellipsize(refConcessione.getName(), 40);
|
||||
referProject = referProject!=null?referProject:layerObject.getLayerItem().getName();
|
||||
//LayerItem refConcessione = layerObject.getLayerItem();
|
||||
String nameConcessione = StringUtil.ellipsize(referProject, 40);
|
||||
com.google.gwt.user.client.ui.Label labelConcessione = new com.google.gwt.user.client.ui.Label(nameConcessione);
|
||||
labelConcessione.setTitle(refConcessione.getName());
|
||||
labelConcessione.setTitle(referProject);
|
||||
|
||||
getElement().getStyle().setMarginTop(5, Unit.PX);
|
||||
getElement().getStyle().setMarginBottom(10, Unit.PX);
|
||||
|
|
|
@ -10,11 +10,11 @@ import java.util.Iterator;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import javax.servlet.ServletConfig;
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.gcube.application.geoportal.common.model.configuration.Configuration;
|
||||
|
@ -50,6 +50,7 @@ import org.gcube.application.geoportalcommon.shared.gis.BoundsMap;
|
|||
import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV;
|
||||
import org.gcube.application.geoportalcommon.shared.products.model.UploadedImageDV;
|
||||
import org.gcube.application.geoportalcommon.util.URLParserUtil;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerConstants;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.client.GeoportalDataViewerService;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.FeatureParser;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.server.gis.WMSUrlValidator;
|
||||
|
@ -68,7 +69,6 @@ import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wfs.FeatureRow;
|
|||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.GeoInformationForWMSRequest;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.Styles;
|
||||
import org.gcube.portlets.user.geoportaldataviewer.shared.gis.wms.ZAxis;
|
||||
import org.gcube.portlets.user.urlshortener.UrlShortener;
|
||||
import org.gcube.spatial.data.geoutility.GeoNcWMSMetadataUtility;
|
||||
import org.gcube.spatial.data.geoutility.bean.LayerStyles;
|
||||
import org.gcube.spatial.data.geoutility.bean.LayerZAxis;
|
||||
|
@ -89,7 +89,6 @@ import com.google.gwt.user.server.rpc.RemoteServiceServlet;
|
|||
@SuppressWarnings("serial")
|
||||
public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet implements GeoportalDataViewerService {
|
||||
|
||||
public static final String PRODUCT_ID = "product_id";
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(GeoportalDataViewerServiceImpl.class);
|
||||
|
||||
|
@ -520,53 +519,53 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
return listDAO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the preview image for concessione from http session. It is the first
|
||||
* image retrieved from mongoService for mongoConcessioneId. Caching it into
|
||||
* session
|
||||
*
|
||||
* @param httpServletRequest the http servlet request
|
||||
* @param itemType the item type
|
||||
* @param mongoConcessioneId the mongo concessione id
|
||||
* @return the preview image for concessione
|
||||
*/
|
||||
private UploadedImageDV sessionloadPreviewImageForConcessione(HttpServletRequest httpServletRequest,
|
||||
String itemType, String mongoConcessioneId) {
|
||||
LOG.info("sessionloadPreviewImageForConcessione [mongoConcessioneId: " + mongoConcessioneId + ", itemType: "
|
||||
+ itemType + "] called");
|
||||
|
||||
HttpSession session = httpServletRequest.getSession();
|
||||
Map<String, List<UploadedImageDV>> mapImages = null;
|
||||
List<UploadedImageDV> lUI = null;
|
||||
try {
|
||||
mapImages = (LinkedHashMap) session.getAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE);
|
||||
|
||||
if (mapImages == null) {
|
||||
mapImages = new LinkedHashMap<String, List<UploadedImageDV>>();
|
||||
}
|
||||
|
||||
List<UploadedImageDV> imagePreviewForConcessione = mapImages.get(mongoConcessioneId);
|
||||
|
||||
if (imagePreviewForConcessione == null || imagePreviewForConcessione.size() == 0) {
|
||||
LOG.info("Into " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session the mongoConcessioneId "
|
||||
+ mongoConcessioneId + " is empty or null, loading from service and filling it");
|
||||
lUI = getUploadedImagesForId(httpServletRequest, itemType, mongoConcessioneId, 1);
|
||||
mapImages.put(mongoConcessioneId, lUI);
|
||||
}
|
||||
|
||||
lUI = mapImages.get(mongoConcessioneId);
|
||||
LOG.info("From " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session read image: " + lUI);
|
||||
session.setAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE, mapImages);
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.warn("Error occurred when instancing the " + UrlShortener.class.getSimpleName(), e);
|
||||
}
|
||||
|
||||
if (lUI == null || lUI.isEmpty())
|
||||
return null;
|
||||
|
||||
return lUI.get(0);
|
||||
}
|
||||
// /**
|
||||
// * Gets the preview image for concessione from http session. It is the first
|
||||
// * image retrieved from mongoService for mongoConcessioneId. Caching it into
|
||||
// * session
|
||||
// *
|
||||
// * @param httpServletRequest the http servlet request
|
||||
// * @param itemType the item type
|
||||
// * @param mongoConcessioneId the mongo concessione id
|
||||
// * @return the preview image for concessione
|
||||
// */
|
||||
// private UploadedImageDV sessionloadPreviewImageForConcessione(HttpServletRequest httpServletRequest,
|
||||
// String itemType, String mongoConcessioneId) {
|
||||
// LOG.info("sessionloadPreviewImageForConcessione [mongoConcessioneId: " + mongoConcessioneId + ", itemType: "
|
||||
// + itemType + "] called");
|
||||
//
|
||||
// HttpSession session = httpServletRequest.getSession();
|
||||
// Map<String, List<UploadedImageDV>> mapImages = null;
|
||||
// List<UploadedImageDV> lUI = null;
|
||||
// try {
|
||||
// mapImages = (LinkedHashMap) session.getAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE);
|
||||
//
|
||||
// if (mapImages == null) {
|
||||
// mapImages = new LinkedHashMap<String, List<UploadedImageDV>>();
|
||||
// }
|
||||
//
|
||||
// List<UploadedImageDV> imagePreviewForConcessione = mapImages.get(mongoConcessioneId);
|
||||
//
|
||||
// if (imagePreviewForConcessione == null || imagePreviewForConcessione.size() == 0) {
|
||||
// LOG.info("Into " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session the mongoConcessioneId "
|
||||
// + mongoConcessioneId + " is empty or null, loading from service and filling it");
|
||||
// lUI = getUploadedImagesForId(httpServletRequest, itemType, mongoConcessioneId, 1);
|
||||
// mapImages.put(mongoConcessioneId, lUI);
|
||||
// }
|
||||
//
|
||||
// lUI = mapImages.get(mongoConcessioneId);
|
||||
// LOG.info("From " + CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE + " object session read image: " + lUI);
|
||||
// session.setAttribute(CACHE_IMAGE_PREVIEW_FOR_CONCESSIONE, mapImages);
|
||||
//
|
||||
// } catch (Exception e) {
|
||||
// LOG.warn("Error occurred when instancing the " + UrlShortener.class.getSimpleName(), e);
|
||||
// }
|
||||
//
|
||||
// if (lUI == null || lUI.isEmpty())
|
||||
// return null;
|
||||
//
|
||||
// return lUI.get(0);
|
||||
// }
|
||||
|
||||
/**
|
||||
* Gets the uploaded images for id.
|
||||
|
@ -1135,7 +1134,7 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
// Expected 1 feature
|
||||
FeatureRow fRow = features.get(0);
|
||||
if (fRow.getMapProperties() != null) {
|
||||
List<String> productIDs = fRow.getMapProperties().get("projectid");
|
||||
List<String> productIDs = fRow.getMapProperties().get(GeoportalDataViewerConstants.PROJECT_ID_KEY_FEATURE);
|
||||
if (productIDs != null && productIDs.size() > 0) {
|
||||
String projectID = productIDs.get(0);
|
||||
layerObject.setProjectID(projectID);
|
||||
|
@ -1197,49 +1196,42 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme
|
|||
// TODO CHECK THIS
|
||||
// Getting the projectid from WFS features, but limiting to the first one, Do we
|
||||
// have more than one centroid in the same position??
|
||||
|
||||
|
||||
//Mininal set of info for displaying into popup
|
||||
if (layerObject.getProjectDV() == null) {
|
||||
|
||||
ProjectDV projectDV = new ProjectDV();
|
||||
projectDV.setId(layerObject.getProjectID());
|
||||
projectDV.setProfileName(layerObject.getProfileID());
|
||||
layerObject.setProjectDV(projectDV);
|
||||
}
|
||||
|
||||
if(layerObject.getProjectDV().getTheDocument()==null) {
|
||||
Project theProject;
|
||||
try {
|
||||
theProject = GeoportalClientCaller.projects().getProjectByID(layerObject.getProfileID(),
|
||||
layerObject.getProjectID());
|
||||
|
||||
ProjectDVBuilder projectBuilder = ProjectDVBuilder.newBuilder().fullDocumentMap(false);
|
||||
ProjectDV projectDV = ConvertToDataValueObjectModel.toProjectDV(theProject, projectBuilder);
|
||||
layerObject.setProjectDV(projectDV);
|
||||
|
||||
|
||||
LinkedHashMap<String, Object> documentAsMap = new LinkedHashMap<String, Object>(1);
|
||||
|
||||
Entry<String, Object> firstEntry = null;
|
||||
try {
|
||||
firstEntry = theProject.getTheDocument().entrySet().iterator().next();
|
||||
documentAsMap.put(firstEntry.getKey(), firstEntry.getValue());
|
||||
}catch (Exception e) {
|
||||
//Silent
|
||||
}
|
||||
|
||||
DocumentDV documentDV = new DocumentDV();
|
||||
documentDV.setDocumentAsMap(documentAsMap);
|
||||
layerObject.getProjectDV().setTheDocument(documentDV);
|
||||
} catch (Exception e) {
|
||||
String erroMsg = "Error occurred on loading project for profileID "+layerObject.getProfileID()+" and projectID "+layerObject.getProjectID();
|
||||
String erroMsg = "Error occurred on loading document for profileID "+layerObject.getProfileID()+" and projectID "+layerObject.getProjectID();
|
||||
LOG.warn(erroMsg, e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 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);
|
||||
// layerObject.setProjectID(projectID);
|
||||
// String profileID = layerObject.getProfileID();
|
||||
// try {
|
||||
// Project theProject = GeoportalClientCaller.projects().getProjectByID(profileID,
|
||||
// projectID);
|
||||
// ProjectDVBuilder projectBuilder = ProjectDVBuilder.newBuilder()
|
||||
// .fullDocumentMap(false);
|
||||
// ProjectDV projectDV = ConvertToDataValueObjectModel.toProjectDV(theProject,
|
||||
// projectBuilder);
|
||||
// // geoDAO.setProjectDV(projectDV);
|
||||
// layerObject.setProjectDV(projectDV);
|
||||
// // Limiting to 1 feature of Layers
|
||||
// continue;
|
||||
// } catch (Exception e) {
|
||||
// LOG.warn("Error on loading the Project for projectID: " + projectID + " profileID: "
|
||||
// + profileID);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
LOG.debug("Case PROJECT_LAYER/GENERIC_LAYER setting layerObject: " + layerObject);
|
||||
geoDAO.setSourceLayerObject(layerObject);
|
||||
LOG.info("For layer name: " + layerObject.getLayerItem().getName() + " got " + features.size()
|
||||
+ " feature/s");
|
||||
|
|
Loading…
Reference in New Issue