About the Browse for Python files Sample
[C#]
CustomCommand.cs
using ESRI.ArcGIS.Framework;
using ESRI.ArcGIS.esriSystem;
using ESRI.ArcGIS.CatalogUI;
using ESRI.ArcGIS.Catalog;
using ESRI.ArcGIS.ArcCatalog;
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace CustomGxFilter_CS
{
public class CustomCommand : ESRI.ArcGIS.Desktop.AddIns.Button
{
#region Member Variables
private IGxApplication m_pApp;
#endregion
public CustomCommand()
{
}
protected override void OnClick()
{
// set
m_pApp = (IGxApplication)CustomGxFilter_CS.ArcCatalog.Application;
IGxCatalog pCat = null;
IGxFileFilter pFileFilter = null;
IEnumGxObject pSelection = null;
IGxDialog pDlg = null;
IGxObjectFilter pFilter = null;
try
{
pDlg = new GxDialog();
pCat = pDlg.InternalCatalog ;
pFileFilter = pCat.FileFilter;
if (pFileFilter.FindFileType("py") < 0)
{
//enter the third parameter with the location of the icon as needed
pFileFilter.AddFileType("PY", "Python file", "");
}
pFilter = new CustomGxFilter_CS.CustomFilter();
pDlg.ObjectFilter = pFilter;
pDlg.Title = "Please select a .Py file";
pDlg.AllowMultiSelect = true;
pDlg.DoModalOpen(0, out pSelection);
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.ToString());
}
finally
{
pCat = null;
pFileFilter = null;
pSelection = null;
pDlg = null;
pFilter = null;
}
}
protected override void OnUpdate()
{
Enabled = ArcCatalog.Application != null;
}
}
}
[Visual Basic .NET]
CustomCommand.vb
Imports ESRI.ArcGIS.Framework
Imports ESRI.ArcGIS.esriSystem
Imports ESRI.ArcGIS.Catalog
Imports ESRI.ArcGIS.CatalogUI
Public Class CustomCommand
Inherits ESRI.ArcGIS.Desktop.AddIns.Button
#Region "Member Variables"
Private m_pApp As IGxApplication
#End Region
Public Sub New()
End Sub
Protected Overrides Sub OnClick()
'
' TODO: Sample code showing how to access button host
'
My.ArcCatalog.Application.CurrentTool = Nothing
' set
m_pApp = My.ArcCatalog.Application
Dim pCat As IGxCatalog, pFileFilter As IGxFileFilter, pSelection As IEnumGxObject = Nothing
Dim pDlg As IGxDialog, pFilter As IGxObjectFilter
'Dim pDlg As IGxDialog, pHandle As ESRI.ArcGIS.esriSystem.OLE_HANDLE, pFilter As IGxObjectFilter
Try
pDlg = New GxDialog
pCat = pDlg.InternalCatalog
pFileFilter = pCat.FileFilter
If pFileFilter.FindFileType("py") < 0 Then
'enter the third parameter with the location of the icon as needed
pFileFilter.AddFileType("py", "Python file", "")
End If
pFilter = New CustomFilter
pDlg.ObjectFilter = pFilter
pDlg.Title = "Please select a .Py file"
pDlg.AllowMultiSelect = True
pDlg.DoModalOpen(0, pSelection)
Catch ex As Exception
MsgBox(ex.ToString())
Finally
pCat = Nothing
pFileFilter = Nothing
pSelection = Nothing
pDlg = Nothing
pFilter = Nothing
End Try
End Sub
Protected Overrides Sub OnUpdate()
Enabled = My.ArcCatalog.Application IsNot Nothing
End Sub
End Class