private AbstractReadOnlyAttributeInfo getAttributeByName(String name) { if (name != null) { for (AbstractAttributeInfo attributeInfo : layer.getLayerInfo().getFeatureInfo().getAttributes()) { if (attributeInfo instanceof AbstractReadOnlyAttributeInfo && attributeInfo.getName().equals(name)) { return (AbstractReadOnlyAttributeInfo) attributeInfo; } } } return null; }
private SearchCriterion[] buildCriteria() { List<SearchCriterion> critters = new ArrayList<SearchCriterion>(); String idField = layer.getLayerInfo().getFeatureInfo().getIdentifier().getName(); if (features != null) { for (Feature feat : features) { critters.add(new SearchCriterion(idField, "=", feat.getId())); } } return critters.toArray(new SearchCriterion[critters.size()]); } }
private AbstractReadOnlyAttributeInfo getSelectedAttribute() { Object value = attributeSelect.getValue(); if (value != null) { for (AbstractAttributeInfo attributeInfo : layer.getLayerInfo().getFeatureInfo().getAttributes()) { if (attributeInfo instanceof AbstractReadOnlyAttributeInfo && value.equals( ((AbstractReadOnlyAttributeInfo) attributeInfo).getLabel())) { return (AbstractReadOnlyAttributeInfo) attributeInfo; } } } return null; }
private String getEntryLabel(String key, Layer layer) { ClientVectorLayerInfo c = (ClientVectorLayerInfo) layer.getLayerInfo(); for (AbstractAttributeInfo a : c.getFeatureInfo().getAttributes()) { if (a.getName().equalsIgnoreCase(key)) { return ((PrimitiveAttributeInfo) a).getLabel(); } } return null; }
private boolean isIdentifying(String key, Layer layer) { if (layer instanceof VectorLayer) { ClientVectorLayerInfo c = (ClientVectorLayerInfo) layer.getLayerInfo(); for (AbstractAttributeInfo a : c.getFeatureInfo().getAttributes()) { if (a.getName().equalsIgnoreCase(key)) { return a instanceof AbstractReadOnlyAttributeInfo && ((AbstractReadOnlyAttributeInfo) a).isIdentifying(); } } } return false; }
public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) { String fId = record.getAttribute(FEATURE_ID); Feature feat = vectorFeatures.get(fId); StringBuilder tooltip = new StringBuilder(); if (feat != null) { for (AbstractAttributeInfo a : feat.getLayer().getLayerInfo().getFeatureInfo().getAttributes()) { if (a instanceof AbstractReadOnlyAttributeInfo && ((AbstractReadOnlyAttributeInfo) a).isIdentifying()) { tooltip.append("<b>"); tooltip.append(((AbstractReadOnlyAttributeInfo) a).getLabel()); tooltip.append("</b>: "); tooltip.append(feat.getAttributeValue(a.getName())); tooltip.append("<br/>"); } } tooltip.append(MESSAGES.nearbyFeaturesListTooltip()); } return tooltip.toString(); } });
public static AbstractReadOnlyAttributeInfo getAbstractReadOnlyAttributeInfo(VectorLayer vectorLayer, AttributeCriterion configuredSearchAttribute) { Object value = configuredSearchAttribute.getAttributeName(); if (value != null) { for (AbstractAttributeInfo attributeInfo : vectorLayer.getLayerInfo().getFeatureInfo().getAttributes()) { if (attributeInfo instanceof AbstractReadOnlyAttributeInfo && value.equals( ((AbstractReadOnlyAttributeInfo) attributeInfo).getLabel())) { return (AbstractReadOnlyAttributeInfo) attributeInfo; } } } return null; } }
@SuppressWarnings({ "rawtypes", "unused" }) private org.geomajas.gwt.client.map.feature.Feature toGwt(Feature feature) { org.geomajas.gwt.client.map.feature.Feature gwt; gwt = new org.geomajas.gwt.client.map.feature.Feature(feature.getId(), getLayer()); gwt.setGeometry(GeometryConverter.toGwt(feature.getGeometry())); Map<String, Attribute> attributes = new HashMap<String, Attribute>(); for (AttributeInfo info : getLayer().getLayerInfo().getFeatureInfo().getAttributes()) { // TODO transform attributes.... } gwt.setAttributes(attributes); return gwt; } }
private static Map<String, String> geometryCriterionToFilters(GeometryCriterion criterion, MapModel mapModel) { Map<String, String> filters = new LinkedHashMap<String, String>(); org.geomajas.gwt.client.spatial.geometry.Geometry mapGeom = GeometryConverter.toGwt(criterion.getGeometry()); String wktGeom = mapGeom.toWkt(); String method; switch (criterion.getOperator()) { case SearchByLocationRequest.QUERY_INTERSECTS: method = "INTERSECTS"; break; case SearchByLocationRequest.QUERY_CONTAINS: method = "CONTAINS"; break; case SearchByLocationRequest.QUERY_TOUCHES: method = "TOUCHES"; break; case SearchByLocationRequest.QUERY_WITHIN: method = "WITHIN"; break; default: return null; } for (String serverLayerId : criterion.getServerLayerIds()) { VectorLayer vl = findVectorLayer(mapModel, serverLayerId); if (vl != null) { String geomAttName = vl.getLayerInfo().getFeatureInfo().getGeometryType().getName(); filters.put(serverLayerId, method + "(" + geomAttName + ", " + wktGeom + ")"); } } return filters; }
public void setData(DynamicVectorLayerConfiguration layerConfig) { this.layerConfig = layerConfig; FeatureInfo fi = layerConfig.getClientVectorLayerInfo().getFeatureInfo(); String labelFieldName = layerConfig.getClientVectorLayerInfo().getNamedStyleInfo().getLabelStyle() .getLabelAttributeName(); PrimitiveAttributeInfo idField = fi.getIdentifier(); for (AttributeInfo ai : fi.getAttributes()) { if (ai instanceof PrimitiveAttributeInfo) { ListGridRecord lgr = new ListGridRecord(); PrimitiveAttributeInfo pai = (PrimitiveAttributeInfo) ai; lgr.setAttribute(FLD_NAME, pai.getName()); lgr.setAttribute(FLD_TYPE, pai.getType().toString()); lgr.setAttribute(FLD_IDENTIFYING, pai.isIdentifying()); lgr.setAttribute(FLD_IDFIELD, (pai.equals(idField))); lgr.setAttribute(FLD_LABELFIELD, pai.getName().equals(labelFieldName)); lgr.setAttribute(FLD_LABEL, pai.getLabel()); lgr.setAttribute(FLD_OBJECT, pai); grid.addData(lgr); if (pai.getName().equals(labelFieldName)) { currentLabelField = lgr; } if (pai.equals(idField)) { currentIdField = lgr; } if (!pai.isHidden()) { grid.selectRecord(lgr); } } // else unsupported } }
public DynamicVectorLayerConfiguration getData() { if (currentIdField == null || currentLabelField == null) { return null; } FeatureInfo fi = layerConfig.getClientVectorLayerInfo().getFeatureInfo(); fi.setIdentifier((PrimitiveAttributeInfo) currentIdField.getAttributeAsObject(FLD_OBJECT)); layerConfig.getClientVectorLayerInfo().getNamedStyleInfo().getLabelStyle() .setLabelAttributeName(currentLabelField.getAttributeAsString(FLD_NAME)); for (ListGridRecord r : grid.getRecords()) { PrimitiveAttributeInfo pai = (PrimitiveAttributeInfo) r.getAttributeAsObject(FLD_OBJECT); pai.setLabel(r.getAttributeAsString(FLD_LABEL)); pai.setIdentifying(r.getAttributeAsBoolean(FLD_IDENTIFYING)); pai.setHidden(!grid.isSelected(r)); pai.setType(PrimitiveType.fromValue(r.getAttributeAsString(FLD_TYPE))); } return layerConfig; }
featureListGrid.setHeight100(); String sortFieldName = layer.getLayerInfo().getFeatureInfo().getSortAttributeName(); SortType sortType = layer.getLayerInfo().getFeatureInfo().getSortType();