Beispiel #1
0
        async public Task <IExplorerObject> CreateExplorerObject(IExplorerObject parentExObject)
        {
            SQLiteFDBDatasetExplorerObject parent = (SQLiteFDBDatasetExplorerObject)parentExObject;

            IFeatureDataset dataset = await parent.GetInstanceAsync() as IFeatureDataset;

            if (dataset == null)
            {
                return(null);
            }

            AccessFDB fdb = dataset.Database as AccessFDB;

            if (fdb == null)
            {
                return(null);
            }

            List <ExplorerDialogFilter> filters = new List <ExplorerDialogFilter>();

            filters.Add(new OpenFeatureclassFilter());
            ExplorerDialog dlg = new ExplorerDialog("Select Featureclass", filters, true);

            IExplorerObject ret = null;

            if (dlg.ShowDialog() == DialogResult.OK &&
                dlg.ExplorerObjects != null)
            {
                foreach (IExplorerObject exObj in dlg.ExplorerObjects)
                {
                    var exObjectInstance = await exObj?.GetInstanceAsync();

                    if (exObjectInstance is IFeatureClass)
                    {
                        int fcid = await fdb.CreateLinkedFeatureClass(dataset.DatasetName, (IFeatureClass)exObjectInstance);

                        if (ret == null)
                        {
                            IDatasetElement element = await dataset.Element(((IFeatureClass)exObjectInstance).Name);

                            if (element != null)
                            {
                                ret = new SQLiteFDBFeatureClassExplorerObject(
                                    parent,
                                    parent.FileName,
                                    parent.Name,
                                    element);
                            }
                        }
                    }
                }
            }
            return(ret);
        }
        public IExplorerObject CreateExplorerObject(IExplorerObject parentExObject)
        {
            SqlFDBDatasetExplorerObject parent = (SqlFDBDatasetExplorerObject)parentExObject;

            IFeatureDataset dataset = parent.Object as IFeatureDataset;

            if (dataset == null)
            {
                return(null);
            }

            AccessFDB fdb = dataset.Database as AccessFDB;

            if (fdb == null)
            {
                return(null);
            }

            List <ExplorerDialogFilter> filters = new List <ExplorerDialogFilter>();

            filters.Add(new OpenFeatureclassFilter());
            ExplorerDialog dlg = new ExplorerDialog("Select Featureclass", filters, true);

            IExplorerObject ret = null;

            if (dlg.ShowDialog() == DialogResult.OK &&
                dlg.ExplorerObjects != null)
            {
                foreach (IExplorerObject exObj in dlg.ExplorerObjects)
                {
                    if (exObj.Object is IFeatureClass)
                    {
                        int fcid = fdb.CreateLinkedFeatureClass(dataset.DatasetName, (IFeatureClass)exObj.Object);
                        if (ret == null)
                        {
                            IDatasetElement element = dataset[((IFeatureClass)exObj.Object).Name];
                            if (element != null)
                            {
                                ret = new AccessFDBFeatureClassExplorerObject(
                                    parentExObject as AccessFDBDatasetExplorerObject,
                                    ((AccessFDBDatasetExplorerObject)parentExObject).FileName,
                                    parentExObject.Name,
                                    element);
                            }
                        }
                    }
                }
            }
            return(ret);
        }