예제 #1
0
        private static bool CheckLayerIsCanEditZD(IFeatureLayer ifeatureLayer_0)
        {
            bool result;

            if (result = ZDEditTools.LayerCanEdit(ifeatureLayer_0))
            {
                result = ZDRegister.IsZDFeatureClass(ifeatureLayer_0.FeatureClass);
            }
            return(result);
        }
예제 #2
0
        public static bool Register(IFeatureClass ifeatureClass_0, string string_0)
        {
            bool result;

            if (ZDRegister.IsZDFeatureClass(ifeatureClass_0))
            {
                result = false;
            }
            else
            {
                string[] array = (ifeatureClass_0 as IDataset).Name.Split(new char[]
                {
                    '.'
                });
                ZDRegisterTable   zDRegisterTable  = new ZDRegisterTable();
                ITable            table            = AppConfigInfo.OpenTable("ZDInfos");
                IFeatureWorkspace featureWorkspace = (ifeatureClass_0 as IDataset).Workspace as IFeatureWorkspace;
                string            finalName        = WorkspaceOperator.GetFinalName2(featureWorkspace as IWorkspace,
                                                                                     esriDatasetType.esriDTFeatureClass, "", array[array.Length - 1], "_His");
                IRow row = table.CreateRow();
                RowOperator.SetFieldValue(row, zDRegisterTable.FeatureClassNameField, array[array.Length - 1]);
                RowOperator.SetFieldValue(row, zDRegisterTable.ZDBHFieldName, string_0);
                RowOperator.SetFieldValue(row, zDRegisterTable.RegisterDateFieldName, System.DateTime.Now);
                RowOperator.SetFieldValue(row, zDRegisterTable.HistoryFeatureClassName, finalName);
                string workspaceConnectInfo =
                    WorkspaceOperator.GetWorkspaceConnectInfo((ifeatureClass_0 as IDataset).Workspace);
                RowOperator.SetFieldValue(row, zDRegisterTable.GDBConnectInfoName, workspaceConnectInfo);
                RowOperator.SetFieldValue(row, zDRegisterTable.GuidName, System.Guid.NewGuid().ToString());
                row.Store();
                (ifeatureClass_0 as IDataset).Name.Split(new char[]
                {
                    '.'
                });
                IFields fields = (ifeatureClass_0.Fields as IClone).Clone() as IFields;
                IField  field  = new ESRI.ArcGIS.Geodatabase.Field();
                (field as IFieldEdit).Name_2      = "OriginOID_";
                (field as IFieldEdit).AliasName_2 = "原始宗地编号";
                (field as IFieldEdit).Type_2      = esriFieldType.esriFieldTypeInteger;
                (fields as IFieldsEdit).AddField(field);
                IFeatureClass featureClass = featureWorkspace.CreateFeatureClass(finalName, fields, null, null,
                                                                                 esriFeatureType.esriFTSimple, "shape", "");
                if ((featureWorkspace as IWorkspace).Type == esriWorkspaceType.esriRemoteDatabaseWorkspace)
                {
                    IVersionedObject3 versionedObject = featureClass as IVersionedObject3;
                    if (versionedObject != null)
                    {
                        versionedObject.RegisterAsVersioned3(false);
                    }
                }
                result = true;
            }
            return(result);
        }
예제 #3
0
        public static bool HasZDLayer(IMap imap_0)
        {
            bool       result    = false;
            IEnumLayer enumLayer = imap_0.get_Layers(null, true);

            enumLayer.Reset();
            ILayer layer = enumLayer.Next();

            while (layer != null &&
                   (!(layer is IFeatureLayer) ||
                    !(result = ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))))
            {
                layer = enumLayer.Next();
            }
            return(result);
        }
예제 #4
0
        public static IFeatureLayer GetFirstZDLayer(IMap imap_0)
        {
            IEnumLayer enumLayer = imap_0.get_Layers(null, true);

            enumLayer.Reset();
            IFeatureLayer result;

            for (ILayer layer = enumLayer.Next(); layer != null; layer = enumLayer.Next())
            {
                if (layer is IFeatureLayer && ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))
                {
                    result = (layer as IFeatureLayer);
                    return(result);
                }
            }
            result = null;
            return(result);
        }
예제 #5
0
 private static void CheckGroupLayer(System.Collections.Generic.List <IFeatureLayer> list_0,
                                     ICompositeLayer icompositeLayer_0)
 {
     for (int i = 0; i < icompositeLayer_0.Count; i++)
     {
         ILayer layer = icompositeLayer_0.get_Layer(i);
         if (layer is IGroupLayer)
         {
             ZDEditTools.CheckGroupLayer(list_0, layer as ICompositeLayer);
         }
         else if (layer is IFeatureLayer)
         {
             IFeatureLayer item = layer as IFeatureLayer;
             if (ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))
             {
                 list_0.Add(item);
             }
         }
     }
 }
예제 #6
0
 public static System.Collections.Generic.List <IFeatureLayer> GetZDLayers(IMap imap_0)
 {
     System.Collections.Generic.List <IFeatureLayer> list = new System.Collections.Generic.List <IFeatureLayer>();
     for (int i = 0; i < imap_0.LayerCount; i++)
     {
         ILayer layer = imap_0.get_Layer(i);
         if (layer is IGroupLayer)
         {
             ZDEditTools.CheckGroupLayer(list, layer as ICompositeLayer);
         }
         else if (layer is IFeatureLayer)
         {
             IFeatureLayer item = layer as IFeatureLayer;
             if (ZDRegister.IsZDFeatureClass((layer as IFeatureLayer).FeatureClass))
             {
                 list.Add(item);
             }
         }
     }
     return(list);
 }