private List <ISpatialElement> GetElementViewSpatialElements(MapElementView mapView) { MapBindingFieldPairCollection mapBindingFieldPairs = mapView.MapBindingFieldPairs; if (mapBindingFieldPairs == null) { return(null); } SpatialElementKey obj = CreateDataRegionSpatialElementKey(mapBindingFieldPairs); List <ISpatialElement> list = null; foreach (KeyValuePair <SpatialElementKey, SpatialElementInfoGroup> item in m_spatialElementsDictionary) { foreach (SpatialElementInfo element in item.Value.Elements) { if (SpatialDataMapper.CreateCoreSpatialElementKey(element.CoreSpatialElement, mapView.MapBindingFieldPairs, m_mapVectorLayer.MapDef.Name, m_mapVectorLayer.Name).Equals(obj)) { if (list == null) { list = new List <ISpatialElement>(); } list.Add(element.CoreSpatialElement); } } } return(list); }
internal void ValidateKey(SpatialElementKey spatialElementKey, MapBindingFieldPairCollection mapBindingFieldPairs) { if (m_spatialDataMapper.KeyTypes == null) { return; } int num = 0; while (true) { if (num >= spatialElementKey.KeyValues.Count) { return; } object obj = spatialElementKey.KeyValues[num]; if (obj != null) { Type type = obj.GetType(); Type type2 = m_spatialDataMapper.KeyTypes[num]; if (!(type2 == null) && type != type2) { object obj2 = Convert(obj, type, type2); if (obj2 == null) { break; } spatialElementKey.KeyValues[num] = obj2; } } num++; } throw new RenderingObjectModelException(RPRes.rsMapFieldBindingExpressionTypeMismatch(RPRes.rsObjectTypeMap, m_mapVectorLayer.MapDef.Name, m_mapVectorLayer.Name, SpatialDataMapper.GetBindingFieldName(mapBindingFieldPairs[num]))); }
internal static SpatialElementKey CreateDataRegionSpatialElementKey(MapBindingFieldPairCollection mapBindingFieldPairs) { List <object> list = new List <object>(); for (int i = 0; i < mapBindingFieldPairs.Count; i++) { list.Add(EvaluateBindingExpression(mapBindingFieldPairs[i])); } return(new SpatialElementKey(list)); }
private SpatialElementInfoGroup GetSpatialElementsFromDataRegionKey() { MapBindingFieldPairCollection mapBindingFieldPairs = m_mapVectorLayer.MapBindingFieldPairs; if (mapBindingFieldPairs != null) { SpatialElementKey spatialElementKey = CreateDataRegionSpatialElementKey(mapBindingFieldPairs); ValidateKey(spatialElementKey, mapBindingFieldPairs); if (m_spatialElementsDictionary.TryGetValue(spatialElementKey, out SpatialElementInfoGroup value)) { return(value); } } return(null); }
internal static SpatialElementKey CreateCoreSpatialElementKey(ISpatialElement coreSpatialElement, MapBindingFieldPairCollection mapBindingFieldPairs, string mapName, string layerName) { if (mapBindingFieldPairs == null) { return(new SpatialElementKey(null)); } List <object> list = new List <object>(); for (int i = 0; i < mapBindingFieldPairs.Count; i++) { list.Add(GetBindingFieldValue(coreSpatialElement, mapBindingFieldPairs[i], mapName, layerName)); } return(new SpatialElementKey(list)); }