コード例 #1
0
        public bool GenerateNameMapping(IEnumName ienumName_0, IName iname_0, out IEnumNameMapping ienumNameMapping_0)
        {
            bool flag;

            ienumNameMapping_0 = null;
            ienumName_0.Reset();
            IName name = ienumName_0.Next();

            if (!(name is IDatasetName) ||
                (name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriFileSystemWorkspace)
            {
                ienumName_0.Reset();
                flag = this.igeoDBDataTransfer_0.GenerateNameMapping(ienumName_0, iname_0, out ienumNameMapping_0);
            }
            else
            {
                MyEnumNameMapping myEnumNameMapping = new MyEnumNameMapping();
                ienumNameMapping_0 = myEnumNameMapping;
                while (name != null)
                {
                    MyNameMapping myNameMapping = new MyNameMapping()
                    {
                        m_pSource = name
                    };
                    myNameMapping.ValidateTargetName(iname_0);
                    myEnumNameMapping.Add(myNameMapping);
                    name = ienumName_0.Next();
                }
                flag = true;
            }
            return(flag);
        }
コード例 #2
0
        public bool Paste(IEnumName ienumName_0, ref bool bool_2)
        {
            if (this.Category == "OLE DB连接")
            {
                bool_2 = false;
                return(false);
            }
            bool flag2 = true;

            try
            {
                if (bool_2)
                {
                    ienumName_0.Reset();
                    IName name = ienumName_0.Next();
                    if (((name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriFileSystemWorkspace) &&
                        ((name as IDatasetName).WorkspaceName.PathName == this.iworkspaceName_0.PathName))
                    {
                        IDatasetContainer container = (this.iworkspaceName_0 as IName).Open() as IDatasetContainer;
                        while (name != null)
                        {
                            container.AddDataset(name.Open() as IDataset);
                            (name as IFeatureClassName).FeatureDatasetName = null;
                            IGxObject obj2 = new GxDataset();
                            (name as IDatasetName).WorkspaceName = this.iworkspaceName_0;
                            (obj2 as IGxDataset).DatasetName     = name as IDatasetName;
                            obj2.Attach(this, this.igxCatalog_0);
                            this.igxCatalog_0.ObjectAdded(obj2);
                            name = ienumName_0.Next();
                        }
                        return(true);
                    }
                }
                else
                {
                    IEnumNameMapping mapping;
                    flag2 = false;
                    IGeoDBDataTransfer transfer = new MyGeoDBDataTransfer();
                    transfer.GenerateNameMapping(ienumName_0, this.iworkspaceName_0 as IName, out mapping);
                    frmGeoDBDataTransfer transfer2 = new frmGeoDBDataTransfer
                    {
                        EnumNameMapping = mapping,
                        ToName          = this.iworkspaceName_0 as IName,
                        GeoDBTransfer   = transfer
                    };
                    if (transfer2.ShowDialog() == DialogResult.OK)
                    {
                        this.Refresh();
                        return(true);
                    }
                    return(false);
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show(exception.Message);
                return(false);
            }
            return(flag2);
        }
コード例 #3
0
        public bool CanPaste(IEnumName ienumName_0, ref bool bool_2)
        {
            ienumName_0.Reset();
            IName name = ienumName_0.Next();
            bool  flag = false;

            while (name != null)
            {
                if (name is IFileName)
                {
                    flag = true;
                }
                else if (name is IDatasetName)
                {
                    flag = (name as IDatasetName).WorkspaceName.Type == esriWorkspaceType.esriFileSystemWorkspace;
                }
                else
                {
                    if (!(name is IWorkspaceName))
                    {
                        return(false);
                    }
                    flag = (name as IWorkspaceName).Type == esriWorkspaceType.esriLocalDatabaseWorkspace;
                }
                if (!flag)
                {
                    return(false);
                }
                name = ienumName_0.Next();
            }
            bool_2 = true;
            return(true);
        }
コード例 #4
0
        private void ExportDatasetToXML(string fileGdbPath, string sourceFCName, string outputXmlFile)
        {
            // Open the source geodatabase and create a name object for it.
            IWorkspaceName sourceWorkspaceName = getWorkspaceName("esriDataSourcesGDB.FileGDBWorkspaceFactory", fileGdbPath);

            IFeatureClassName sourceFeatureClassName = getFeatureClassName(sourceWorkspaceName, sourceFCName);
            IName             sourceName             = (IName)sourceFeatureClassName;

            // Create a new names enumerator and add the feature dataset name.
            IEnumNameEdit enumNameEdit = new NamesEnumeratorClass();

            enumNameEdit.Add(sourceName);
            IEnumName enumName = (IEnumName)enumNameEdit;

            // Create a GeoDBDataTransfer object and create a name mapping.
            IGeoDBDataTransfer geoDBDataTransfer = new GeoDBDataTransferClass();
            IEnumNameMapping   enumNameMapping   = null;

            geoDBDataTransfer.GenerateNameMapping(enumName, sourceWorkspaceName as IName, out enumNameMapping);

            // Create an exporter and export the dataset with binary geometry, not compressed,
            // and including metadata.
            IGdbXmlExport gdbXmlExport = new GdbExporterClass();

            gdbXmlExport.ExportDatasets(enumNameMapping, outputXmlFile, true, false, true);
        }
コード例 #5
0
ファイル: CheckOutSetupCtrl.cs プロジェクト: secondii/Yutai
 private bool method_2(IWorkspace iworkspace_0, IEnumName ienumName_0)
 {
     if (iworkspace_0 is IWorkspaceReplicas)
     {
         IEnumReplica replicas = (iworkspace_0 as IWorkspaceReplicas).Replicas;
         replicas.Reset();
         if (replicas.Next() != null)
         {
             MessageBox.Show("检出数据库中包含一个有效的检出。");
             return(false);
         }
         ienumName_0.Reset();
         for (IDatasetName name = ienumName_0.Next() as IDatasetName;
              name != null;
              name = ienumName_0.Next() as IDatasetName)
         {
             if (this.method_1(iworkspace_0, name.Type, this.method_0(name).ToLower()))
             {
                 if (this.chkResueSchema.Checked)
                 {
                     return(true);
                 }
                 MessageBox.Show("选择的检出空间数据库中有同名的要素集,如果要用该检出空间数据库,请在重用选项上打勾。");
                 return(false);
             }
         }
     }
     return(true);
 }
コード例 #6
0
        public bool CanPaste(IEnumName ienumName_0, ref bool bool_2)
        {
            if (this.Category == "OLE DB连接")
            {
                bool_2 = false;
                return(false);
            }
            ienumName_0.Reset();
            IName name  = ienumName_0.Next();
            bool  flag2 = false;

            while (name != null)
            {
                if (name is IFeatureClassName)
                {
                    flag2 = true;
                    if (((name as IDatasetName).WorkspaceName.PathName == this.iworkspaceName_0.PathName) &&
                        ((name as IFeatureClassName).FeatureDatasetName != null))
                    {
                        bool_2 = true;
                    }
                    else
                    {
                        bool_2 = false;
                    }
                }
                else if (name is ITableName)
                {
                    flag2  = (name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriFileSystemWorkspace;
                    bool_2 = false;
                }
                else
                {
                    if (!(name is IFeatureDatasetName))
                    {
                        bool_2 = false;
                        return(false);
                    }
                    if ((name as IDatasetName).WorkspaceName.PathName == this.iworkspaceName_0.PathName)
                    {
                        flag2 = false;
                    }
                    else
                    {
                        bool_2 = false;
                        flag2  = true;
                    }
                }
                if (!flag2)
                {
                    bool_2 = false;
                    return(false);
                }
                name = ienumName_0.Next();
            }
            return(true);
        }
コード例 #7
0
        internal static void CopiaFeatureClass(IEnumName enumSourceName, IName targetName)
        {
            // Create the transfer object and a reference to a mapping enumerator.
            IGeoDBDataTransfer geoDBDataTransfer = new GeoDBDataTransfer();

            IEnumNameMapping[] enumNameMapping = new IEnumNameMapping[1];
            // See if the transfer can proceed with the datasets' existing names.
            _ = geoDBDataTransfer.GenerateNameMapping(enumSourceName, targetName, out enumNameMapping[0]);

            geoDBDataTransfer.Transfer(enumNameMapping[0], targetName);
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: vasnake/gdbexport2xml
        } // getFCNames

        public void doWork()
        {
            Log.p("doWork started...");
            String sdeconnfname = mSdeConnFileName; // "c:\\t\\test.sde";
            String tabnames     = mTabName;         // "T.TAB1,T.TAB2";

            Log.p("Open the source gdb");
            IWorkspaceFactory wspFact = new SdeWorkspaceFactoryClass();
            IWorkspace        wsp     = wspFact.OpenFromFile(sdeconnfname, 0);

            Log.p("Get FC names");
            IEnumNameEdit edtNames = getFCNames(wsp, tabnames);
            IEnumName     names    = (IEnumName)edtNames;

            Log.p("Create a scratch workspace factory");
            IScratchWorkspaceFactory scrWspFact = new ScratchWorkspaceFactoryClass();
            IWorkspace scrWsp     = scrWspFact.CreateNewScratchWorkspace();
            IDataset   dset       = (IDataset)scrWsp;
            IName      scrWspName = dset.FullName;

            Log.p("Create a Transfer object and a name mapping");
            IGeoDBDataTransfer trans        = new GeoDBDataTransferClass();
            IEnumNameMapping   nameMaps     = null;
            Boolean            hasConflicts = trans.GenerateNameMapping(
                names, scrWspName, out nameMaps);

            if (hasConflicts)
            {
                throw new ArgumentException("Name mapping has conflicts.");
            }

            bool          expData    = mNeedData;
            string        fname      = mExpFileName;
            bool          getMeta    = mNeedMeta;
            bool          compressed = false;
            bool          binaryGeom = true;
            IGdbXmlExport exp        = new GdbExporterClass();

            if (expData == false)
            {
                Log.p(String.Format("Export schema (u need sdeexport for data); file [{0}], metadata [{1}]",
                                    fname, getMeta));
                exp.ExportDatasetsSchema(nameMaps, fname, compressed, getMeta);
            }
            else
            {
                Log.p(String.Format("Export schema&data; file [{0}], metadata [{1}]",
                                    fname, getMeta));
                exp.ExportDatasets(nameMaps, fname, binaryGeom, compressed, getMeta);
            }

            Log.p("OK, xml writed.", "both");
        } // method doWork
コード例 #9
0
        /// <summary>
        /// Converts an Esri enumerable interface to a DotNet IEnumerable.
        /// </summary>
        /// <param name="esriEnum">An enumerable Esri interface.</param>
        /// <returns>The adapted dotnet enumeration.</returns>
        public static IEnumerable <IName> Enumerate(this IEnumName enumEnum)
        {
            if (enumEnum != null)
            {
                enumEnum.Reset();
                IName datasetName = enumEnum.Next();
                while (datasetName != null)
                {
                    yield return(datasetName);

                    datasetName = enumEnum.Next();
                }
            }
        }
コード例 #10
0
        public void CreatePropertyChildNodes(TreeviewBranchViewModel parentNode, object comObj, Type typ)
        {
            IEnumName enumName = comObj as IEnumName;

            enumName.Reset();
            foreach (IName value in enumName.Enumerate())
            {
                if ((value != null) && (value.GetType().IsCOMObject))
                {
                    ComObjectViewModel child = new ComObjectViewModel(parentNode, value, typeof(IName), ".Next()");
                    parentNode.Children.Add(child);
                }
            }
        }
コード例 #11
0
ファイル: GxCatalog.cs プロジェクト: secondii/Yutai
        public bool CanPaste(IEnumName ienumName_0, ref bool bool_0)
        {
            ienumName_0.Reset();
            IName name = ienumName_0.Next();

            while (name != null)
            {
                if ((name is IFileName) && Directory.Exists((name as IFileName).Path))
                {
                    return(true);
                }
            }
            return(false);
        }
コード例 #12
0
ファイル: CheckOutCheckIn.cs プロジェクト: secondii/Yutai
        public static void SimpleCheckIn(IWorkspaceName iworkspaceName_0, IWorkspaceName iworkspaceName_1,
                                         IEnumName ienumName_0, bool bool_0, bool bool_1, string string_0)
        {
            IName              name              = iworkspaceName_1 as IName;
            IWorkspace         workspace         = name.Open() as IWorkspace;
            IWorkspaceReplicas workspaceReplicas = workspace as IWorkspaceReplicas;
            IReplica           replica           = workspaceReplicas.Replicas.Next();
            IWorkspace         arg_36_0          = (iworkspaceName_0 as IName).Open() as IWorkspace;
            ICheckIn           checkIn           = new CheckIn();

            if (bool_1)
            {
                checkIn.CheckInFromGDB(iworkspaceName_0, replica.Name, iworkspaceName_1, false, false);
            }
        }
コード例 #13
0
ファイル: GxCatalog.cs プロジェクト: secondii/Yutai
        public bool Paste(IEnumName ienumName_0, ref bool bool_0)
        {
            ienumName_0.Reset();
            IName name = ienumName_0.Next();

            while (name != null)
            {
                if ((name is IFileName) && Directory.Exists((name as IFileName).Path))
                {
                    IGxObject obj2 = new GxDiskConnection();
                    (obj2 as IGxFile).Path = (name as IFileName).Path;
                    obj2.Attach(this, this);
                    this.ObjectAdded(obj2);
                }
            }
            return(false);
        }
コード例 #14
0
        public ITable GetMosaicDatasetTable(IMosaicDataset pMosaicDataset)
        {
            ITable    pTable    = null;
            IEnumName pEnumName = pMosaicDataset.Children;

            pEnumName.Reset();
            ESRI.ArcGIS.esriSystem.IName pName;
            while ((pName = pEnumName.Next()) != null)
            {
                pTable = pName.Open() as ITable;
                int i = pTable.Fields.FieldCount;
                if (i >= 21)
                {
                    break;
                }
            }//镶嵌数据集属性表默认23个字段            }

            return(pTable);
        }
コード例 #15
0
ファイル: CheckOutCheckIn.cs プロジェクト: secondii/Yutai
        public static void SimpleCheckOut(IWorkspaceName iworkspaceName_0, IWorkspaceName iworkspaceName_1,
                                          IEnumName ienumName_0, bool bool_0, bool bool_1, string string_0)
        {
            IName               name               = iworkspaceName_1 as IName;
            IWorkspace          arg_12_0           = name.Open() as IWorkspace;
            IWorkspace          arg_23_0           = (iworkspaceName_0 as IName).Open() as IWorkspace;
            IReplicaDescription replicaDescription = new ReplicaDescription() as IReplicaDescription;

            replicaDescription.Init(ienumName_0, iworkspaceName_1, bool_0, esriDataExtractionType.esriDataCheckOut);
            replicaDescription.ReplicaModelType = esriReplicaModelType.esriModelTypeFullGeodatabase;
            ICheckOut checkOut = new CheckOut();

            if (bool_1)
            {
                checkOut.CheckOutData(replicaDescription, true, string_0);
            }
            else
            {
                checkOut.CheckOutSchema(replicaDescription, string_0);
            }
        }
コード例 #16
0
 private void EditWorkspacelist_SelectedIndexChanged(object sender, EventArgs e)
 {
     this.CanEditDatasetList.Items.Clear();
     if (this.EditWorkspacelist.SelectedItems.Count != 0)
     {
         try
         {
             CheckInOutWorkspaceInfo tag = this.EditWorkspacelist.SelectedItems[0].Tag as CheckInOutWorkspaceInfo;
             IEnumName enumName          = tag.EnumName;
             enumName.Reset();
             for (IName name2 = enumName.Next(); name2 != null; name2 = enumName.Next())
             {
                 this.CanEditDatasetList.Items.Add((name2 as IDatasetName).Name);
             }
         }
         catch (Exception exception)
         {
             MessageBox.Show(exception.ToString());
         }
     }
 }
コード例 #17
0
        private bool method_2(IWorkspace iworkspace_0, IEnumName ienumName_0)
        {
            if (!(iworkspace_0 is IWorkspaceReplicas))
            {
                goto Label_009D;
            }
            IEnumReplica replicas = (iworkspace_0 as IWorkspaceReplicas).Replicas;

            replicas.Reset();
            replicas.Next();
            ienumName_0.Reset();
            IDatasetName name = ienumName_0.Next() as IDatasetName;

Label_003C:
            if (name != null)
            {
                bool flag = false;
                try
                {
                    flag = this.method_1(iworkspace_0, name.Type, this.method_0(name).ToLower());
                }
                catch
                {
                }
                while (!flag)
                {
                    name = ienumName_0.Next() as IDatasetName;
                    goto Label_003C;
                }
                if (this.chkResueSchema.Checked)
                {
                    return(true);
                }
                MessageBox.Show("选择的导出空间数据库中有同名的要素集,如果要用该导出空间数据库,请在重用选项上打勾。");
                return(false);
            }
Label_009D:
            return(true);
        }
コード例 #18
0
 public bool Paste(IEnumName ienumName_0, ref bool bool_2)
 {
     try
     {
         ienumName_0.Reset();
         IName name = ienumName_0.Next();
         bool  flag = false;
         if (this.igxObjectArray_0.Count == 0)
         {
             this.Open();
         }
         while (name != null)
         {
             if (name is IFileName)
             {
                 flag = this.method_10(name as IFileName, bool_2);
             }
             else if (name is IDatasetName)
             {
                 if ((name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriRemoteDatabaseWorkspace)
                 {
                     flag = this.method_8(name as IDatasetName, bool_2);
                 }
             }
             else if (name is IWorkspaceName)
             {
                 flag = this.method_9(name as IWorkspaceName, bool_2);
             }
             name = ienumName_0.Next();
         }
         return(flag);
     }
     catch (Exception exception)
     {
         Logger.Current.Error("", exception, "");
         return(false);
     }
 }
コード例 #19
0
        public static string ExportXml(DragEventArgs e)
        {
            // Get dropped object
            if (!e.Data.GetDataPresent("ESRI Names"))
            {
                return(null);
            }
            object drop = e.Data.GetData("ESRI Names");

            // Convert to byte array
            MemoryStream memoryStream = (MemoryStream)drop;

            byte[] bytes     = memoryStream.ToArray();
            object byteArray = (object)bytes;

            // Get First WorkpaceName
            INameFactory   nameFactory   = new NameFactoryClass();
            IEnumName      enumName      = nameFactory.UnpackageNames(ref byteArray);
            IName          name          = enumName.Next();
            IWorkspaceName workspaceName = name as IWorkspaceName;

            if (workspaceName != null)
            {
                return(GeodatabaseUtility.ExportWorkspaceXml(workspaceName));
            }
            ;

            MessageBox.Show(
                Resources.TEXT_DROPPED_OBJECT_NOT_VALID_GEODATABASE,
                Resources.TEXT_APPLICATION,
                MessageBoxButtons.OK,
                MessageBoxIcon.Error,
                MessageBoxDefaultButton.Button1,
                MessageBoxOptions.DefaultDesktopOnly);
            return(null);
        }
コード例 #20
0
        private void axMapControl1_OnOleDrop(object sender, IMapControlEvents2_OnOleDropEvent e)
        {
            IDataObjectHelper      dataObjectHelper = (IDataObjectHelper)e.dataObjectHelper;
            esriControlsDropAction dropAction       = e.dropAction;

            e.effect = 0;
            switch (dropAction)
            {
            case esriControlsDropAction.esriDropEnter:
                if (dataObjectHelper.CanGetFiles() | dataObjectHelper.CanGetNames())
                {
                    this.m_Effect = esriControlsDragDropEffect.esriDragDropCopy;
                }
                else if (dataObjectHelper.InternalObject is IDataObject)
                {
                    this.m_Effect = esriControlsDragDropEffect.esriDragDropCopy;
                }
                break;

            case esriControlsDropAction.esriDropOver:
                e.effect = (int)this.m_Effect;
                break;
            }
            if (dropAction == esriControlsDropAction.esriDropped)
            {
                int num;
                if (dataObjectHelper.CanGetFiles())
                {
                    System.Array files = System.Array.CreateInstance(typeof(string), 0, 0);
                    files = (System.Array)dataObjectHelper.GetFiles();
                    for (num = 0; num <= (files.Length - 1); num++)
                    {
                        if (this.axMapControl1.CheckMxFile(files.GetValue(num).ToString()))
                        {
                            try
                            {
                                this.axMapControl1.LoadMxFile(files.GetValue(num).ToString(), System.Type.Missing, "");
                            }
                            catch (Exception exception)
                            {
                                MessageBox.Show("Error:" + exception.Message);
                                return;
                            }
                        }
                        else
                        {
                            IFileName name = new FileNameClass
                            {
                                Path = files.GetValue(num).ToString()
                            };
                            this.CreateLayer((IName)name);
                        }
                    }
                }
                else if (dataObjectHelper.CanGetNames())
                {
                    IEnumName names = dataObjectHelper.GetNames();
                    names.Reset();
                    for (IName name3 = names.Next(); name3 != null; name3 = names.Next())
                    {
                        this.CreateLayer(name3);
                    }
                }
                if (dataObjectHelper.InternalObject is IDataObject)
                {
                    IList data =
                        (dataObjectHelper.InternalObject as IDataObject).GetData("System.Collections.ArrayList") as
                        IList;
                    for (num = 0; num < data.Count; num++)
                    {
                        IWorkspaceName workspaceName;
                        IWorkspaceName name6;
                        object         obj3 = data[num];
                        if (obj3 is IFeatureDatasetName)
                        {
                            IFeatureDatasetName name4 = new FeatureDatasetNameClass();
                            workspaceName = (obj3 as IDatasetName).WorkspaceName;
                            name6         = new WorkspaceNameClass
                            {
                                WorkspaceFactoryProgID = workspaceName.WorkspaceFactoryProgID
                            };
                            if (workspaceName.ConnectionProperties != null)
                            {
                                name6.ConnectionProperties = workspaceName.ConnectionProperties;
                            }
                            else
                            {
                                name6.PathName = workspaceName.PathName;
                            }
                            (name4 as IDatasetName).WorkspaceName = name6;
                            (name4 as IDatasetName).Name          = (obj3 as IDatasetName).Name;
                            this.CreateLayer(name4 as IName);
                        }
                        else if (obj3 is IRasterDatasetName)
                        {
                            IRasterDatasetName name7 = new RasterDatasetNameClass();
                            workspaceName = (obj3 as IDatasetName).WorkspaceName;
                            name6         = new WorkspaceNameClass
                            {
                                WorkspaceFactoryProgID = workspaceName.WorkspaceFactoryProgID
                            };
                            if (workspaceName.ConnectionProperties != null)
                            {
                                name6.ConnectionProperties = workspaceName.ConnectionProperties;
                            }
                            else
                            {
                                name6.PathName = workspaceName.PathName;
                            }
                            (name7 as IDatasetName).WorkspaceName = name6;
                            (name7 as IDatasetName).Name          = (obj3 as IDatasetName).Name;
                            this.CreateLayer(name7 as IName);
                        }
                        else if (obj3 is IDatasetName)
                        {
                            IDatasetName name8 = null;
                            if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTTin)
                            {
                                name8 = new TinNameClass();
                            }
                            if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTFeatureClass)
                            {
                                name8 = new FeatureClassNameClass();
                                (name8 as IFeatureClassName).FeatureDatasetName =
                                    (obj3 as IFeatureClassName).FeatureDatasetName;
                            }
                            else if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTTopology)
                            {
                                name8 = new TopologyNameClass();
                                (name8 as ITopologyName).FeatureDatasetName = (obj3 as ITopologyName).FeatureDatasetName;
                            }
                            else if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTRasterBand)
                            {
                                name8 = new RasterBandNameClass();
                                (name8 as IRasterBandName).RasterDatasetName =
                                    (obj3 as IRasterBandName).RasterDatasetName;
                            }
                            else if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTGeometricNetwork)
                            {
                                name8 = new GeometricNetworkNameClass();
                                (name8 as IGeometricNetworkName).FeatureDatasetName =
                                    (obj3 as IGeometricNetworkName).FeatureDatasetName;
                            }
                            else if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTRasterCatalog)
                            {
                                name8 = new RasterCatalogNameClass();
                                (name8 as IFeatureClassName).FeatureDatasetName =
                                    (obj3 as IFeatureClassName).FeatureDatasetName;
                            }
                            else if ((obj3 as IDatasetName).Type == esriDatasetType.esriDTNetworkDataset)
                            {
                                name8 = new NetworkDatasetNameClass();
                                (name8 as INetworkDatasetName).FeatureDatasetName =
                                    (obj3 as INetworkDatasetName).FeatureDatasetName;
                            }
                            if (name8 != null)
                            {
                                if (name8.WorkspaceName == null)
                                {
                                    workspaceName = (obj3 as IDatasetName).WorkspaceName;
                                    name6         = new WorkspaceNameClass
                                    {
                                        WorkspaceFactoryProgID = workspaceName.WorkspaceFactoryProgID
                                    };
                                    if (workspaceName.ConnectionProperties != null)
                                    {
                                        name6.ConnectionProperties = workspaceName.ConnectionProperties;
                                    }
                                    else
                                    {
                                        name6.PathName = workspaceName.PathName;
                                    }
                                    name8.WorkspaceName = name6;
                                }
                                name8.Name = (obj3 as IDatasetName).Name;
                                this.CreateLayer(name8 as IName);
                            }
                        }
                        else if (obj3 is IWorkspaceName)
                        {
                            workspaceName = obj3 as IWorkspaceName;
                            name6         = new WorkspaceNameClass
                            {
                                WorkspaceFactoryProgID = workspaceName.WorkspaceFactoryProgID
                            };
                            if (workspaceName.ConnectionProperties != null)
                            {
                                name6.ConnectionProperties = workspaceName.ConnectionProperties;
                            }
                            else
                            {
                                name6.PathName = workspaceName.PathName;
                            }
                            this.CreateLayer(name6 as IName);
                        }
                        else if (obj3 is IPropertySet)
                        {
                            IPropertySet set      = obj3 as IPropertySet;
                            ILayer       property = set.GetProperty("Layer") as ILayer;
                            this.axMapControl1.AddLayer(property, 0);
                        }
                    }
                }
            }
        }
コード例 #21
0
 public bool Paste(IEnumName ienumName_0, ref bool bool_0)
 {
     return(false);
 }
コード例 #22
0
 private void frmCheckInWizard_Load(object sender, EventArgs e)
 {
     if (this.iarray_0.Count == 0)
     {
         MessageBox.Show("没有检入的数据!");
         base.Close();
     }
     else if (this.iarray_0.Count == 1)
     {
         CheckInOutWorkspaceInfo info = this.iarray_0.get_Element(0) as CheckInOutWorkspaceInfo;
         CheckInHelper.m_pHelper = new CheckInHelper();
         IWorkspaceName fullName = (info.Workspace as IDataset).FullName as IWorkspaceName;
         if (fullName.Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
         {
             CheckInHelper.m_pHelper.MasterWorkspaceName   = fullName;
             CheckInHelper.m_pHelper.CheckoutWorkspaceName = null;
         }
         else
         {
             CheckInHelper.m_pHelper.CheckoutWorkspaceName = fullName;
             CheckInHelper.m_pHelper.MasterWorkspaceName   = null;
         }
         IEnumNameEdit edit     = new NamesEnumeratorClass();
         IEnumName     enumName = info.EnumName;
         enumName.Reset();
         IName name  = enumName.Next();
         IList list  = new ArrayList();
         IList list2 = new ArrayList();
         while (name != null)
         {
             string str;
             if (name is IFeatureClassName)
             {
                 if ((name as IFeatureClassName).FeatureDatasetName != null)
                 {
                     IDatasetName featureDatasetName = (name as IFeatureClassName).FeatureDatasetName;
                     str = featureDatasetName.Name;
                     if (list.IndexOf(str) == -1)
                     {
                         list.Add(str);
                         edit.Add(featureDatasetName as IName);
                     }
                 }
                 else
                 {
                     str = (name as IDatasetName).Name;
                     if (list2.IndexOf(str) == -1)
                     {
                         list2.Add(str);
                         edit.Add(name);
                     }
                 }
             }
             else if (name is IFeatureDatasetName)
             {
                 str = (name as IDatasetName).Name;
                 if (list.IndexOf(str) == -1)
                 {
                     list.Add(str);
                     edit.Add(name);
                 }
             }
             else
             {
                 str = (name as IDatasetName).Name;
                 if (list2.IndexOf(str) == -1)
                 {
                     list2.Add(str);
                     edit.Add(name);
                 }
             }
             name = enumName.Next();
         }
         this.checkInSetupCtrl_0.Visible = true;
         this.btnNext.Text = "完成";
     }
     else
     {
         CheckInHelper.m_pHelper = new CheckInHelper();
         this.selectCheckOutWorkspaceCtrl_0.WorkspaceArray = this.iarray_0;
         this.selectCheckOutWorkspaceCtrl_0.Visible        = true;
     }
 }
コード例 #23
0
ファイル: GxDataset.cs プロジェクト: secondii/Yutai
 public bool CanPaste(IEnumName ienumName_0, ref bool bool_2)
 {
     if (this.idatasetName_0.Type == esriDatasetType.esriDTFeatureDataset)
     {
         ienumName_0.Reset();
         IName name = ienumName_0.Next();
         bool  flag = false;
         while (name != null)
         {
             if (name is IFileName)
             {
                 return(false);
             }
             if (name is IFeatureClassName)
             {
                 if (
                     flag =
                         (name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriFileSystemWorkspace)
                 {
                     if ((name as IDatasetName).WorkspaceName.PathName ==
                         this.idatasetName_0.WorkspaceName.PathName)
                     {
                         bool_2 = true;
                     }
                     else
                     {
                         bool_2 = false;
                     }
                 }
             }
             else if (name is IFeatureDatasetName)
             {
                 flag = true;
                 if ((name as IDatasetName).WorkspaceName.PathName == this.idatasetName_0.WorkspaceName.PathName)
                 {
                     if ((name as IDatasetName).Name == this.idatasetName_0.Name)
                     {
                         flag = false;
                     }
                     else
                     {
                         bool_2 = true;
                     }
                 }
                 else
                 {
                     bool_2 = false;
                 }
             }
             else
             {
                 if (name is IWorkspaceName)
                 {
                     return(false);
                 }
                 if (name is ITableName)
                 {
                     return(false);
                 }
             }
             if (!flag)
             {
                 return(false);
             }
             name = ienumName_0.Next();
         }
         return(true);
     }
     bool_2 = false;
     return(false);
 }
コード例 #24
0
 private void frmExtractionDataWizard_Load(object sender, EventArgs e)
 {
     if (this.iarray_0.Count == 0)
     {
         MessageBox.Show("没有可用于提取的数据!");
         base.Close();
     }
     else if (this.iarray_0.Count == 1)
     {
         CheckInOutWorkspaceInfo info = this.iarray_0.get_Element(0) as CheckInOutWorkspaceInfo;
         ExtractionDataHelper.m_pHelper = new ExtractionDataHelper();
         ExtractionDataHelper.m_pHelper.MasterWorkspaceName =
             (info.Workspace as IDataset).FullName as IWorkspaceName;
         IEnumNameEdit edit     = new NamesEnumeratorClass();
         IEnumName     enumName = info.EnumName;
         enumName.Reset();
         IName name  = enumName.Next();
         IList list  = new ArrayList();
         IList list2 = new ArrayList();
         while (name != null)
         {
             string str;
             if (name is IFeatureClassName)
             {
                 if ((name as IFeatureClassName).FeatureDatasetName != null)
                 {
                     IDatasetName featureDatasetName = (name as IFeatureClassName).FeatureDatasetName;
                     str = featureDatasetName.Name;
                     if (list.IndexOf(str) == -1)
                     {
                         list.Add(str);
                         edit.Add(featureDatasetName as IName);
                     }
                 }
                 else
                 {
                     str = (name as IDatasetName).Name;
                     if (list2.IndexOf(str) == -1)
                     {
                         list2.Add(str);
                         edit.Add(name);
                     }
                 }
             }
             else if (name is IFeatureDatasetName)
             {
                 str = (name as IDatasetName).Name;
                 if (list.IndexOf(str) == -1)
                 {
                     list.Add(str);
                     edit.Add(name);
                 }
             }
             else
             {
                 str = (name as IDatasetName).Name;
                 if (list2.IndexOf(str) == -1)
                 {
                     list2.Add(str);
                     edit.Add(name);
                 }
             }
             name = enumName.Next();
         }
         ExtractionDataHelper.m_pHelper.EnumName = edit as IEnumName;
         this.extractionDataSetupCtrl_0.Visible  = true;
     }
     else
     {
         ExtractionDataHelper.m_pHelper = new ExtractionDataHelper();
         this.selectCheckOutWorkspaceCtrl_0.WorkspaceArray = this.iarray_0;
         this.selectCheckOutWorkspaceCtrl_0.Visible        = true;
     }
 }
コード例 #25
0
ファイル: GxRasterDataset.cs プロジェクト: secondii/Yutai
 public bool CanPaste(IEnumName ienumName_0, ref bool bool_1)
 {
     return(false);
 }
コード例 #26
0
ファイル: GxDataset.cs プロジェクト: secondii/Yutai
 public bool Paste(IEnumName ienumName_0, ref bool bool_2)
 {
     try
     {
         if (bool_2)
         {
             ienumName_0.Reset();
             IName name = ienumName_0.Next();
             if (((name as IDatasetName).WorkspaceName.Type != esriWorkspaceType.esriFileSystemWorkspace) &&
                 ((name as IDatasetName).WorkspaceName.PathName == this.idatasetName_0.WorkspaceName.PathName))
             {
                 IDatasetContainer container = (this.idatasetName_0 as IName).Open() as IDatasetContainer;
                 if (container != null)
                 {
                     while (name != null)
                     {
                         IGxObject obj2;
                         if (name is IFeatureDatasetName)
                         {
                             IEnumDatasetName subsetNames = (name as IDatasetName).SubsetNames;
                             subsetNames.Reset();
                             for (IDatasetName name3 = subsetNames.Next();
                                  name3 != null;
                                  name3 = subsetNames.Next())
                             {
                                 container.AddDataset((name3 as IName).Open() as IDataset);
                                 obj2 = new GxDataset();
                                 if (name3 is IFeatureClassName)
                                 {
                                     (name3 as IFeatureClassName).FeatureDatasetName = this.idatasetName_0;
                                 }
                                 else if (name3 is IRelationshipClassName)
                                 {
                                     (name3 as IRelationshipClassName).FeatureDatasetName = this.idatasetName_0;
                                 }
                                 else if (name3 is IGeometricNetworkName)
                                 {
                                     (name3 as IGeometricNetworkName).FeatureDatasetName = this.idatasetName_0;
                                 }
                                 (obj2 as IGxDataset).DatasetName = name3;
                                 obj2.Attach(this, this.igxCatalog_0);
                                 this.igxCatalog_0.ObjectAdded(obj2);
                             }
                         }
                         else
                         {
                             container.AddDataset(name.Open() as IDataset);
                             obj2 = new GxDataset();
                             if (name is IFeatureClassName)
                             {
                                 (name as IFeatureClassName).FeatureDatasetName = this.idatasetName_0;
                             }
                             else if (name is IRelationshipClassName)
                             {
                                 (name as IRelationshipClassName).FeatureDatasetName = this.idatasetName_0;
                             }
                             else if (name is IGeometricNetworkName)
                             {
                                 (name as IGeometricNetworkName).FeatureDatasetName = this.idatasetName_0;
                             }
                             (obj2 as IGxDataset).DatasetName = name as IDatasetName;
                             obj2.Attach(this, this.igxCatalog_0);
                             this.igxCatalog_0.ObjectAdded(obj2);
                         }
                         name = ienumName_0.Next();
                     }
                     return(true);
                 }
             }
         }
         else
         {
             IEnumNameMapping mapping;
             ienumName_0.Reset();
             IGeoDBDataTransfer transfer = new GeoDBDataTransferClass();
             transfer.GenerateNameMapping(ienumName_0, this.idatasetName_0.WorkspaceName as IName, out mapping);
             frmGeoDBDataTransfer transfer2 = new frmGeoDBDataTransfer
             {
                 EnumNameMapping = mapping,
                 ToName          = this.idatasetName_0 as IName,
                 GeoDBTransfer   = transfer
             };
             if (transfer2.ShowDialog() == DialogResult.OK)
             {
                 this.Refresh();
                 return(true);
             }
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
         return(false);
     }
     return(false);
 }