예제 #1
0
        async public Task <IExplorerObject> CreateExplorerObject(IExplorerObject parentExObject)
        {
            if (!CanCreate(parentExObject))
            {
                return(null);
            }

            FormNewDataset dlg = new FormNewDataset();

            dlg.IndexTypeIsEditable = false;
            if (dlg.ShowDialog() != DialogResult.OK)
            {
                return(null);
            }

            SQLiteFDB fdb = new SQLiteFDB();
            await fdb.Open(parentExObject.FullName);

            int dsID = -1;

            string datasetName = dlg.DatasetName;

            switch (dlg.DatasetType)
            {
            case FormNewDataset.datasetType.FeatureDataset:
                dsID = await fdb.CreateDataset(datasetName, dlg.SpatialReferene);

                break;

            case FormNewDataset.datasetType.ImageDataset:
                dsID = await fdb.CreateImageDataset(datasetName, dlg.SpatialReferene, null, dlg.ImageSpace, dlg.AdditionalFields);

                datasetName = "#" + datasetName;
                break;
            }

            if (dsID == -1)
            {
                MessageBox.Show(fdb.LastErrorMessage, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(null);
            }

            return(new SQLiteFDBDatasetExplorerObject(parentExObject, parentExObject.FullName, datasetName));
        }