Esempio n. 1
0
        public List <IObjectTemplate> GetTemplatesByDataset(string datasetName)
        {
            List <IObjectTemplate> templates = new List <IObjectTemplate>();
            ITable pTemplateTable            = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");


            IQueryFilter pFilter1 = new QueryFilter();

            pFilter1.WhereClause = "Dataset='" + datasetName + "'";

            ICursor pCursor = pTemplateTable.Search(pFilter1, false);

            int[]        fieldIndexes = new int[6];
            IRow         pRow         = pCursor.NextRow();
            IQueryFilter pQueryFilter = new QueryFilter();

            IObjectTemplate oneTemplate = null;

            while (pRow != null)
            {
                oneTemplate = new ObjectTemplate(pRow);
                templates.Add(oneTemplate);
                pRow = pCursor.NextRow();
            }
            ComReleaser.ReleaseCOMObject(pFilter1);
            ComReleaser.ReleaseCOMObject(pCursor);
            ComReleaser.ReleaseCOMObject(pTemplateTable);
            return(templates);
        }
Esempio n. 2
0
        public bool DeleteTemplate(string templateName)
        {
            try
            {
                IObjectTemplate objectTemplate = _templates.FirstOrDefault(c => c.Name == templateName);
                if (objectTemplate == null || objectTemplate.ID <= 0)
                {
                    return(true);
                }

                if (_workspace == null)
                {
                    Connect();
                }

                ITable         pTable   = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
                IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit;
                pWksEdit.StartEditing(true);
                pWksEdit.StartEditOperation();

                IRow pRow = pTable.GetRow(objectTemplate.ID);
                if (pRow != null)
                {
                    pRow.Delete();
                }


                //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD");
                //foreach (IYTField ytField in objectTemplate.Fields)
                //{
                //    if (ytField.ID > 0)
                //    {
                //        pRow = pTable.GetRow(ytField.ID);
                //        if(pRow != null) pRow.Delete();
                //    }
                //}
                pWksEdit.StopEditOperation();
                pWksEdit.StopEditing(true);

                DisConnect();
                return(true);
            }
            catch (Exception ex)
            {
                MessageService.Current.Warn("系统发生错误:" + ex.Message);
                return(false);

                throw;
            }
        }
Esempio n. 3
0
        public bool AddTemplate(IObjectTemplate template)
        {
            try
            {
                IObjectTemplate objectTemplate = _templates.FirstOrDefault(c => c.Name == template.Name);
                if (objectTemplate == null)
                {
                    MessageService.Current.Warn("该模板已经存在,请更换名字!");
                    return(false);
                }

                if (_workspace == null)
                {
                    Connect();
                }

                ITable         pTable   = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
                IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit;
                pWksEdit.StartEditing(true);
                pWksEdit.StartEditOperation();
                IRow pRow = pTable.CreateRow();
                template.UpdateRow(pRow);

                //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD");
                //int tmpIndex = pTable.FindField("TemplateName");
                //foreach (IYTField ytField in template.Fields)
                //{
                //    pRow = pTable.CreateRow();
                //    pRow.set_Value(tmpIndex,template.Name);
                //    ytField.UpdateRow(pRow);
                //}
                pWksEdit.StopEditOperation();
                pWksEdit.StopEditing(true);
                _templates.Add(template);
                ComReleaser.ReleaseCOMObject(pTable);
                DisConnect();

                return(true);
            }
            catch (Exception ex)
            {
                MessageService.Current.Warn("系统发生错误:" + ex.Message);
                return(false);

                throw;
            }
        }
Esempio n. 4
0
        private void LoadObjectEdit()
        {
            TreeNode currentNode = trvDatabase.SelectedNode;

            if (currentNode.Parent.Text == "模板")
            {
                IObjectTemplate template = currentNode.Tag as IObjectTemplate;
                frmEditTemplate frm      = new frmEditTemplate();
                frm.SetTemplate(template);
                frm.SetDatabase(template.Database);
                frm.ShowDialog();
                currentNode.Tag  = frm.GetTemplate();
                currentNode.Text = frm.GetTemplate().Name;
            }
            if (currentNode.Parent.Text == "数据字典")
            {
                IYTDomain     domain = currentNode.Tag as IYTDomain;
                frmEditDomain frm    = new frmEditDomain();
                frm.SetDatabase(currentNode.Parent.Parent.Tag as ITemplateDatabase);
                frm.SetDomain(domain);
                DialogResult result = frm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    TreeNode pNode = currentNode.Parent;
                    pNode.Nodes.Clear();
                    LoadDomains(pNode.Parent.Tag as ITemplateDatabase, pNode);
                }
                currentNode.Tag = frm.GetDomain();
            }
            if (currentNode.Parent.Text == "数据集")
            {
                IObjectDataset dataset = currentNode.Tag as IObjectDataset;
                frmEditDataset frm     = new frmEditDataset();
                frm.SetDatabase(currentNode.Parent.Parent.Tag as ITemplateDatabase);
                frm.Dataset = dataset;
                DialogResult result = frm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    currentNode.Tag  = frm.Dataset;
                    currentNode.Text = frm.Dataset.Name;
                }
            }
        }
Esempio n. 5
0
        public IObject(Map a_map, DofusCell a_cell, int a_id)
        {
            _id    = a_id;
            _map   = a_map;
            _cell  = a_cell;
            _state = (int)IObjectEnum.STATE_FULL;
            int respawnTime = 10000;

            _template = IObjectTemplateTable.Get(_id);
            if (_template != null)
            {
                respawnTime = _template.RespawnTime;
            }
            if (respawnTime != -1)
            {
                _respawnTimer          = new Timer(respawnTime);
                _respawnTimer.Elapsed += new ElapsedEventHandler(_timer_Elapsed);
                _respawnTimer.Enabled  = true;
            }
        }
Esempio n. 6
0
        //public void LoadTemplates()
        //{
        //    if (_workspace == null)
        //    {
        //        Connect();
        //    }
        //    if (_templates!=null)
        //        _templates.Clear();
        //   else
        //        _templates=new List<IObjectTemplate>();
        //    ITable pTemplateTable = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
        //    ITable pTemplateFields= _workspace.OpenTable("YT_TEMPLATE_FIELD");

        //    ITableSort tableSort = new TableSort();
        //    tableSort.Table = pTemplateTable;
        //    tableSort.Fields = "TemplateName";
        //    tableSort.Sort(null);

        //    ICursor pCursor = tableSort.Rows;
        //    int[] fieldIndexes = new int[6];
        //    IRow pRow = pCursor.NextRow();
        //    IQueryFilter pQueryFilter = new QueryFilter();

        //    IObjectTemplate oneTemplate = null;
        //    while (pRow != null)
        //    {
        //        oneTemplate = new ObjectTemplate(pRow);
        //        pQueryFilter.WhereClause = "TemplateName='" + oneTemplate.Name+"'";
        //        ICursor pCursor1 = pTemplateFields.Search(pQueryFilter, false);
        //        IRow fieldRow = pCursor1.NextRow();
        //        while (fieldRow != null)
        //        {
        //            YTField ytField=new YTField(fieldRow);
        //            oneTemplate.Fields.Add(ytField);
        //            fieldRow = pCursor1.NextRow();
        //        }
        //        ComReleaser.ReleaseCOMObject(pCursor1);
        //        oneTemplate.Database = this;
        //        _templates.Add(oneTemplate);
        //        pRow = pCursor.NextRow();
        //    }
        //    ComReleaser.ReleaseCOMObject(pCursor);
        //    ComReleaser.ReleaseCOMObject(pTemplateTable);
        //    ComReleaser.ReleaseCOMObject(pTemplateFields);
        //}


        public void LoadTemplates()
        {
            if (_workspace == null)
            {
                Connect();
            }
            if (_templates != null)
            {
                _templates.Clear();
            }
            else
            {
                _templates = new List <IObjectTemplate>();
            }
            ITable pTemplateTable = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");


            ITableSort tableSort = new TableSort();

            tableSort.Table  = pTemplateTable;
            tableSort.Fields = "TemplateName";
            tableSort.Sort(null);

            ICursor pCursor = tableSort.Rows;

            int[]        fieldIndexes = new int[6];
            IRow         pRow         = pCursor.NextRow();
            IQueryFilter pQueryFilter = new QueryFilter();

            IObjectTemplate oneTemplate = null;

            while (pRow != null)
            {
                oneTemplate          = new ObjectTemplate(pRow);
                oneTemplate.Database = this;
                _templates.Add(oneTemplate);
                pRow = pCursor.NextRow();
            }
            ComReleaser.ReleaseCOMObject(pCursor);
            ComReleaser.ReleaseCOMObject(pTemplateTable);
        }
Esempio n. 7
0
        private void DeleteObject()
        {
            TreeNode          currentNode = trvDatabase.SelectedNode;
            ITemplateDatabase database    = currentNode.Parent.Parent.Tag as ITemplateDatabase;

            if (currentNode.Parent.Text == "模板")
            {
                IObjectTemplate template = currentNode.Tag as IObjectTemplate;
                database.DeleteObject(template.ID, enumTemplateObjectType.FeatureClass);
            }
            if (currentNode.Parent.Text == "数据字典")
            {
                IYTDomain domain = currentNode.Tag as IYTDomain;
                database.DeleteObject(domain.ID, enumTemplateObjectType.Domain);
            }
            if (currentNode.Parent.Text == "数据集")
            {
                IObjectDataset dataset = currentNode.Tag as IObjectDataset;
                database.DeleteObject(dataset.ID, enumTemplateObjectType.FeatureDataset);
            }
        }
Esempio n. 8
0
        private void mnuCreateObject_Click(object sender, EventArgs e)
        {
            TreeNode          currentNode      = trvDatabase.SelectedNode;
            ITemplateDatabase templateDatabase = currentNode.Parent.Parent.Tag as ITemplateDatabase;

            if (currentNode.Parent.Text == "模板")
            {
                IObjectTemplate            template = currentNode.Tag as IObjectTemplate;
                frmQuickCreateFeatureClass frm      = new frmQuickCreateFeatureClass(_context, _plugin);
                frm.SingleTemplate = template;
                frm.ShowDialog();
            }
            if (currentNode.Parent.Text == "数据字典")
            {
            }
            if (currentNode.Parent.Text == "数据集")
            {
                IObjectDataset dataset           = currentNode.Tag as IObjectDataset;
                frmQuickCreateFeatureDataset frm = new frmQuickCreateFeatureDataset(_context, templateDatabase);
                frm.SetDataset(dataset.Name);
                frm.ShowDialog();
            }
        }
Esempio n. 9
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (Validate(true) == false)
            {
                return;
            }

            object         createLoc;
            IWorkspace2    workspace2 = null;
            IObjectDataset dataset    =
                _database.Datasets.FirstOrDefault(c => c.Name == cmbTemplate.SelectedItem.ToString());

            if (dataset == null)
            {
                return;
            }

            IGxDatabase pDataset  = txtDB.Tag as IGxDatabase;
            IWorkspace  workspace = ((IGxObject)pDataset).InternalObjectName.Open();

            workspace2 = workspace as IWorkspace2;


            string namePre   = txtPreName.Text.Trim();
            string nameNext  = txtNameNext.Text.Trim();
            string aliasPre  = txtAliasPre.Text.Trim();
            string aliasNext = txtAliasNext.Text.Trim();

            if (!chkNamePre.Checked)
            {
                namePre  = "";
                aliasPre = "";
            }
            if (!chkNameNext.Checked)
            {
                nameNext  = "";
                aliasNext = "";
            }

            string dsName = CombineName(dataset.BaseName, namePre, nameNext);


            if (workspace == null)
            {
                return;
            }



            if (workspace2.NameExists[esriDatasetType.esriDTFeatureDataset, dsName])
            {
                MessageService.Current.Warn("该名称已经存在,请重新输入!");
                return;
            }
            ISpatialReference pSpatialReference = _map.SpatialReference;

            IFeatureDataset pNewDataset =
                WorkspaceOperator.CreateFeatureDataSet(workspace, dsName, pSpatialReference) as IFeatureDataset;
            string dsAliasName = CombineName(dataset.AliasName, aliasPre, aliasNext);

            //(pNewDataset as IClassSchemaEdit).AlterAliasName(dsAliasName);
            foreach (int selectedItem in chkFeatureClasses.CheckedIndices)
            {
                IObjectTemplate template    = _templates[selectedItem];
                string          fcName      = CombineName(template.BaseName, namePre, nameNext);
                string          fcAliasName = CombineName(template.AliasName, aliasPre, aliasNext);

                if (template.FeatureType == esriFeatureType.esriFTAnnotation)
                {
                    WorkspaceOperator.CreateAnnoFeatureClass(fcName, pNewDataset, 1000);
                }
                else
                {
                    IFieldsEdit pFieldsEdit = new FieldsClass() as IFieldsEdit;
                    IField      pField      = FieldHelper.CreateOIDField();
                    if (pFieldsEdit.FindField(pField.Name) < 0)
                    {
                        pFieldsEdit.AddField(pField);
                    }

                    pField = FieldHelper.CreateGeometryField(template.GeometryType, _map.SpatialReference);
                    if (pFieldsEdit.FindField(pField.Name) < 0)
                    {
                        pFieldsEdit.AddField(pField);
                    }

                    string keyName = "";
                    foreach (YTField ytField in template.Fields)
                    {
                        pField = ytField.CreateField();
                        if (pFieldsEdit.FindField(pField.Name) < 0)
                        {
                            pFieldsEdit.AddField(pField);
                        }
                        if (ytField.IsKey)
                        {
                            keyName = ytField.Name;
                        }
                    }

                    IFeatureClass pClass = WorkspaceOperator.CreateFeatureClass(pNewDataset, fcName, pSpatialReference, template.FeatureType,
                                                                                template.GeometryType, (IFields)pFieldsEdit, null, null, "");
                    (pClass as IClassSchemaEdit).AlterAliasName(fcAliasName);


                    if (pClass == null)
                    {
                        MessageService.Current.Info(fcName + "创建失败!");
                        continue;
                    }
                }
            }
            MapHelper.AddDataset(_map as IBasicMap, pNewDataset, dsAliasName);
            MessageService.Current.Info("创建成功层!");
            DialogResult = DialogResult.OK;
        }
Esempio n. 10
0
 public ObjectTemplateInfo(IObjectTemplate template)
 {
     _Template = template;
 }
Esempio n. 11
0
        public bool SaveTemplate(IObjectTemplate template)
        {
            try
            {
                if (_workspace == null)
                {
                    Connect();
                }

                ITable         pTable   = _workspace.OpenTable("YT_TEMPLATE_FEATURECLASS");
                IWorkspaceEdit pWksEdit = _workspace as IWorkspaceEdit;
                pWksEdit.StartEditing(true);
                pWksEdit.StartEditOperation();

                IRow pRow;
                int  oldID = template.ID;
                if (oldID > 0)
                {
                    pRow = pTable.GetRow(template.ID);
                }
                else
                {
                    pRow = pTable.CreateRow();
                }
                template.UpdateRow(pRow);



                //pTable = _workspace.OpenTable("YT_TEMPLATE_FIELD");
                //if (oldID > 0)
                //{
                //    //删除数据库中原有的字段定义
                //    IQueryFilter filter=new QueryFilterClass();
                //    filter.WhereClause = "TemplateName='" + template.Name + "'";
                //    ICursor pCursor = pTable.Search(filter, false);
                //    pRow = pCursor.NextRow();
                //    while (pRow != null)
                //    {
                //        pRow.Delete();
                //        pRow = pCursor.NextRow();
                //    }
                //    ComReleaser.ReleaseCOMObject(pCursor);

                //}
                //int tmpIndex = pTable.FindField("TemplateName");
                //foreach (IYTField ytField in template.Fields)
                //{
                //    pRow = pTable.CreateRow();
                //    pRow.set_Value(tmpIndex, template.Name);
                //    ytField.UpdateRow(pRow);
                //}
                pWksEdit.StopEditOperation();
                pWksEdit.StopEditing(true);
                if (oldID <= 0)
                {
                    _templates.Add(template);
                }
                ComReleaser.ReleaseCOMObject(pTable);
                DisConnect();

                return(true);
            }
            catch (Exception ex)
            {
                MessageService.Current.Warn("系统发生错误:" + ex.Message);
                return(false);

                throw;
            }
        }
Esempio n. 12
0
        private void mnuPasteObject_Click(object sender, EventArgs e)
        {
            if (_copyObject == null)
            {
                return;
            }

            TreeNode          currentNode = trvDatabase.SelectedNode;
            ITemplateDatabase database    = currentNode.Tag as ITemplateDatabase;

            if (_copyObject.Parent.Text == "模板")
            {
                IObjectTemplate template = _copyObject.Tag as IObjectTemplate;
                template.ID       = -1;
                template.Database = database;
                frmEditTemplate frm = new frmEditTemplate();
                frm.SetTemplate(template);
                frm.SetDatabase(database);
                DialogResult result = frm.ShowDialog();
                if (result == DialogResult.OK)
                {
                    TreeNode pNode = currentNode.Nodes[0];
                    pNode.Nodes.Clear();
                    LoadTemplates(database, pNode);
                }
            }
            if (_copyObject.Parent.Text == "数据字典")
            {
                IYTDomain domain = _copyObject.Tag as IYTDomain;
                domain.ID = -1;

                frmEditDomain frm = new frmEditDomain();
                frm.SetDatabase(database);
                frm.SetDomain(domain);
                DialogResult result = frm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    TreeNode pNode = currentNode.Nodes[1];
                    pNode.Nodes.Clear();
                    LoadDomains(database, pNode);
                }
                //currentNode.Tag = frm.GetDomain();
            }
            if (_copyObject.Parent.Text == "数据集")
            {
                IObjectDataset dataset = _copyObject.Tag as IObjectDataset;
                dataset.ID = -1;
                frmEditDataset frm = new frmEditDataset();
                frm.SetDatabase(database);
                frm.Dataset = dataset;
                DialogResult result = frm.ShowDialog();

                if (result == DialogResult.OK)
                {
                    TreeNode pNode = currentNode.Nodes[2];
                    pNode.Nodes.Clear();
                    LoadDatasets(database, pNode);
                }
            }
            _copyObject = null;
        }
Esempio n. 13
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            if (Validate(true) == false)
            {
                return;
            }
            string locType = label1.Tag != null?label1.Tag.ToString() : "";

            if (string.IsNullOrEmpty(locType))
            {
                return;
            }
            object          createLoc;
            IWorkspace2     workspace2 = null;
            IObjectTemplate template   = null;

            if (_isSingle)
            {
                template = _template;
            }
            else
            {
                template = _plugin.TemplateDatabase.Templates.FirstOrDefault(c => c.Name == cmbTemplate.SelectedItem.ToString());
            }

            if (template == null)
            {
                return;
            }
            if (locType.Contains("Dataset"))
            {
                IGxDataset      pDataset = txtDB.Tag as IGxDataset;
                IFeatureDataset fDataset = ((IGxObject)pDataset).InternalObjectName.Open();
                workspace2 = fDataset.Workspace as IWorkspace2;
                createLoc  = fDataset;
            }
            else
            {
                IGxDatabase       pDatabase = txtDB.Tag as IGxDatabase;
                IFeatureWorkspace workspace = ((IGxObject)pDatabase).InternalObjectName.Open();
                workspace2 = workspace as IWorkspace2;
                createLoc  = workspace;
            }

            if (createLoc == null)
            {
                return;
            }
            string      fcName     = txtName.EditValue.ToString().Trim();
            IWorkspace2 workSpace2 = createLoc is IFeatureDataset
                ? ((IFeatureDataset)createLoc).Workspace as IWorkspace2
                : createLoc as IWorkspace2;

            if (workSpace2.NameExists[esriDatasetType.esriDTFeatureClass, fcName])
            {
                MessageService.Current.Warn("该名称已经存在,请重新输入!");
                return;
            }
            ISpatialReference pSpatialReference = _map.SpatialReference;

            IFieldsEdit pFieldsEdit = new Fields() as IFieldsEdit;
            IField      pField      = FieldHelper.CreateOIDField();

            pFieldsEdit.AddField(pField);
            if (locType.Contains("Dataset"))
            {
                IGeoDataset pFDataset = createLoc as IGeoDataset;
                pField            = FieldHelper.CreateGeometryField(template.GeometryType, pFDataset.SpatialReference);
                pSpatialReference = pFDataset.SpatialReference;
                pFieldsEdit.AddField(pField);
            }
            else
            {
                pField = FieldHelper.CreateGeometryField(template.GeometryType, _map.SpatialReference);
                pFieldsEdit.AddField(pField);
            }
            string keyName = "";

            foreach (YTField ytField in template.Fields)
            {
                pField = ytField.CreateField();
                pFieldsEdit.AddField(pField);
                if (ytField.IsKey)
                {
                    keyName = ytField.Name;
                }
            }

            IFeatureClass pClass = WorkspaceOperator.CreateFeatureClass(createLoc, txtName.Text, pSpatialReference, template.FeatureType,
                                                                        template.GeometryType, (IFields)pFieldsEdit, null, null, "");

            if (pClass == null)
            {
                MessageService.Current.Info("创建失败!");
                return;
            }
            if (pClass != null && chkIndex.Checked == false)
            {
                MapHelper.AddFeatureLayer((IBasicMap)_map, pClass);
                MessageService.Current.Info("创建成功并已经加载图层!");
                DialogResult = DialogResult.OK;
                return;
            }
            IEnvelope pEnv = new Envelope() as IEnvelope;

            pEnv.PutCoords(Convert.ToDouble(txtXMin.Text), Convert.ToDouble(txtYMin.Text), Convert.ToDouble(txtXMax.Text), Convert.ToDouble(txtYMax.Text));

            IWorkspaceEdit pWksEdit = ((IDataset)pClass).Workspace as IWorkspaceEdit;

            pWksEdit.StartEditing(false);
            pWksEdit.StartEditOperation();
            IndexHelper.CreateGridIndex(pClass, pEnv, Convert.ToDouble(txtWidth.Text),
                                        Convert.ToDouble(txtHeight.Text), keyName);
            pWksEdit.StopEditOperation();
            pWksEdit.StopEditing(true);
            MapHelper.AddFeatureLayer((IBasicMap)_map, pClass);
            MessageService.Current.Info("创建成功并已经加载图层!");
            DialogResult = DialogResult.OK;
        }
Esempio n. 14
0
        private bool SaveTemplate()
        {
            _tmpTemplate                  = new ObjectTemplate();
            _tmpTemplate.Name             = txtName.EditValue == null?"": txtName.EditValue.ToString().Trim();
            _tmpTemplate.AliasName        = txtAliasName.EditValue == null?"": txtAliasName.EditValue.ToString().Trim();
            _tmpTemplate.BaseName         = txtBaseName.EditValue == null?"": txtBaseName.EditValue.ToString().Trim();
            _tmpTemplate.FeatureTypeName  = cmbFeatureType.SelectedValue.ToString();
            _tmpTemplate.GeometryTypeName = cmbGeometryTypes.SelectedValue.ToString();
            _tmpTemplate.DatasetName      = cmbDatasets.SelectedValue == null ? "":cmbDatasets.SelectedValue.ToString();
            string msg = "";

            for (int i = 0; i < _fieldTable.Rows.Count; i++)
            {
                DataRow row    = _fieldTable.Rows[i];
                YTField pField = new YTField()
                {
                    Name          = row["FieldName"].ToString(),
                    AliasName     = row["AliasName"].ToString(),
                    FieldTypeName = row["FieldType"].ToString(),
                    AllowNull     = (bool)row["AllowNull"],
                    IsKey         = (bool)row["IsKey"],
                    Length        = (int)row["FieldLength"],
                    Precision     = (int)row["Precision"],
                    DomainName    = row["DomainName"].ToString()
                };
                if (pField.IsValid(out msg) == false)
                {
                    MessageBox.Show(msg, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(false);
                }
                _tmpTemplate.Fields.Add(pField);
            }


            int oid = _database.GetObjectID(_tmpTemplate.Name, enumTemplateObjectType.FeatureClass);

            if (_template.ID > 0)
            {
                if (_template.ID != oid)
                {
                    MessageBox.Show("已经有同名称的模板存在,请修改名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(false);
                }
            }
            else
            {
                if (oid > 0)
                {
                    MessageBox.Show("已经有同名称的模板存在,请修改名称!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return(false);
                }
            }

            try
            {
                _tmpTemplate.ID       = _template.ID;
                _tmpTemplate.Database = _template.Database;
                _template.Database.SaveTemplate(_tmpTemplate);
                _template = _tmpTemplate;
            }
            catch (Exception ex)
            {
                MessageBox.Show("程序发生错误" + ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }



            return(true);
        }
Esempio n. 15
0
 public void SetTemplate(IObjectTemplate template)
 {
     _template = template;
     LoadTemplateValues();
 }