private void btnSelectGDB_Click(object sender, EventArgs e) { frmOpenFile file = new frmOpenFile(); file.AddFilter(new MyGxFilterWorkspaces(), true); if (file.ShowDialog() == DialogResult.OK) { IGxDatabase database = file.Items.get_Element(0) as IGxDatabase; if (database != null) { this.txtGDB.Text = (database as IGxObject).FullName; if (!database.IsConnected) { database.Connect(); } IWorkspaceReplicas workspace = database.Workspace as IWorkspaceReplicas; if (workspace != null) { IEnumReplica replicas = workspace.Replicas; replicas.Reset(); IReplica replica2 = replicas.Next(); if (replica2 != null) { this.lblCheckOutName.Text = replica2.Name; this.txtGDB.Tag = database.WorkspaceName; } else { this.txtGDB.Tag = null; } } } } }
private void btnDB_Click(object sender, EventArgs e) { frmOpenFile openFile = new frmOpenFile(); openFile.AllowMultiSelect = false; openFile.AddFilter(new MyGxFilterWorkspaces(), true); openFile.AddFilter(new MyGxFilterFeatureDatasets(), false); if (openFile.ShowDialog() == DialogResult.OK) { IGxObject gxObject = openFile.Items.get_Element(0); if (gxObject is IGxDatabase) { IGxDatabase database = gxObject as IGxDatabase; txtDB.Text = database.WorkspaceName.PathName; txtDB.Tag = database; label1.Tag = "Database"; xtraTabControl1.TabPages[0].PageVisible = true; } else if (gxObject is IGxDataset) { IGxDataset dataset = gxObject as IGxDataset; txtDB.Text = dataset.DatasetName.WorkspaceName.PathName + "\\" + dataset.DatasetName.Name; txtDB.Tag = dataset; label1.Tag = "Dataset"; xtraTabControl1.TabPages[0].PageVisible = false; } } }
private void btnTemplateDB_Click(object sender, EventArgs e) { frmOpenFile openFile = new frmOpenFile(); openFile.Text = "选择模板数据库"; openFile.AllowMultiSelect = false; openFile.AddFilter(new MyGxFilterPersonalGeodatabases(), true); openFile.AddFilter(new MyGxFilterFileGeodatabases(), false); openFile.AddFilter(new MyGxFilterEnteripesGeoDatabases(), false); if (openFile.ShowDialog() == DialogResult.OK) { IGxDatabase database = openFile.Items.get_Element(0) as IGxDatabase; if (database != null) { IFeatureWorkspace pWorkspace = Yutai.ArcGIS.Common.Helpers.WorkspaceHelper.GetWorkspace((database as IGxObject).FullName); if (pWorkspace == null) { return; } bool isExists1 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "MAPTEMPLATE"); bool isExists2 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "MAPTEMPLATECLASS"); bool isExists3 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "MAPTEMPLATEELEMENT"); bool isExists4 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "MAPTEMPLATEEPARAM"); if (isExists4 && isExists1 && isExists3 && isExists2) { this.txtDB.Text = BuildConnectionString((database as IGxObject).FullName); } else { MessageService.Current.Warn("该数据库内没有地图制图模板数据!请重新选择!"); } } } }
private Boolean CreateDataset(NameEvents templateInfo) { try { IGxDatabase pDatabase = (IGxDatabase)m_SelectedObject; m_pWS = pDatabase.Workspace; ESRI.ArcGIS.Schematic.ISchematicWorkspaceFactory pSWF = new SchematicWorkspaceFactory(); ESRI.ArcGIS.Schematic.ISchematicWorkspace pSW = pSWF.Open(m_pWS); //check to see if this dataset name is already used m_pSDS = pSW.get_SchematicDatasetByName(templateInfo.DatasetName.ToString()); if (m_pSDS != null) { return(false); } m_pSDS = pSW.CreateSchematicDataset(templateInfo.DatasetName, ""); return(true); } catch { //nothing return(false); } }
private void btnOpen_Click(object sender, EventArgs e) { switch (ExportType) { case EnumExportType.FeatureClass: { frmOpenFile frm = new frmOpenFile(); frm.AllowMultiSelect = false; frm.AddFilter(new MyGxFilterWorkspaces(), false); frm.AddFilter(new MyGxFilterDatasets(), true); frm.Text = @"选择输出位置"; if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as IGxObject; if (gxObject is IGxDatabase) { IGxDatabase gxDatabase = gxObject as IGxDatabase; _dataset = null; _workspace = gxDatabase.Workspace; _saveType = EnumSaveType.Workspace; } else if (gxObject is IGxDataset) { IGxDataset gxDataset = gxObject as IGxDataset; _dataset = gxDataset.Dataset; _workspace = _dataset.Workspace; _saveType = EnumSaveType.Dataset; } } } break; case EnumExportType.Shapefile: { FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.ShowNewFolderButton = true; if (dialog.ShowDialog() == DialogResult.OK) { this.txtPath.Text = dialog.SelectedPath; Type factoryType = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory"); IWorkspaceFactory shapefileWorkspaceFactory = Activator.CreateInstance(factoryType) as IWorkspaceFactory; if (shapefileWorkspaceFactory == null) { return; } _dataset = null; _workspace = shapefileWorkspaceFactory.OpenFromFile(dialog.SelectedPath, 0); _saveType = EnumSaveType.Workspace; } } break; } }
public static void ConnectGDB(IGxDatabase igxDatabase_0) { if ((igxDatabase_0 != null) && !igxDatabase_0.IsConnected) { Cursor.Current = Cursors.WaitCursor; igxDatabase_0.Connect(); IGxCatalog catalog = GetCatalog(igxDatabase_0 as IGxObject); catalog.ObjectChanged(igxDatabase_0 as IGxObject); catalog.ObjectRefreshed(igxDatabase_0 as IGxObject); Cursor.Current = Cursors.Default; } }
public void DisConnectDatabase() { TreeNode selectedNode = base.SelectedNode; IGxDatabase tag = selectedNode.Tag as IGxDatabase; if ((tag != null) && tag.IsConnected) { tag.Disconnect(); selectedNode.Nodes.Clear(); base.SelectedNode.ImageIndex = this.method_3(tag as IGxObject); base.SelectedNode.SelectedImageIndex = this.method_4(tag as IGxObject); base.SelectedNode = base.SelectedNode.Parent; } }
private static object FindInDataset(GxCatalog _catalog, string path, out int numberFound) { numberFound = 0; int lastBackslashIndex = path.LastIndexOf('\\'); int lastBackslashIndexPlusOne = lastBackslashIndex + 1; if (lastBackslashIndex == -1 || lastBackslashIndexPlusOne == path.Length) { return(null); } string dbName = path.Substring(0, lastBackslashIndex); string fcName = path.Substring(lastBackslashIndexPlusOne, path.Length - lastBackslashIndexPlusOne); object obj = _catalog.GetObjectFromFullName(dbName, out numberFound); if (numberFound == 0) { return(null); } IGxObject geoObject; if (numberFound == 1) { geoObject = obj as IGxObject; } else { geoObject = ((IEnumGxObject)obj).Next(); //get the first and ignore the rest. } numberFound = 0; if (geoObject == null) { return(null); } IGxDatabase db = geoObject as IGxDatabase; if (db == null || db.Workspace == null) { return(null); } foreach (string dsName in GetFeatureDataSetNames(db.Workspace)) { string newPath = dbName + "\\" + dsName + "\\" + fcName; obj = _catalog.GetObjectFromFullName(newPath, out numberFound); if (numberFound != 0) { return(obj); } } return(null); }
private void AddConnection() { frmOpenFile frm = new frmOpenFile(); frm.AddFilter(new MyGxFilterGeoDatabases(), true); frm.Text = "选择数据库"; if (frm.DoModalOpen() == DialogResult.OK) { Cursor.Current = Cursors.WaitCursor; IGxDatabase database = frm.Items.get_Element(0) as IGxDatabase; if (database != null) { ITemplateDatabase findDB = _databases.FirstOrDefault(c => c.DatabaseName == (database as IGxObject).FullName); if (findDB != null) { MessageService.Current.Warn("数据库已经连接,无需再次连接!"); return; } IFeatureWorkspace pWorkspace = Yutai.ArcGIS.Common.Helpers.WorkspaceHelper.GetWorkspace((database as IGxObject).FullName); if (pWorkspace == null) { return; } bool isExists1 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_FEATURECLASS"); // bool isExists2 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_FIELD"); bool isExists3 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_DOMAIN"); bool isExists4 = ((IWorkspace2)pWorkspace).get_NameExists(esriDatasetType.esriDTTable, "YT_TEMPLATE_DATASET"); ITemplateDatabase templateDatabase = new TemplateDatabase(); templateDatabase.DatabaseName = (database as IGxObject).FullName; templateDatabase.Workspace = pWorkspace; _databases.Add(templateDatabase); LoadDatabases(); //if (isExists4 && isExists1 && isExists3 && isExists2) //{ // this.txtDB.Text = BuildConnectionString((database as IGxObject).FullName); //} //else //{ // MessageService.Current.Warn("该数据库内没有地图制图模板数据!请重新选择!"); //} } Cursor.Current = Cursors.Default; } // LoadDatabases(); }
public static IWorkspace SelectWorkspaceDialog() { frmOpenFile frm = new frmOpenFile(); frm.AllowMultiSelect = false; frm.AddFilter(new MyGxFilterWorkspaces(), true); frm.Text = @"选择地理数据库"; if (frm.DoModalOpen() == DialogResult.OK) { IGxObject gxObject = frm.Items.get_Element(0) as ArcGIS.Catalog.IGxObject; if (gxObject is IGxDatabase) { IGxDatabase gxDatabase = gxObject as IGxDatabase; return(gxDatabase.Workspace); } } return(null); }
private Boolean CreateTemplate(NameEvents templateInfo) { //need to get everything first IGxDatabase pDatabase = null; ISchematicDiagramClassContainer pDiagramClassContainer = null; if (m_SelectedObject.Category == "Schematic Dataset") { pDatabase = (IGxDatabase)m_SelectedObject.Parent; } else //on the database already { pDatabase = (IGxDatabase)m_SelectedObject; } m_pWS = pDatabase.Workspace; ESRI.ArcGIS.Schematic.ISchematicWorkspaceFactory pSWF = new SchematicWorkspaceFactory(); ESRI.ArcGIS.Schematic.ISchematicWorkspace pSW = pSWF.Open(m_pWS); m_pSDS = pSW.get_SchematicDatasetByName(templateInfo.DatasetName); //check to see if the template name already exists pDiagramClassContainer = (ISchematicDiagramClassContainer)m_pSDS; m_pSDT = pDiagramClassContainer.GetSchematicDiagramClass(templateInfo.TemplateName.ToString()); if (m_pSDT != null) { return(false); } //create the schematic template m_pSDT = m_pSDS.CreateSchematicDiagramClass(templateInfo.TemplateName); if ((templateInfo.AutoCreate == true) || (templateInfo.UseVertices == true)) { m_pB = (ESRI.ArcGIS.Schematic.ISchematicBuilder)m_pSDT; m_pSB = (ESRI.ArcGIS.Schematic.ISchematicStandardBuilder)m_pSDT.SchematicBuilder; m_pSB.InitializeLinksVertices = templateInfo.UseVertices; m_pSB.AutoCreateElementClasses = templateInfo.AutoCreate; } m_pSDS.Save(ESRI.ArcGIS.esriSystem.esriArcGISVersion.esriArcGISVersion10, false); return(true); }
public static IWorkspace SelectWorkspaceDialog() { IGxObjectFilter pGxObjectFilter = new GxFilterWorkspacesClass(); IGxDialog pGxDialog = new GxDialogClass(); pGxDialog.ObjectFilter = pGxObjectFilter; pGxDialog.AllowMultiSelect = false; pGxDialog.ButtonCaption = "选择"; pGxDialog.RememberLocation = true; pGxDialog.Title = "选择地理数据库"; IEnumGxObject pEnumGxObject = null; if (pGxDialog.DoModalOpen(0, out pEnumGxObject)) { IGxObject pSelectGxObject = pEnumGxObject.Next(); if (pSelectGxObject is IGxDatabase) { IGxDatabase pGxDatabase = pSelectGxObject as IGxDatabase; return(pGxDatabase.Workspace); } } return(null); }
private void btnBrowse_Click(object sender, System.EventArgs e) { try { IGxDialog dialog = GetGxDialog(); IEnumGxObject gxObjects; dialog.DoModalOpen(this.Handle.ToInt32(), out gxObjects); IGxDatabase gxDatabase = gxObjects.Next() as IGxDatabase; if (gxDatabase == null) { return; } connectionType = gxDatabase.IsRemoteDatabase ? ConnectionType.SDE : ConnectionType.PersonalGDB; _propSet = gxDatabase.WorkspaceName.ConnectionProperties; ReadNewConnectionProperties(_propSet); PopulateConnectionInfoLabel(); } catch (Exception exc) { Trace.WriteLine(exc.ToString()); } }
private void btnOpen_Click(object sender, EventArgs e) { switch (ExportType) { case EnumExportType.FeatureClass: { IGxDialog dialog = new GxDialogClass(); IGxObjectFilterCollection filterCollection = dialog as IGxObjectFilterCollection; filterCollection.AddFilter(new GxFilterWorkspacesClass(), true); filterCollection.AddFilter(new GxFilterDatasetsClass(), false); dialog.AllowMultiSelect = false; dialog.ButtonCaption = "选择"; dialog.RememberLocation = true; dialog.Title = "选择输出位置"; IEnumGxObject selection = null; if (dialog.DoModalOpen(0, out selection)) { if (selection == null) { return; } IGxObject gxObject = selection.Next(); if (gxObject is IGxDatabase) { IGxDatabase gxDatabase = gxObject as IGxDatabase; _dataset = null; _workspace = gxDatabase.Workspace; _saveType = EnumSaveType.Workspace; } else if (gxObject is IGxDataset) { IGxDataset gxDataset = gxObject as IGxDataset; _dataset = gxDataset.Dataset; _workspace = _dataset.Workspace; _saveType = EnumSaveType.Dataset; } txtPath.Text = gxObject.FullName; } } break; case EnumExportType.Shapefile: { FolderBrowserDialog dialog = new FolderBrowserDialog(); dialog.ShowNewFolderButton = true; if (dialog.ShowDialog() == DialogResult.OK) { this.txtPath.Text = dialog.SelectedPath; Type factoryType = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory"); IWorkspaceFactory shapefileWorkspaceFactory = Activator.CreateInstance(factoryType) as IWorkspaceFactory; if (shapefileWorkspaceFactory == null) { return; } _dataset = null; _workspace = shapefileWorkspaceFactory.OpenFromFile(dialog.SelectedPath, 0); _saveType = EnumSaveType.Workspace; } } break; } }
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; }
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; }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { // if (context == null) { return(null); } if (context.Instance == null) { return(null); } if (provider == null) { return(null); } // Cannot handle multiple objects if (context.Instance is object[]) { return(null); } // Do ArcGIS Desktop Test object dialog = null; try { dialog = new GxDialogClass(); } catch { } if (dialog == null) { MessageBox.Show( Resources.TEXT_NO_ARCGIS_DESKTOP, Resources.TEXT_APPLICATION, MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); return(null); } // Create GxObjectFilter for GxDialog IGxObjectFilter gxObjectFilter = new GxFilterWorkspacesClass(); // Create GxDialog IGxDialog gxDialog = (IGxDialog)dialog; gxDialog.AllowMultiSelect = false; gxDialog.ButtonCaption = Resources.TEXT_SELECT; gxDialog.ObjectFilter = gxObjectFilter; gxDialog.RememberLocation = true; gxDialog.Title = Resources.TEXT_SELECT_EXISTING_GEODATABASE; // Declare Enumerator to hold selected objects IEnumGxObject enumGxObject = null; // Open Dialog if (!gxDialog.DoModalOpen(0, out enumGxObject)) { return(null); } if (enumGxObject == null) { return(null); } // Get Selected Object (if any) IGxObject gxObject = enumGxObject.Next(); if (gxObject == null) { return(null); } //if (!gxObject.IsValid) { return null; } // Get GxDatabase if (!(gxObject is IGxDatabase)) { return(null); } IGxDatabase gxDatabase = (IGxDatabase)gxObject; // Get IWorkspace ESRI.ArcGIS.Geodatabase.IWorkspaceName workspaceName = gxDatabase.WorkspaceName; // Return Arguments return(workspaceName); }
private void MenuItem_Activate(object sender, EventArgs e) { try { // // Error List Context Menu // if (sender == this.menuButtonItemScroll) { // Can only zoom to one item if (this.listViewErrorList.SelectedItems.Count != 1) { return; } // Get EsriTable containing the error ListViewItemError item = (ListViewItemError)this.listViewErrorList.SelectedItems[0]; EsriTable table = null; if (item.Error is ErrorTable) { ErrorTable errorTable = (ErrorTable)item.Error; table = errorTable.Table; } else if (item.Error is ErrorTableRow) { ErrorTableRow errorTableRow = (ErrorTableRow)item.Error; EsriTableRow esriTableRow = (EsriTableRow)errorTableRow.TableRow; table = (EsriTable)esriTableRow.Table; } else if (item.Error is ErrorObject) { ErrorObject errorObject = (ErrorObject)item.Error; table = errorObject.Table; } if (table == null) { return; } // Get Containing Model EsriModel model = (EsriModel)table.Container; // Scroll to Table model.ScrollToElement(table); // Flash Table table.Flash(); } else if (sender == this.menuButtonItemSelect) { // Can only zoom to one item if (this.listViewErrorList.SelectedItems.Count == 0) { return; } foreach (ListViewItemError item in this.listViewErrorList.SelectedItems) { EsriModel model = null; if (item.Error is ErrorTable) { ErrorTable errorTable = (ErrorTable)item.Error; EsriTable table = errorTable.Table; model = (EsriModel)table.Container; } else if (item.Error is ErrorTableRow) { ErrorTableRow errorTableRow = (ErrorTableRow)item.Error; EsriTableRow esriTableRow = (EsriTableRow)errorTableRow.TableRow; EsriTable table = (EsriTable)esriTableRow.Table; model = (EsriModel)table.Container; } else if (item.Error is ErrorObject) { ErrorObject errorObject = (ErrorObject)item.Error; EsriTable table = errorObject.Table; model = (EsriModel)table.Container; } if (model == null) { continue; } // Clear Model Selection model.SelectElements(false); } // foreach (ListViewItemError item in this.listViewErrorList.SelectedItems) { // Get Table EsriTable table = null; if (item.Error is ErrorTable) { ErrorTable errorTable = (ErrorTable)item.Error; table = errorTable.Table; } else if (item.Error is ErrorTableRow) { ErrorTableRow errorTableRow = (ErrorTableRow)item.Error; EsriTableRow esriTableRow = (EsriTableRow)errorTableRow.TableRow; table = (EsriTable)esriTableRow.Table; } else if (item.Error is ErrorObject) { ErrorObject errorObject = (ErrorObject)item.Error; table = errorObject.Table; } if (table == null) { continue; } // Flash Table table.Selected = true; } } else if (sender == this.menuButtonItemFlashError) { // Can only zoom to one item if (this.listViewErrorList.SelectedItems.Count == 0) { return; } // foreach (ListViewItemError item in this.listViewErrorList.SelectedItems) { // Get Table EsriTable table = null; if (item.Error is ErrorTable) { ErrorTable errorTable = (ErrorTable)item.Error; table = errorTable.Table; } else if (item.Error is ErrorTableRow) { ErrorTableRow errorTableRow = (ErrorTableRow)item.Error; EsriTableRow esriTableRow = (EsriTableRow)errorTableRow.TableRow; table = (EsriTable)esriTableRow.Table; } else if (item.Error is ErrorObject) { ErrorObject errorObject = (ErrorObject)item.Error; table = errorObject.Table; } if (table == null) { continue; } // Flash Table table.Flash(); } } else if (sender == this.menuButtonItemClearError) { // Remove Selected Items foreach (ListViewItemError item in this.listViewErrorList.SelectedItems) { if (this.m_errors.Contains(item.Error)) { this.m_errors.Remove(item.Error); } } // Refresh Error List this.RefreshErrorList(); } else if (sender == menuButtonItemClearAllErrors) { // Remove All Errors this.m_errors.Clear(); // Refresh Error List this.RefreshErrorList(); } // // Validator Dropdown Menu // else if (sender == this.menuButtonItemPGdb) { WorkspaceValidator.Default.Validator = new PersonalGeodatabaseValidator(); } else if (sender == this.menuButtonItemFGdb) { WorkspaceValidator.Default.Validator = new FileGeodatabaseValidator(); } else if (sender == this.menuButtonItemSelectGeodatabase) { // Create GxObjectFilter for GxDialog IGxObjectFilter gxObjectFilter = new GxFilterWorkspacesClass(); // Create GxDialog IGxDialog gxDialog = new GxDialogClass(); gxDialog.AllowMultiSelect = false; gxDialog.ButtonCaption = Resources.TEXT_SELECT; gxDialog.ObjectFilter = gxObjectFilter; gxDialog.RememberLocation = true; gxDialog.Title = Resources.TEXT_SELECT_EXISTING_GEODATABASE; // Declare Enumerator to hold selected objects IEnumGxObject enumGxObject = null; // Open Dialog if (!gxDialog.DoModalOpen(0, out enumGxObject)) { return; } if (enumGxObject == null) { return; } // Get Selected Object (if any) IGxObject gxObject = enumGxObject.Next(); if (gxObject == null) { return; } if (!gxObject.IsValid) { return; } // Get GxDatabase if (!(gxObject is IGxDatabase)) { return; } IGxDatabase gxDatabase = (IGxDatabase)gxObject; // Get Workspace IWorkspace workspace = gxDatabase.Workspace; if (workspace == null) { return; } // Get Workspace Factory IWorkspaceFactory workspaceFactory = workspace.WorkspaceFactory; if (workspaceFactory == null) { return; } // Get Workspace Factory ID IUID uid = workspaceFactory.GetClassID(); string guid = uid.Value.ToString().ToUpper(); switch (guid) { case EsriRegistry.GEODATABASE_PERSONAL: WorkspaceValidator.Default.Validator = new PersonalGeodatabaseValidator(workspace); break; case EsriRegistry.GEODATABASE_FILE: WorkspaceValidator.Default.Validator = new FileGeodatabaseValidator(workspace); break; case EsriRegistry.GEODATABASE_SDE: WorkspaceValidator.Default.Validator = new SdeValidator(workspace); break; default: break; } } else if ((sender is MenuButtonItem) && (((MenuButtonItem)sender).Parent == this.menuButtonItemSdeConnection)) { MenuButtonItem item = (MenuButtonItem)sender; if (item.Tag == null) { return; } WorkspaceValidator.Default.Validator = new SdeValidator(item.Tag.ToString()); } } catch (Exception ex) { ExceptionDialog.HandleException(ex); } }