public CosmeticTableViewVM(CosmeticTableBaseM cosTable) { this.MoveToObject = false; _axMapLib = (cosTable.Source as CosmeticDataRepositoryVM).MapViewer; _mvLayer = _axMapLib.getLayer(cosTable.Name); _cosTable = cosTable; _isReadOnly = true; _filterVM = new CosmeticTableViewFilterVM(this, null); Title = String.Format("{0}: \"{1}\"", Rekod.Properties.Resources.CosTableView_CosmeticLayer, cosTable.Text); foreach (var field in _cosTable.Fields) { if (field.Type != AbsM.EFieldType.Geometry) { DataColumn dc = new DataColumn(field.Name, typeof(String)); Data.Columns.Add(dc); if (cosTable.PrimaryKeyField == field) { dc.ReadOnly = true; Data.PrimaryKey = new[] { dc }; } } } GetColumns(); Reload(); PropertyChanged += CosmeticTableViewVM_PropertyChanged; SelectedItems.CollectionChanged += SelectedItems_CollectionChanged; Reload(); }
public DataRepositoryVM(TmM.ITableManagerVM source, AbsM.ERepositoryType type, bool isTable) { _source = source; if (_source != null) { _mv = source.mv; } else { _mv = Program.mainFrm1.axMapLIb1; } _isTable = isTable; _type = type; _id = ++_idSource; _hasVMWindow = new Dictionary <WindowViewModelBase_VM, Window>(); _hashTables = new Dictionary <object, AbsM.ITableBaseM>(); _layers = new ObservableCollection <AbsM.ILayerM>(); ICollectionView defView = CollectionViewSource.GetDefaultView(_layers); defView.Filter = delegate(object o) { return(!(o as AbsM.TableBaseM).IsHidden); }; _groups = new ObservableCollection <AbsM.IGroupM>(); _hashGroups = new Dictionary <object, AbsM.IGroupM>(); _tables = new ObservableCollection <AbsM.ITableBaseM>(); _tables.CollectionChanged += Tables_CollectionChanged; _groups.CollectionChanged += Groups_CollectionChanged; }
/// <summary> /// Применить фильтр на карте /// </summary> public void ApplyOnMap(object parameter = null) { AxmvMapLib.AxMapLIb axMapLib = Program.mainFrm1.axMapLIb1; Pg_M.PgTableBaseM pgTable = _source.Table as Pg_M.PgTableBaseM; mvLayer layer = axMapLib.getLayer(pgTable.NameMap); if (layer != null) { List <IParams> listParams = new List <IParams>(); String query = GetWhere(DynamicFilter, listParams); // todo: (Dias) На текущий момент axMapLib в строке фильтра не использует параметры. // Поэтому приходится парсить параметры. Нужно чтобы карта поддерживала параметры в фильтрах foreach (IParams param in listParams) { if (param.type == DbType.Date || param.type == DbType.DateTime || param.type == DbType.String) { query = query.Replace(param.paramName, String.Format("'{0}'", param.value)); } else { query = query.Replace(param.paramName, String.Format("{0}", param.value)); } } layer.Filter = query; } }
public CosmeticTableBaseM(AbsM.IDataRepositoryM source, int srid) : base(source, srid, AbsM.ETableType.MapLayer) { _axMapLib = (Source as AbsVM.DataRepositoryVM).MapViewer; _id = CosmeticTableBaseM.cosmeticLayerId++; _objects = new ObservableCollection <CosmeticObjectM>(); PrimaryKeyField = new CosmeticFieldM(this, PkFieldName, "id", AbsM.EFieldType.Integer, false); Fields.Add(PrimaryKeyField); Fields.Add(new CosmeticFieldM(this, "label", Rekod.Properties.Resources.CosTableView_Label, AbsM.EFieldType.Text, false)); Fields.Add(new CosmeticFieldM(this, GeomFieldName, "Геометрия", AbsM.EFieldType.Geometry, false)); DefaultStyle = new PgStyleLayerM(CosmeticStyleType.All); LabelStyle = new PgStyleLableM(); PropertyChanged += CosmeticTableBaseM_PropertyChanged; }