Example #1
0
        static void Copy(IWorkspace source, IWorkspace destination, IWorkspaceItem workspaceItem, string roles)
        {
            if (source.Equals(destination))
            {
                return;
            }

            enDynamicServiceObjectType serviceType;

            if (!Enum.TryParse(workspaceItem.ServiceType, out serviceType))
            {
                serviceType = enDynamicServiceObjectType.DynamicService;
            }

            #region TODO: Fix Map ResourceType from workspaceItem.ServiceType

            // TODO: FIX mapping ResourceType from workspaceItem.ServiceType
            switch (serviceType)
            {
            case enDynamicServiceObjectType.BizRule:
                break;

            case enDynamicServiceObjectType.DynamicService:
                break;

            case enDynamicServiceObjectType.ServiceAction:
                break;

            case enDynamicServiceObjectType.ServiceActionCase:
                break;

            case enDynamicServiceObjectType.ServiceActionCases:
                break;

            case enDynamicServiceObjectType.ServiceActionInput:
                break;

            case enDynamicServiceObjectType.Source:
                break;

            case enDynamicServiceObjectType.Validator:
                break;

            case enDynamicServiceObjectType.WorkflowActivity:
                break;

            case enDynamicServiceObjectType.UnitTest:
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            #endregion

            ResourceCatalog.Instance.CopyResource(workspaceItem.ID, source.ID, destination.ID, roles);
        }
        static void Copy(IWorkspace source, IWorkspace destination, IWorkspaceItem workspaceItem, string roles)
        {
            if(source.Equals(destination))
            {
                return;
            }

            enDynamicServiceObjectType serviceType;
            if(!Enum.TryParse(workspaceItem.ServiceType, out serviceType))
            {
                serviceType = enDynamicServiceObjectType.DynamicService;
            }

            #region TODO: Fix Map ResourceType from workspaceItem.ServiceType

            // TODO: FIX mapping ResourceType from workspaceItem.ServiceType
            switch(serviceType)
            {
                case enDynamicServiceObjectType.BizRule:
                    break;
                case enDynamicServiceObjectType.DynamicService:
                    break;
                case enDynamicServiceObjectType.ServiceAction:
                    break;
                case enDynamicServiceObjectType.ServiceActionCase:
                    break;
                case enDynamicServiceObjectType.ServiceActionCases:
                    break;
                case enDynamicServiceObjectType.ServiceActionInput:
                    break;
                case enDynamicServiceObjectType.Source:
                    break;
                case enDynamicServiceObjectType.Validator:
                    break;
                case enDynamicServiceObjectType.WorkflowActivity:
                    break;
                case enDynamicServiceObjectType.UnitTest:
                    break;
                default:
                    throw new ArgumentOutOfRangeException();
            }

            #endregion

            ResourceCatalog.Instance.CopyResource(workspaceItem.ID, source.ID, destination.ID, roles);
        }
Example #3
0
        private void btnXOK_Click(object sender, EventArgs e)
        {
            IFeatureLayer pFL = getEditLayer.isExistLayer(inMap) as IFeatureLayer;

            if (pFL != null)
            {
                IFeatureSelection pFS = pFL as IFeatureSelection;
                pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
                pFS.Clear();
                pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);
            }
            string cPath = Application.StartupPath + "\\..\\Res\\Xml\\EditLayer.xml";

            if (!File.Exists(cPath))
            {
                return;
            }
            if (this.WriteLog)
            {
                Plugin.LogTable.Writelog("设置" + pFL.Name + "为编辑图层");
            }
            XmlDocument cXmlDoc = new XmlDocument();

            if (cXmlDoc != null)
            {
                cXmlDoc.Load(cPath);
                string[]    nm  = cboLayers.Text.Split('(', ')');
                XmlNodeList xnl = cXmlDoc.GetElementsByTagName("EditLayerInfo");
                xnl.Item(0).Attributes["LayerName"].Value = nm[1];
                xnl.Item(0).Attributes["FCName"].Value    = nm[0];
            }

            cXmlDoc.Save(cPath);
            IWorkspace curW = ((getEditLayer.isExistLayer(inMap) as IFeatureLayer).FeatureClass as IDataset).Workspace;

            if (preW != null && !curW.Equals(preW))
            {
                IWorkspaceEdit preWE   = preW as IWorkspaceEdit;
                bool           hasEdit = false;
                preWE.HasEdits(ref hasEdit);
                if (hasEdit)
                {
                    if (MessageBox.Show("您更改了工作空间,是否保存之前的编辑?", "提示", MessageBoxButtons.YesNo,
                                        MessageBoxIcon.Information) == DialogResult.Yes)
                    {
                        preWE.StopEditing(true);
                    }
                    else
                    {
                        preWE.StopEditing(false);
                        pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                    }
                }
            }
            IWorkspaceEdit iWE = curW as IWorkspaceEdit;

            if (!iWE.IsBeingEdited())
            {
                iWE.StartEditing(false);
            }
        }
Example #4
0
        /// <summary>
        /// 获取MAP上选择的源要素
        /// </summary>
        private void GetMapFeature()
        {
            AttributeShow_state.state_brush = true;                                              //当确定是选择一个要素源时,才改变状态

            IEnumFeature IEnum_dataset = myHook.MapControl.Map.FeatureSelection as IEnumFeature; //行到被选择的要素的数据集

            IEnum_dataset.Reset();
            IFeature   Feature = IEnum_dataset.Next();
            IWorkspace space   = MoData.v_CurWorkspaceEdit as IWorkspace;//得到相应的操作空间

            while (Feature != null)
            {
                m_CurFeatCls = Feature.Class as IFeatureClass;
                IDataset dataset_space = m_CurFeatCls as IDataset;//中转成一个要素集合
                if (!space.Equals(dataset_space.Workspace))
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "编辑空间不一致,请重新选择要素!");
                    myHook.MapControl.Map.ClearSelection();
                    return;
                }

                string shape = "";                                //确定要素的SHAPE是什么
                string Name  = Feature.Class.AliasName;           //层名
                AttributeShow_state.OID = Feature.OID.ToString(); //得到源OID
                #region 得到要素的SHAPE类型:注记,面,线,点
                if (Feature.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    shape = "注记";
                }
                else
                {
                    IGeometry geometry = Feature.Shape;       //得到要素的几何图形

                    switch (geometry.GeometryType.ToString()) //确定它的几何要素类型
                    {
                    case "esriGeometryPolygon":
                        shape = "面";
                        break;

                    case "esriGeometryPolyline":
                        shape = "线";
                        break;

                    case "esriGeometryPoint":
                        shape = "点";
                        break;
                    }
                }
                #endregion

                IFields fields = Feature.Fields;
                int     count  = fields.FieldCount;        //得到该要素共有多少个属性
                AttributeShow_state.feature_count = count; //将源要素的字段数赋值给总的全局数
                string value = "";                         //接收该要素的值
                for (int n = 0; n < count; n++)
                {
                    string name = fields.get_Field(n).Name.ToLower();
                    if (name == "shape")
                    {
                        value += shape + ",";
                    }
                    else
                    {
                        string F_value = Feature.get_Value(n).ToString();
                        if (F_value == string.Empty)
                        {
                            F_value = "null";
                        }
                        value += name + " " + F_value + ",";
                    }
                }

                string processStr = value.Substring(0, value.Length - 1);

                AttributeShow_state.hs_Feature.Add(Name, processStr);

                Feature = IEnum_dataset.Next();
            }
            myHook.MapControl.Map.ClearSelection();
            myHook.MapControl.ActiveView.Refresh();
        }
Example #5
0
        /// <summary>
        /// 当单元格的值更改时,进行编辑修改
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DT_VIEW_Attriubte_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            int count = myHook.MapControl.Map.LayerCount;

            for (int n = 0; n < count; n++)
            {
                ILayer layer = myHook.MapControl.Map.get_Layer(n);
                if (layer == null)
                {
                    continue;
                }
                //首先判别工程打开的数据是不是以组形式开展的
                if (layer is IGroupLayer)
                {
                    if (layer.Name == "示意图")
                    {
                        continue;
                    }
                    #region 遍历组下面的普通层
                    IWorkspace      space     = MoData.v_CurWorkspaceEdit as IWorkspace;//得到相应的操作空间
                    ICompositeLayer pComLayer = layer as ICompositeLayer;
                    for (int j = 0; j < pComLayer.Count; j++)
                    {
                        ILayer mLayer = pComLayer.get_Layer(j);
                        if (mLayer == null)
                        {
                            return;
                        }
                        IFeatureLayer layer_space   = mLayer as IFeatureLayer;              //得到要素层
                        IDataset      dataset_space = layer_space.FeatureClass as IDataset; //中转成一个要素集合

                        if (!space.Equals(dataset_space.Workspace))
                        {
                            SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "不在同一个操作空间下,不能编辑!");
                            return;//如果操作的空间不一样就进行下一个
                        }
                        //////////对SDE图层名称进行处理
                        string getname = string.Empty;
                        if (layer_space.DataSourceType == "SDE Feature Class")
                        {
                            getname = layer_name.Substring(layer_name.IndexOf('.') + 1);
                        }
                        else
                        {
                            getname = layer_name;
                        }

                        if (mLayer.Name == getname)
                        {
                            IFeatureLayer F_layer = mLayer as IFeatureLayer;//将图层转成要素层

                            try
                            {
                                MoData.v_CurWorkspaceEdit.StartEditOperation();                                                              //编辑操作开始
                                string temp  = DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();                     //得到修改后的值
                                int    oid   = Convert.ToInt32(OID);                                                                         //得到要更新的OID
                                int    index = F_layer.FeatureClass.FindField(DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[0].Value.ToString()); //得到所有的索引要素行
                                F_layer.FeatureClass.GetFeature(oid).set_Value(index, temp);                                                 //更新值
                                F_layer.FeatureClass.GetFeature(oid).Store();                                                                //更新到PDB里,存储
                                MoData.v_CurWorkspaceEdit.StopEditOperation();                                                               //结束编辑操作
                                UpdateHashTable(temp, e.ColumnIndex, e.RowIndex);
                            }
                            catch (Exception eError)
                            {
                                //******************************************
                                //guozheng added System Exception log
                                if (SysCommon.Log.Module.SysLog == null)
                                {
                                    SysCommon.Log.Module.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                                }
                                SysCommon.Log.Module.SysLog.Write(eError);
                                //******************************************
                                Re_readValue();
                                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "您输入的内容类型不正确,请重新输入!");
                            }
                            //break;
                            return;
                        }
                    }
                    #endregion
                }
                else
                {
                    #region 如果不是组,直接遍历
                    if (layer.Name == layer_name)
                    {
                        IFeatureLayer F_layer = layer as IFeatureLayer;           //将图层转成要素层空间
                        IDataset      det     = F_layer.FeatureClass as IDataset; //转成数据集,用来得到编辑空间
                        try
                        {
                            MoData.v_CurWorkspaceEdit.StartEditOperation();                                         //编辑操作开始
                            string temp = DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //得到修改后的值
                            int    oid  = Convert.ToInt32(OID);                                                     //得到要更新的OID
                            F_layer.FeatureClass.GetFeature(oid).set_Value(e.RowIndex, temp);                       //更新值
                            F_layer.FeatureClass.GetFeature(oid).Store();                                           //更新到PDB里,存储
                            MoData.v_CurWorkspaceEdit.StopEditOperation();                                          //结束编辑操作
                            UpdateHashTable(temp, e.ColumnIndex, e.RowIndex);
                        }
                        catch (Exception eError)
                        {
                            //******************************************
                            //guozheng added System Exception log
                            if (SysCommon.Log.Module.SysLog == null)
                            {
                                SysCommon.Log.Module.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                            }
                            SysCommon.Log.Module.SysLog.Write(eError);
                            //******************************************
                            Re_readValue();
                            SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "您输入的内容类型不正确,请重新输入!");
                        }
                        break;
                    }
                    #endregion
                }
            }
        }