예제 #1
0
        public PgAttributesVM(AbsM.ITableBaseM table, object idObject, bool isReadOnly = false, bool isDebug = false, String wkt = null)
        {
            var pgTable = table as PgM.PgTableBaseM;

            if (pgTable == null)
            {
                throw new ArgumentNullException("Нет ссылки на таблицу");
            }
            else if (pgTable.PrimaryKeyField == null)
            {
                throw new ArgumentNullException("В таблице нет первичного ключа");
            }

            _isDebug = isDebug;
            _connect = ((PgVM.PgDataRepositoryVM)pgTable.Source).Connect;
            _table   = pgTable;
            _source  = pgTable.Source as PgVM.PgDataRepositoryVM;

            // Проверка прав на объект с атрибутами
            if (isReadOnly || pgTable.IsReadOnly || !pgTable.CanWrite)
            {
                _isReadOnly = true;
            }

            _attributesListVM = new PgAtVM.PgAttributesListVM(this, idObject);
            if (_table.FileInfo != null)
            {
                _filesVM = new PgAtVM.PgAttributeFilesVM(this);
            }
            if (_table.IsMapStyle && idObject != null)
            {
                _styleVM = new PgAttributesStyleVM(this);
            }
            if (_table.Type == AbsM.ETableType.MapLayer || _table.Type == AbsM.ETableType.View)
            {
                //_pgGeometryVM = new PgAttributesGeomVM(this, wkt);
                _pgGeometryVM = new PgAttributesGeomVM(_table.Id, wkt, false, (int?)_attributesListVM.PkAttribute.Value, (_table.Source as PgVM.PgDataRepositoryVM).Connect);
            }
            Title = String.Format("Объект: [id: {0}]; Таблица: \"{1}\"; Источник: \"{3}@{4}:{5} ({6})\"; Тип: \"{2}\"",
                                  idObject ?? "null",
                                  _table.Text,
                                  _table.Source.Type,
                                  _source.Connect.Database,
                                  _source.Connect.Host,
                                  _source.Connect.Port,
                                  _source.CurrentUser.NameFull);
        }
예제 #2
0
 public PgAttributeFileM(PgAtVM.PgAttributeFilesVM source, int idFile, BitmapSource imgPreview)
 {
     _source     = source;
     _idFile     = idFile;
     _imgPreview = imgPreview;
 }