Пример #1
0
        private void SetPanelVisibity()
        {
            switch (_panelIndex)
            {
            case 0:
                panelStep2.Visible = false;
                panelStep1.Visible = true;
                btnBack.Visible    = false;
                btnNext.Enabled    = (txtTargetClass.Text != String.Empty);
                btnNext.Text       = LocalizedResources.GetResString("String.Next", "Next") + " >";
                break;

            case 1:
                panelStep1.Visible = false;
                panelStep2.Visible = true;
                btnBack.Visible    = true;
                btnNext.Text       = LocalizedResources.GetResString("String.Export", "Export");

                if (_listViewItem.MaxFieldLength > MaximumFieldLength(_dataset))
                {
                    _listViewItem       = new FeatureClassListViewItem(_sourceFeatureClass, MaximumFieldLength(_dataset));
                    gvFields.DataSource = _listViewItem.Fields;
                }
                break;
            }
        }
        async private Task ImportAsync(object element)
        {
            if (_fdb == null || _import == null)
            {
                return;
            }

            ISpatialIndexDef sIndexDef = null;

            if (_fdb is AccessFDB)
            {
                sIndexDef = await((AccessFDB)_fdb).SpatialIndexDef(_dsname);
            }

            if (element is IFeatureClass)
            {
                if (!await _import.ImportToNewFeatureclass(
                        _fdb,
                        _dsname,
                        ((IFeatureClass)element).Name,
                        (IFeatureClass)element,
                        null,
                        true,
                        null,
                        sIndexDef))
                {
                    MessageBox.Show(_import.lastErrorMsg);
                }
            }
            else if (element is FeatureClassListViewItem)
            {
                FeatureClassListViewItem item = element as FeatureClassListViewItem;
                if (item.FeatureClass == null)
                {
                    return;
                }

                MSSpatialIndex msIndex = new MSSpatialIndex();
                msIndex.GeometryType       = GeometryFieldType.MsGeometry;
                msIndex.SpatialIndexBounds = item.FeatureClass.Envelope;
                msIndex.Level1             = msIndex.Level2 = msIndex.Level3 = msIndex.Level4 = MSSpatialIndexLevelSize.LOW;

                if (!await _import.ImportToNewFeatureclass(
                        _fdb,
                        _dsname,
                        item.TargetName,
                        item.FeatureClass,
                        item.ImportFieldTranslation,
                        true,
                        null,
                        sIndexDef))
                {
                    MessageBox.Show(_import.lastErrorMsg);
                }
            }
        }
Пример #3
0
        private void ExportAsync_fdb(object element)
        {
            if (_fdbExport == null)
            {
                return;
            }

            List <IQueryFilter> filters = null;

            if (_filter != null)
            {
                filters = new List <IQueryFilter>();
                filters.Add(_filter);
            }

            if (element is IFeatureClass)
            {
                if (!_fdbExport.ImportToNewFeatureclass(
                        _dataset.Database as IFeatureDatabase,
                        _dataset.DatasetName,
                        _listViewItem.TargetName,
                        (IFeatureClass)element,
                        null,
                        true,
                        filters))
                {
                    MessageBox.Show(_export.lastErrorMsg);
                }
            }
            else if (element is FeatureClassListViewItem)
            {
                FeatureClassListViewItem item = element as FeatureClassListViewItem;
                if (item.FeatureClass == null)
                {
                    return;
                }

                if (!_fdbExport.ImportToNewFeatureclass(
                        _dataset.Database as IFeatureDatabase,
                        _dataset.DatasetName,
                        item.TargetName,
                        item.FeatureClass,
                        item.ImportFieldTranslation,
                        true,
                        filters))
                {
                    MessageBox.Show(_fdbExport.lastErrorMsg);
                }
            }
        }
        private void ImportAsync(object element)
        {
            if (_import == null)
            {
                return;
            }

            if (element is IFeatureClass)
            {
                if (!_import.ImportToNewFeatureclass(
                        _dataset,
                        ((IFeatureClass)element).Name,
                        (IFeatureClass)element,
                        null,
                        true))
                {
                    MessageBox.Show(_import.lastErrorMsg);
                }
            }
            else if (element is FeatureClassListViewItem)
            {
                FeatureClassListViewItem item = element as FeatureClassListViewItem;
                if (item.FeatureClass == null)
                {
                    return;
                }

                if (!_import.ImportToNewFeatureclass(
                        _dataset,
                        item.TargetName,
                        item.FeatureClass,
                        item.ImportFieldTranslation,
                        true))
                {
                    MessageBox.Show(_import.lastErrorMsg);
                }
            }
        }
Пример #5
0
        public ExportFeatureClassDialog(IDisplay display, IFeatureLayer sourceFeatureLayer)
        {
            InitializeComponent();

            _sourceFeatureClass = sourceFeatureLayer.Class as IFeatureClass;

            #region Filter
            //All Features
            //Selected Features
            //Features in actual extent
            cmbExport.Items.Add(new ExportMethodItem("All Features", null));

            if (sourceFeatureLayer is IFeatureSelection &&
                ((IFeatureSelection)sourceFeatureLayer).SelectionSet != null &&
                ((IFeatureSelection)sourceFeatureLayer).SelectionSet.Count > 0)
            {
                ISelectionSet selectionSet = ((IFeatureSelection)sourceFeatureLayer).SelectionSet;
                IQueryFilter  selFilter    = null;
                if (selectionSet is IIDSelectionSet)
                {
                    selFilter = new RowIDFilter(_sourceFeatureClass.IDFieldName, ((IIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IGlobalIDSelectionSet)
                {
                    selFilter = new GlobalRowIDFilter(_sourceFeatureClass.IDFieldName, ((IGlobalIDSelectionSet)selectionSet).IDs);
                }
                else if (selectionSet is IQueryFilteredSelectionSet)
                {
                    selFilter = ((IQueryFilteredSelectionSet)selectionSet).QueryFilter.Clone() as IQueryFilter;
                }

                if (selFilter != null)
                {
                    selFilter.SubFields = "*";
                    ExportMethodItem item = new ExportMethodItem("Selected Features", selFilter);
                    cmbExport.Items.Add(item);
                    cmbExport.SelectedItem = item;
                }
            }

            if (display != null && display.Envelope != null)
            {
                SpatialFilter dispFilter = new SpatialFilter();
                dispFilter.SubFields = "*";

                dispFilter.FilterSpatialReference = display.SpatialReference;
                dispFilter.Geometry        = display.Envelope;
                dispFilter.SpatialRelation = spatialRelation.SpatialRelationIntersects;

                cmbExport.Items.Add(new ExportMethodItem("Features in actual extent", dispFilter));
            }

            if (cmbExport.SelectedIndex == -1)
            {
                cmbExport.SelectedIndex = 0;
            }
            #endregion

            _listViewItem       = new FeatureClassListViewItem(_sourceFeatureClass, 255);
            gvFields.DataSource = _listViewItem.Fields;

            panelStep1.Dock = panelStep2.Dock = DockStyle.Fill;
            SetPanelVisibity();
        }
Пример #6
0
        private void ExportAsync_fdb(object element)
        {
            if (_fdbExport == null)
            {
                return;
            }

            List <IQueryFilter> filters = null;

            if (_filter != null)
            {
                filters = new List <IQueryFilter>();
                filters.Add(_filter);
            }

            if (element is IFeatureClass)
            {
                IFeatureClass    fc  = (IFeatureClass)element;
                ISpatialIndexDef def = null;
                if (fc.Dataset != null && fc.Dataset.Database is AccessFDB)
                {
                    def = ((AccessFDB)fc.Dataset.Database).FcSpatialIndexDef(fc.Name);
                    if (_dataset.Database is AccessFDB)
                    {
                        ISpatialIndexDef dsDef = ((AccessFDB)_dataset.Database).SpatialIndexDef(_dataset.DatasetName);
                        if (dsDef.GeometryType != def.GeometryType)
                        {
                            def = dsDef;
                        }
                    }
                }
                if (!_fdbExport.ImportToNewFeatureclass(
                        _dataset.Database as IFeatureDatabase,
                        _dataset.DatasetName,
                        _targetName,
                        fc,
                        null,
                        true,
                        filters,
                        def))
                {
                    MessageBox.Show(_fdbExport.lastErrorMsg);
                }
            }
            else if (element is FeatureClassListViewItem)
            {
                FeatureClassListViewItem item = element as FeatureClassListViewItem;
                if (item.FeatureClass == null)
                {
                    return;
                }

                IFeatureClass    fc  = item.FeatureClass;
                ISpatialIndexDef def = null;
                if (fc.Dataset != null && fc.Dataset.Database is AccessFDB)
                {
                    def = ((AccessFDB)fc.Dataset.Database).FcSpatialIndexDef(fc.Name);
                    if (_dataset.Database is AccessFDB)
                    {
                        ISpatialIndexDef dsDef = ((AccessFDB)_dataset.Database).SpatialIndexDef(_dataset.DatasetName);
                        if (dsDef.GeometryType != def.GeometryType)
                        {
                            def = dsDef;
                        }
                    }
                }

                if (!_fdbExport.ImportToNewFeatureclass(
                        _dataset.Database as IFeatureDatabase,
                        _dataset.DatasetName,
                        item.TargetName,
                        fc,
                        item.ImportFieldTranslation,
                        true,
                        filters,
                        def))
                {
                    MessageBox.Show(_fdbExport.lastErrorMsg);
                }
            }
        }